.layout{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background-color:var(--color-bg-secondary)}.header{position:sticky;top:0;z-index:var(--z-fixed);display:flex;justify-content:space-between;align-items:center;min-height:var(--header-height);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.header h1{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.header-user{display:flex;align-items:center;gap:var(--space-3)}.header-user span{font-size:var(--font-size-sm);color:var(--color-text-secondary);display:none}@media (min-width: 480px){.header-user span{display:block}}.btn-logout{min-height:36px;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn-logout:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-text-muted)}.main{flex:1;width:100%;max-width:var(--container-max);margin:0 auto;padding:var(--space-4);padding-bottom:calc(var(--bottom-nav-height) + var(--space-6) + env(safe-area-inset-bottom,0px))}@media (min-width: 768px){.main{padding:var(--space-6);padding-bottom:calc(var(--bottom-nav-height) + var(--space-8) + env(safe-area-inset-bottom,0px))}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-fixed);display:flex;min-height:var(--bottom-nav-height);padding-bottom:env(safe-area-inset-bottom,0px);background-color:var(--color-bg-primary);border-top:1px solid var(--color-border);box-shadow:0 -2px 10px #0000000d}.bottom-nav a{flex:1;display:flex;align-items:center;justify-content:center;min-height:var(--bottom-nav-height);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-decoration:none;transition:all var(--transition-fast);border-top:3px solid transparent;margin-top:-1px}.bottom-nav a:hover{color:var(--color-text-secondary);background-color:var(--color-bg-hover)}.bottom-nav a.active{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);border-top-color:var(--color-primary)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;padding:var(--space-8);gap:var(--space-4)}.loading-flag{width:64px;height:64px;animation:wave 1.2s ease-in-out infinite;transform-origin:bottom center}@keyframes wave{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.loading-text{font-size:var(--font-size-base);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.login-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-secondary);padding:var(--space-4)}.login-box{width:100%;max-width:400px;padding:var(--space-8)}.login-box h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:var(--space-2);color:var(--color-text-primary)}.login-subtitle{font-size:var(--font-size-base);text-align:center;color:var(--color-text-muted);margin-bottom:var(--space-6)}.login-box form,.login-box .btn{margin-top:var(--space-4)}.login-box .alert{margin-bottom:0}.clickable-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);margin-bottom:var(--space-3);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-xs)}.clickable-card:hover{background-color:var(--color-bg-hover);border-color:var(--color-border);box-shadow:var(--shadow-sm)}.clickable-card:active{transform:scale(.99)}.card-content{flex:1;min-width:0}.card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.card-arrow{font-size:var(--font-size-xl);color:var(--color-text-muted);margin-left:var(--space-4);flex-shrink:0}.tournaments-page .page-title{margin-bottom:var(--space-6)}.tournaments-list{display:flex;flex-direction:column}.tournament-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1);margin-bottom:0}.tournament-next-match{font-size:var(--font-size-xs);color:var(--color-primary);font-weight:var(--font-weight-medium);margin-top:var(--space-2);margin-bottom:0}.tournament-detail{padding-bottom:var(--space-8)}.tournament-header{margin-bottom:var(--space-6)}.tournament-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-1)}.tournament-dates{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.tournament-modality{color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-1)}.admin-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-6)}.btn-manage{flex:1;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);background-color:var(--color-primary);color:var(--color-text-inverse);border:2px solid var(--color-primary);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-manage:hover{background-color:var(--color-primary-hover)}.btn-config{flex:1;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-primary);color:var(--color-text-primary);border:2px solid var(--color-border);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-config:hover{border-color:var(--color-text-muted);background-color:var(--color-bg-secondary)}.config-section{background-color:var(--color-bg-secondary);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:1px solid var(--color-border-light)}.config-section h3{margin-bottom:var(--space-4);font-size:var(--font-size-lg)}.config-section h4{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-4) 0 var(--space-2)}.config-group{margin-bottom:var(--space-4)}.config-label{display:block;font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.config-row{display:flex;align-items:center;gap:var(--space-3)}.config-input{width:5rem;padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-base);background-color:var(--color-bg-primary)}.config-input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.config-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.config-select{width:100%;max-width:20rem;padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-bg-primary);cursor:pointer}.config-select:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.points-config{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.point-row{display:flex;align-items:center;gap:var(--space-2)}.position-label{width:2rem;font-weight:var(--font-weight-semibold);text-align:right;color:var(--color-text-secondary)}.points-input{width:4rem;padding:var(--space-2);border:2px solid var(--color-border);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-base);background-color:var(--color-bg-primary)}.points-input:focus{border-color:var(--color-border-focus);outline:none}.points-label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.stableford-config,.matchplay-config{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.points-row{display:flex;align-items:center;gap:var(--space-2)}.score-label,.outcome-label{min-width:10rem;font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.btn-remove-pos{background:none;border:none;color:var(--color-error);font-size:var(--font-size-xl);cursor:pointer;padding:0 var(--space-2);line-height:1}.btn-remove-pos:hover{color:#bb2d3b}.config-actions{display:flex;gap:var(--space-3)}.btn-add-pos{flex:1;min-height:var(--touch-target-min);padding:var(--space-3);background-color:var(--color-bg-primary);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-add-pos:hover{border-color:var(--color-text-muted);color:var(--color-text-secondary)}.btn-save-config{flex:1;min-height:var(--touch-target-min);padding:var(--space-3);background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-save-config:hover:not(:disabled){background-color:#146c43}.btn-save-config:disabled{opacity:.5;cursor:not-allowed}.section h3{font-size:var(--font-size-lg);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.standings-note{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-muted)}.h19-bonus{font-size:var(--font-size-xs);color:var(--color-success)}.matches-extra{font-size:var(--font-size-xs);color:var(--color-text-muted)}.empty{color:var(--color-text-muted);text-align:center;padding:var(--space-4)}.standings-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);display:table}.standings-table thead{display:table-header-group}.standings-table tbody{display:table-row-group}.standings-table tr{display:table-row}.standings-table th,.standings-table td{display:table-cell;padding:var(--space-3) var(--space-2);text-align:left;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.standings-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em}.standings-table tbody tr:first-child td{font-weight:var(--font-weight-semibold);background-color:var(--color-highlight)}.standings-table tbody tr:nth-child(2) td,.standings-table tbody tr:nth-child(3) td{background-color:var(--color-bg-secondary)}.standings-table tbody tr:last-child td{border-bottom:none}.points-cell{font-weight:var(--font-weight-bold);color:var(--color-text-primary)}@media (min-width: 768px){.hide-mobile{display:table-cell}}.matches-list{display:flex;flex-direction:column}.match-card{background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-3);position:relative;box-shadow:var(--shadow-xs)}.match-card.clickable{cursor:pointer;transition:all var(--transition-base);padding-right:var(--space-10)}.match-card.clickable:hover{border-color:var(--color-border);box-shadow:var(--shadow-md)}.match-card.match-closed{border-color:var(--color-success-border);background-color:var(--color-success-bg)}.match-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.match-card-header h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0;color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-2)}.closed-badge{font-size:var(--font-size-xs);background-color:var(--color-success);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-transform:uppercase;font-weight:var(--font-weight-semibold);letter-spacing:.03em}.match-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.match-info{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0}.view-arrow{position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);font-size:var(--font-size-xl);color:var(--color-text-muted);opacity:.5;transition:opacity var(--transition-fast)}.match-card.clickable:hover .view-arrow{opacity:1}@media (min-width: 768px){.standings-table{font-size:var(--font-size-base)}.standings-table th,.standings-table td{padding:var(--space-4) var(--space-3)}}.match-detail{padding-bottom:var(--space-8)}.match-header-panel{background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6);text-align:center;box-shadow:var(--shadow-sm)}.match-header-panel .header-context{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--font-size-xs)}.match-header-panel .tournament-name{background-color:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.match-header-panel .modality-badge{background-color:var(--color-success);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;font-size:var(--font-size-2xs);letter-spacing:.05em}.match-header-panel .course-name{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.match-header-panel .course-website,.match-header-panel .course-location{background-color:var(--color-info-bg);color:var(--color-info);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-decoration:none;font-weight:var(--font-weight-medium)}.match-header-panel .course-website:hover,.match-header-panel .course-location:hover{background-color:var(--color-info-border)}.match-title-main{margin:0 0 var(--space-2);color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.closed-badge-large{font-size:var(--font-size-xs);background-color:var(--color-success);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-transform:uppercase;font-weight:var(--font-weight-semibold);letter-spacing:.03em}.match-meta{display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.match-date{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.match-info{font-size:var(--font-size-sm);color:var(--color-text-muted)}.admin-actions{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-4);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border-light)}.btn-close{min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast)}.btn-close:hover:not(:disabled){background-color:#146c43}.btn-close:disabled{opacity:.5;cursor:not-allowed}.btn-reopen{min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-primary);color:var(--color-warning);border:2px solid var(--color-warning);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-reopen:hover:not(:disabled){background-color:var(--color-warning-bg)}.btn-reopen:disabled{opacity:.5;cursor:not-allowed}.signed-status{font-size:var(--font-size-sm);color:var(--color-text-muted)}.error-banner{background-color:var(--color-error-bg);color:var(--color-error);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);border:1px solid var(--color-error-border)}.section h3{color:var(--color-text-primary);border-bottom:2px solid var(--color-border);padding-bottom:var(--space-2);margin-bottom:var(--space-4);font-size:var(--font-size-lg)}.empty{color:var(--color-text-muted);text-align:center;padding:var(--space-8)}.scores-table{width:100%;border-collapse:collapse;background-color:var(--color-bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);font-size:var(--font-size-sm)}.scores-table th,.scores-table td{padding:var(--space-3) var(--space-2);text-align:left;border-bottom:1px solid var(--color-border-light)}.scores-table th{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em}.scores-table tbody tr{transition:background-color var(--transition-fast)}.scores-table tbody tr:hover{background-color:var(--color-bg-hover)}.scores-table tbody tr.clickable-row{cursor:pointer;transition:background-color var(--transition-fast)}.scores-table tbody tr.clickable-row:active{background-color:var(--color-bg-tertiary)}.scores-table tbody tr.current-user,.scores-table tbody tr.current-user:hover{background-color:var(--color-highlight)}.scores-table tbody tr.not-played{opacity:.5;background-color:var(--color-bg-secondary)}.scores-table tbody tr.disqualified,.scores-table tbody tr.disqualified:hover{background-color:var(--color-error-bg)}.scores-table tbody tr.disqualified td:first-child{color:var(--color-error);font-weight:var(--font-weight-semibold)}.scores-table tbody tr:last-child td{border-bottom:none}.signed-icon{color:var(--color-success);font-weight:var(--font-weight-bold)}.keeper-icon{color:var(--color-warning);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal)}.net-score{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.under-par{color:var(--color-info);font-weight:var(--font-weight-bold)}.over-par{color:var(--color-error);font-weight:var(--font-weight-bold)}.hide-portrait{display:none}@media (orientation: landscape){.hide-portrait{display:table-cell}}@media (min-width: 768px){.hide-portrait{display:table-cell}}.player-name-cell .name-desktop{display:none}.player-name-cell .nickname{color:var(--color-text-muted);font-weight:var(--font-weight-normal)}@media (min-width: 768px){.player-name-cell .name-mobile{display:none}.player-name-cell .name-desktop{display:inline}}.actions{display:flex;justify-content:center;padding:var(--space-4) 0}.btn-my-scorecard{min-height:var(--touch-target-min);padding:var(--space-4) var(--space-6);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast)}.btn-my-scorecard:hover{background-color:var(--color-primary-hover)}.h19-section{background-color:var(--color-bg-secondary);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border-light)}.h19-section h3{display:flex;align-items:center;gap:var(--space-2);border:none;padding:0;margin-bottom:var(--space-3)}.saving-indicator{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-success)}.h19-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-4)}.h19-list{display:flex;flex-wrap:wrap;gap:var(--space-3)}.h19-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.h19-item:hover{border-color:var(--color-primary)}.h19-item input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary)}.h19-item input[type=checkbox]:checked+.h19-player-name{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.h19-player-name{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.h19-readonly{gap:var(--space-2)}.h19-badge{display:inline-block;padding:var(--space-2) var(--space-3);background-color:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.flights-section{background-color:var(--color-bg-secondary);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:1px solid var(--color-border-light)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.section-header h3{margin:0;border:none;padding:0}.btn-edit-flights{min-height:36px;padding:var(--space-2) var(--space-3);background-color:var(--color-bg-primary);color:var(--color-text-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-edit-flights:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.flights-display{display:flex;flex-direction:column;gap:var(--space-3)}.flight-card{background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.flight-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2);font-size:var(--font-size-sm)}.flight-time{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.flight-hole{color:var(--color-text-muted);background-color:var(--color-bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.flight-players{display:flex;flex-wrap:wrap;gap:var(--space-2)}.flight-player{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.flights-editor{display:flex;flex-direction:column;gap:var(--space-4)}.flight-edit-card{background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.flight-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.flight-number{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.btn-remove-flight{background:none;border:none;color:var(--color-error);font-size:var(--font-size-xl);cursor:pointer;padding:0 var(--space-1);line-height:1}.btn-remove-flight:hover{color:#bb2d3b}.flight-edit-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-3)}.flight-edit-row label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.flight-edit-row input[type=number]{width:4rem;padding:var(--space-2);border:2px solid var(--color-border);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-base)}.flight-edit-row input[type=time]{padding:var(--space-2);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base)}.flight-edit-row input:focus{border-color:var(--color-border-focus);outline:none}.flight-players-select{display:flex;flex-direction:column;gap:var(--space-2)}.flight-players-select .label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.player-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.player-chip{min-height:36px;padding:var(--space-2) var(--space-3);background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.player-chip:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-text-muted)}.player-chip.selected{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.flights-editor-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.btn-add-flight{flex:1;min-height:var(--touch-target-min);padding:var(--space-3);background-color:var(--color-bg-primary);border:2px dashed var(--color-border);color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-add-flight:hover{border-color:var(--color-text-muted);color:var(--color-text-secondary)}.btn-save-flights{flex:1;min-height:var(--touch-target-min);padding:var(--space-3);background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast)}.btn-save-flights:hover:not(:disabled){background-color:#146c43}.btn-save-flights:disabled{opacity:.5;cursor:not-allowed}@media (min-width: 768px){.scores-table{font-size:var(--font-size-base)}.scores-table th,.scores-table td{padding:var(--space-4) var(--space-3)}}.scorecard-page{padding-bottom:var(--space-8)}@media (orientation: landscape) and (max-width: 926px){.scorecard-page{padding-bottom:calc(var(--bottom-nav-height) + var(--space-8))}}.connection-status{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.connection-status.online{background:transparent;min-height:0;padding:0}.connection-status.online:has(.status-text),.connection-status.online:has(.pending-badge),.connection-status.online.has-message{background-color:var(--color-info-bg);padding:var(--space-2)}.connection-status.online:has(.status-text.error){background-color:var(--color-error-bg)}.connection-status.offline{background-color:var(--color-error-bg);color:var(--color-error)}.connection-status.offline:before{content:"";width:8px;height:8px;background-color:var(--color-error);border-radius:50%;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.status-text{color:inherit}.status-text.syncing,.status-text.saving{color:var(--color-info)}.status-text.saved{color:var(--color-success)}.status-text.saved:before{content:"✓"}.status-text.queued{color:var(--color-warning)}.status-text.queued:before{content:"⌛"}.status-text.error{color:var(--color-error);font-weight:var(--font-weight-semibold)}.status-text.offline{color:var(--color-error)}.pending-badge{background-color:var(--color-warning);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:.7rem}.btn-back{display:inline-flex;align-items:center;gap:var(--space-2);background:none;border:none;padding:var(--space-2) 0;margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast)}.scorecard-header-panel{background-color:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.header-context{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--font-size-xs)}.tournament-name{background-color:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.modality-badge{background-color:var(--color-success);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;font-size:var(--font-size-2xs);letter-spacing:.05em}.match-name{background-color:var(--color-primary-hover);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.course-name{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.player-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.player-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0;color:var(--color-text-primary)}.keeper-badge{background-color:var(--color-warning-bg);color:var(--color-warning);padding:var(--space-2) var(--space-3);margin-top:var(--space-3);font-size:var(--font-size-sm);border-radius:var(--radius-md);font-weight:var(--font-weight-medium)}.signed-badge{background-color:var(--color-success-bg);color:var(--color-success);padding:var(--space-2) var(--space-3);margin-top:var(--space-2);font-size:var(--font-size-sm);border-radius:var(--radius-md);font-weight:var(--font-weight-medium)}.player-info{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.handicap-section{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.handicap-label{color:var(--color-text-muted)}.handicap-controls{display:flex;align-items:center;gap:var(--space-1)}.hcp-btn{width:var(--touch-target-min);height:var(--touch-target-min);border-radius:50%;border:none;background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-lg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--transition-fast)}.hcp-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.hcp-btn:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted);cursor:not-allowed}.handicap-value{font-weight:var(--font-weight-bold);min-width:var(--space-6);text-align:center}.handicap-modified{color:var(--color-text-muted);font-size:var(--font-size-xs)}.track-mode-toggle{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.track-mode-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.track-mode-toggle input{position:absolute;opacity:0;width:0;height:0}.track-mode-slider{position:relative;width:48px;height:26px;background-color:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast)}.track-mode-slider:before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:var(--color-bg-primary);border-radius:50%;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.track-mode-toggle input:checked+.track-mode-slider{background-color:var(--color-success);border-color:var(--color-success)}.track-mode-toggle input:checked+.track-mode-slider:before{transform:translate(22px)}.handicap-input{width:3.5rem;margin-left:var(--space-2);text-align:center;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);padding:var(--space-2);background-color:var(--color-bg-primary);transition:border-color var(--transition-fast)}.handicap-input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.handicap-input:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted)}.stats-section{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-4);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border-light)}.stat-item{display:flex;flex-direction:column;align-items:center;text-align:center}.stat-label{font-size:.65rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-1);font-weight:var(--font-weight-medium)}.stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.stat-value.position{color:var(--color-success)}.stat-value.under-par{color:var(--color-info)}.stat-value.over-par{color:var(--color-error)}.scorecard-grid{border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm)}.grid-stroke .grid-header,.grid-stroke .grid-row{grid-template-columns:48px 48px 1fr 56px}.grid-points .grid-header,.grid-points .grid-row{grid-template-columns:48px 48px 1fr auto 56px}@media (orientation: landscape) and (max-width: 767px){.grid-points .grid-header,.grid-points .grid-row{grid-template-columns:40px 40px 32px 32px auto 36px 36px 48px}}.grid-header{display:grid;background-color:var(--color-bg-tertiary);padding:var(--space-3) var(--space-2);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;text-align:center;align-items:center;gap:var(--space-1);border-bottom:2px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.grid-body{max-height:60vh;overflow-y:auto;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.grid-row{display:grid;padding:var(--space-2);border-top:1px solid var(--color-border-light);align-items:center;background-color:var(--color-bg-primary);min-height:56px;text-align:center;gap:var(--space-1)}.grid-row:nth-child(odd){background-color:var(--color-bg-secondary)}.grid-row.not-played{opacity:.6}.grid-row.played{background-color:var(--color-success-bg)}.grid-row.played:nth-child(odd){background-color:#a7f3d0}.grid-row.in-play{background-color:var(--color-warning-bg);border-left:3px solid var(--color-warning)}.grid-row.in-play:nth-child(odd){background-color:#fde68a}.hole-number{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text-primary)}.hole-par{color:var(--color-text-muted);font-size:var(--font-size-sm)}.hole-si{color:var(--color-text-muted);font-size:var(--font-size-xs);min-width:32px}.hole-strokes{color:var(--color-info);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);min-width:32px}.hole-net{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);min-width:32px}.hole-points{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);min-width:32px}.grid-total{display:grid;grid-template-columns:48px 48px 1fr 56px;padding:var(--space-3) var(--space-2);border-top:2px solid var(--color-border);font-weight:var(--font-weight-bold);background-color:var(--color-bg-tertiary);font-size:var(--font-size-base);text-align:center}.score-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.score-btn{width:var(--touch-target-min);height:var(--touch-target-min);border-radius:50%;border:none;background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-xl);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.score-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.score-btn:active:not(:disabled){transform:scale(.95)}.score-btn:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted);cursor:not-allowed}.score-btn.long-pressing{background-color:var(--color-warning, #f59e0b);transform:scale(.95)}.score-value{min-width:2.5rem;text-align:center;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.score-value.placeholder{color:var(--color-text-muted);font-weight:var(--font-weight-normal)}.score-value.eagle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:2px solid var(--color-success);border-radius:50%;box-shadow:0 0 0 3px var(--color-bg-primary),0 0 0 5px var(--color-success)}.score-value.birdie{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:2px solid var(--color-success);border-radius:50%}.score-value.bogey{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:2px solid var(--color-error);border-radius:var(--radius-sm)}.score-value.double-bogey{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:2px solid var(--color-error);border-radius:var(--radius-sm);box-shadow:0 0 0 3px var(--color-bg-primary),0 0 0 5px var(--color-error)}.btn-finish-hole{min-height:36px;background-color:var(--color-warning);color:var(--color-text-inverse);border:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;margin-left:var(--space-2);transition:background-color var(--transition-fast)}.btn-finish-hole:hover{background-color:#ea580c}.btn-clear-hole{position:relative;width:40px;height:40px;border:none;background-color:var(--color-bg-secondary);border-radius:50%;cursor:pointer;margin:0 auto;padding:0;display:flex;align-items:center;justify-content:center;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.btn-clear-hole:hover{background-color:var(--color-error-bg)}.btn-clear-hole .clear-x{font-size:var(--font-size-lg);color:var(--color-text-muted);font-weight:var(--font-weight-bold);line-height:1;transition:color var(--transition-fast);z-index:1}.btn-clear-hole:hover .clear-x,.btn-clear-hole.clearing .clear-x{color:var(--color-error)}.btn-clear-hole .clear-progress-ring{position:absolute;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.btn-clear-hole .clear-progress-bg{stroke:var(--color-border);stroke-width:3}.btn-clear-hole .clear-progress-fill{stroke:var(--color-error);stroke-width:3;transition:stroke-dashoffset .05s linear}.btn-clear-hole.clearing{background-color:var(--color-error-bg)}.grid-row.blocked{background-color:var(--color-bg-tertiary);opacity:.7}.grid-row.blocked:nth-child(odd){background-color:#e5e7eb}.grid-row.blocked .score-btn:disabled{background-color:var(--color-border);color:var(--color-text-muted)}.btn-unlock-hole{position:relative;width:40px;height:40px;border:none;background-color:var(--color-bg-secondary);border-radius:50%;cursor:pointer;margin:0 auto;padding:0;display:flex;align-items:center;justify-content:center;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.btn-unlock-hole:hover{background-color:var(--color-warning-bg)}.btn-unlock-hole .unlock-icon{font-size:var(--font-size-sm);line-height:1;z-index:1}.btn-unlock-hole .unlock-progress-ring{position:absolute;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.btn-unlock-hole .unlock-progress-bg{stroke:var(--color-border);stroke-width:3}.btn-unlock-hole .unlock-progress-fill{stroke:var(--color-warning);stroke-width:3;transition:stroke-dashoffset .05s linear}.btn-unlock-hole.unlocking{background-color:var(--color-warning-bg)}.btn-unlock-hole.unlocking .unlock-icon{animation:shake .15s infinite}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-1px)}75%{transform:translate(1px)}}.actions{display:flex;flex-direction:column;gap:var(--space-3)}.btn-save{width:100%;min-height:56px;padding:var(--space-4);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--transition-fast)}.btn-sign{width:100%;min-height:56px;padding:var(--space-4);background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--transition-fast)}.btn-sign:hover:not(:disabled){background-color:#16a34a}.btn-sign:disabled{opacity:.5;cursor:not-allowed}.btn-unsign{width:100%;min-height:56px;padding:var(--space-4);background-color:var(--color-warning);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--transition-fast)}.btn-unsign:hover{background-color:#ea580c}.hide-mobile{display:none}@media (orientation: landscape) and (max-width: 767px){.hide-mobile{display:initial}.scorecard-grid{margin-bottom:calc(var(--bottom-nav-height) + var(--space-4))}}@media (min-width: 768px){.hide-mobile{display:initial}.scorecard-header-panel{padding:var(--space-6)}.player-name{font-size:var(--font-size-2xl)}.stats-section{padding:var(--space-6)}.stat-value{font-size:var(--font-size-2xl)}.grid-stroke .grid-header,.grid-stroke .grid-row{grid-template-columns:60px 60px 1fr 64px}.grid-points .grid-header,.grid-points .grid-row{grid-template-columns:60px 60px auto auto 1fr auto auto 64px}.grid-header,.grid-total{padding:var(--space-4) var(--space-3);font-size:var(--font-size-sm)}.grid-row{padding:var(--space-3);min-height:64px}.hole-number{font-size:var(--font-size-lg)}.score-btn{width:52px;height:52px;font-size:var(--font-size-2xl)}.score-value{font-size:var(--font-size-xl);min-width:3rem}.btn-clear-hole,.btn-unlock-hole{width:48px;height:48px}.btn-clear-hole .clear-x{font-size:var(--font-size-xl)}.btn-unlock-hole .unlock-icon{font-size:var(--font-size-base)}.btn-save,.btn-sign,.btn-unsign{min-height:64px;font-size:var(--font-size-lg)}}.profile-page .page-title{margin-bottom:var(--space-6)}.profile-page .card-body{padding:var(--space-6)}.handicap-row{display:flex;gap:var(--space-3)}.handicap-row .form-input{flex:1}.handicap-row .btn{flex-shrink:0}.profile-page .btn-block{margin-top:var(--space-6)}@media (min-width: 768px){.profile-page .card{max-width:500px}}.admin-panel .page-title{margin-bottom:var(--space-6)}.admin-cards{display:flex;flex-direction:column}@media (min-width: 768px){.admin-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.admin-cards .clickable-card{margin-bottom:0}}.users-page{padding-bottom:var(--space-8)}.create-form{background-color:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);display:flex;flex-direction:column;gap:var(--space-3)}.create-form input{padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-bg-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.create-form input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.form-group{display:flex;flex-direction:column;gap:var(--space-1)}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.input-with-button{display:flex;gap:var(--space-2)}.input-with-button input{flex:1}.btn-fetch{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast)}.btn-fetch:hover:not(:disabled){background-color:#bfdbfe}.btn-fetch:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted);border-color:var(--color-border);cursor:not-allowed}.hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.handicap-row{display:flex;gap:var(--space-2)}.handicap-row input{flex:1}.btn-fetch-hcp{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast)}.btn-fetch-hcp:hover:not(:disabled){background-color:#bfdbfe}.btn-fetch-hcp:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted);border-color:var(--color-border);cursor:not-allowed}.users-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.users-table th,.users-table td{padding:var(--space-3) var(--space-2);text-align:left;border-bottom:1px solid var(--color-border-light)}.users-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em}.users-table tbody tr:last-child td{border-bottom:none}.users-table tbody tr:hover{background-color:var(--color-bg-hover)}.role-badge,.status-badge{display:inline-block;padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.role-badge.admin{background-color:var(--color-info-bg);color:var(--color-info)}.role-badge.user{background-color:var(--color-bg-tertiary);color:var(--color-text-muted)}.status-badge.active{background-color:var(--color-success-bg);color:var(--color-success)}.status-badge.inactive{background-color:var(--color-error-bg);color:var(--color-error)}.btn-edit{min-height:var(--touch-target-min);padding:var(--space-1) var(--space-3);background-color:var(--color-info-bg);color:var(--color-info);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-left:var(--space-2);cursor:pointer;transition:background-color var(--transition-fast)}.edit-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.edit-modal-content{background-color:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.edit-modal-content h3{margin:0 0 var(--space-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.edit-form input{display:block;width:100%;margin-bottom:var(--space-4);padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-bg-primary);box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.edit-form input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.edit-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4)}.btn-save{min-height:var(--touch-target-min);padding:var(--space-3) var(--space-5);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-cancel{min-height:var(--touch-target-min);padding:var(--space-3) var(--space-5);background-color:var(--color-bg-primary);color:var(--color-text-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}@media (min-width: 768px){.users-table{font-size:var(--font-size-base)}.users-table th,.users-table td{padding:var(--space-4) var(--space-3)}}.courses-page{padding-bottom:var(--space-8)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.course-form{background-color:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border-light)}.course-form h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-4)}.course-form input[type=text],.course-form input[type=url]{width:100%;padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);margin-bottom:var(--space-3);background-color:var(--color-bg-primary);box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.course-form input[type=text]:focus,.course-form input[type=url]:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.form-row{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.form-row label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-row input{width:80px;padding:var(--space-2);border:2px solid var(--color-border);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-base);background-color:var(--color-bg-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-row input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.par-values{margin-bottom:var(--space-4)}.par-values label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.par-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2)}.par-input{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.par-input span{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.par-input input{width:100%;padding:var(--space-2);border:2px solid var(--color-border);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-sm);background-color:var(--color-bg-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.par-input input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.stroke-index-section{margin-bottom:var(--space-4)}.stroke-index-section label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.stroke-index-section .helper-text{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-normal);margin-left:var(--space-2)}.stroke-index-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2)}.si-cell{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.si-cell .hole-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);margin-bottom:0}.si-cell input{width:100%;padding:var(--space-2);border:2px solid var(--color-border);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-sm);background-color:var(--color-bg-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.si-cell input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.error-text{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--space-2);font-weight:var(--font-weight-medium)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.btn-cancel{flex:1;min-height:var(--touch-target-min);padding:var(--space-3);background-color:var(--color-bg-primary);color:var(--color-text-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background-color:var(--color-bg-secondary);border-color:var(--color-text-muted)}.btn-save{flex:1;min-height:var(--touch-target-min);padding:var(--space-3);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-save:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-save:disabled{opacity:.5;cursor:not-allowed}.courses-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.courses-table th,.courses-table td{padding:var(--space-3) var(--space-2);text-align:left;border-bottom:1px solid var(--color-border-light)}.courses-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em}.courses-table tbody tr:last-child td{border-bottom:none}.courses-table tbody tr:hover{background-color:var(--color-bg-hover)}.btn-edit,.btn-delete{min-height:var(--touch-target-min);padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-right:var(--space-2);cursor:pointer;transition:background-color var(--transition-fast)}.btn-edit{background-color:var(--color-info-bg);color:var(--color-info)}.btn-edit:hover{background-color:#bfdbfe}.btn-delete{background-color:var(--color-error-bg);color:var(--color-error)}.location-link,.website-link{color:var(--color-info);text-decoration:none;font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);background-color:var(--color-info-bg);border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.location-link:hover,.website-link:hover{background-color:#bfdbfe}.no-location,.no-website{color:var(--color-text-muted);font-size:var(--font-size-xs)}.empty{text-align:center;color:var(--color-text-muted);padding:var(--space-8)!important;font-size:var(--font-size-sm)}.loading{text-align:center;padding:var(--space-8);color:var(--color-text-muted);font-size:var(--font-size-sm)}@media (min-width: 768px){.courses-table{font-size:var(--font-size-base)}.courses-table th,.courses-table td{padding:var(--space-4) var(--space-3)}.par-grid,.stroke-index-grid{grid-template-columns:repeat(9,1fr)}}@media (min-width: 1024px){.par-grid,.stroke-index-grid{grid-template-columns:repeat(18,1fr)}}.manage-matches{padding-bottom:var(--space-8)}.manage-matches h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-6)}.section{margin-bottom:var(--space-8)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.section-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.btn-add{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-4);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.invite-form{margin-bottom:var(--space-4)}.invite-form select{width:100%;padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-bg-primary);transition:border-color var(--transition-fast)}.invite-form select:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.players-list{display:flex;flex-direction:column;gap:var(--space-2)}.player-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);background-color:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.btn-remove{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);background-color:var(--color-error-bg);color:var(--color-error);border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-remove:hover{background-color:#fecaca}.match-form{background-color:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);display:flex;flex-direction:column;gap:var(--space-3)}.match-form input,.match-form select{padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-bg-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.match-form input:focus,.match-form select:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.form-row{display:flex;align-items:center;gap:var(--space-4)}.form-row label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-text-secondary)}.form-row input{width:100px}.btn-create{min-height:var(--touch-target-min);padding:var(--space-3);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.matches-list{display:flex;flex-direction:column;gap:var(--space-3)}.match-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.match-info{display:flex;flex-direction:column;gap:var(--space-1)}.match-info strong{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.match-info span{font-size:var(--font-size-xs);color:var(--color-text-muted)}.match-actions{display:flex;gap:var(--space-2)}.btn-calculate{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);background-color:var(--color-success-bg);color:var(--color-success);border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-calculate:hover{background-color:#a7f3d0}.btn-delete{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);background-color:var(--color-error-bg);color:var(--color-error);border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-delete:hover{background-color:#fecaca}.empty{text-align:center;color:var(--color-text-muted);padding:var(--space-4);font-size:var(--font-size-sm)}.loading,.error{text-align:center;padding:var(--space-8);color:var(--color-text-muted);font-size:var(--font-size-sm)}.error{color:var(--color-error)}@media (min-width: 768px){.match-item{padding:var(--space-4) var(--space-5)}.match-info strong{font-size:var(--font-size-lg)}}.manage-tournaments-page{padding-bottom:var(--space-8)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.page-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0}.btn-back{display:inline-flex;align-items:center;gap:var(--space-2);background:none;border:none;padding:var(--space-2) 0;margin-bottom:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast)}.btn-add{min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-add:hover{background-color:var(--color-primary-hover)}.create-form{background-color:var(--color-bg-secondary);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:1px solid var(--color-border-light)}.create-form input,.create-form select{display:block;width:100%;margin-bottom:var(--space-4);padding:var(--space-3);font-size:var(--font-size-base);border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-primary);box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.create-form input:focus,.create-form select:focus{border-color:var(--color-border-focus);outline:none;box-shadow:var(--shadow-focus)}.btn-create{width:100%;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-6);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-create:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-create:disabled{opacity:.5;cursor:not-allowed}.tournaments-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.tournaments-table th,.tournaments-table td{padding:var(--space-3) var(--space-2);text-align:left;border-bottom:1px solid var(--color-border-light)}.tournaments-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em}.tournaments-table tbody tr:last-child td{border-bottom:none}.tournaments-table tbody tr:hover{background-color:var(--color-bg-hover)}.action-buttons{display:flex;gap:var(--space-2)}.btn-view{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.btn-view:hover{background-color:var(--color-primary-hover)}.btn-delete{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-primary);color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-delete:hover{background-color:var(--color-error-bg)}.error-message{background-color:var(--color-error-bg);color:var(--color-error);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--font-size-sm)}@media (min-width: 768px){.tournaments-table{font-size:var(--font-size-base)}.tournaments-table th,.tournaments-table td{padding:var(--space-4) var(--space-3)}}:root{--color-bg-primary: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #e9ecef;--color-bg-hover: #f1f3f5;--color-text-primary: #1a1a1a;--color-text-secondary: #495057;--color-text-muted: #6c757d;--color-text-inverse: #ffffff;--color-border: #dee2e6;--color-border-light: #e9ecef;--color-border-focus: #1a1a1a;--color-success: #198754;--color-success-bg: #d1e7dd;--color-success-border: #a3cfbb;--color-error: #dc3545;--color-error-bg: #f8d7da;--color-error-border: #f1aeb5;--color-warning: #fd7e14;--color-warning-bg: #fff3cd;--color-warning-border: #ffe69c;--color-info: #0d6efd;--color-info-bg: #cfe2ff;--color-info-border: #9ec5fe;--color-primary: #1a1a1a;--color-primary-hover: #333333;--color-primary-active: #000000;--color-highlight: #fff9db;--color-highlight-border: #ffe066;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", monospace;--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-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-none: 0;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05), 0 2px 4px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .08), 0 4px 6px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1), 0 10px 10px rgba(0, 0, 0, .04);--shadow-focus: 0 0 0 3px rgba(26, 26, 26, .15);--shadow-focus-error: 0 0 0 3px rgba(220, 53, 69, .15);--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .25s ease;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--container-max: 800px;--header-height: 56px;--bottom-nav-height: 64px;--touch-target-min: 44px}@media (min-width: 768px){:root{--header-height: 64px;--bottom-nav-height: 64px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;touch-action:manipulation}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-base)}p{margin-bottom:var(--space-4)}p:last-child{margin-bottom:0}small{font-size:var(--font-size-sm)}strong{font-weight:var(--font-weight-semibold)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}ul,ol{list-style:none}img,svg,video{display:block;max-width:100%;height:auto}table{border-collapse:collapse;border-spacing:0;width:100%}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button{cursor:pointer;background:none;border:none}button:disabled{cursor:not-allowed;opacity:.6}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;background-color:var(--color-bg-tertiary);color:var(--color-text-muted)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary);color:var(--color-text-inverse)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-text-muted);font-size:var(--font-size-lg)}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted)}.empty-state p{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1;text-align:center;white-space:nowrap;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-active)}.btn-secondary{background-color:var(--color-bg-primary);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-secondary);border-color:var(--color-text-muted)}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse);border-color:var(--color-error)}.btn-danger:hover:not(:disabled){background-color:#bb2d3b;border-color:#bb2d3b}.btn-ghost{background-color:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.btn-success{background-color:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:#146c43;border-color:#146c43}.btn-warning{background-color:var(--color-warning);color:var(--color-text-inverse);border-color:var(--color-warning)}.btn-warning:hover:not(:disabled){background-color:#e8590c;border-color:#e8590c}.btn-sm{min-height:36px;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.btn-lg{min-height:52px;padding:var(--space-4) var(--space-6);font-size:var(--font-size-lg)}.btn-block{width:100%}.btn-icon{width:var(--touch-target-min);padding:var(--space-2)}.form-group{margin-bottom:var(--space-4)}.form-group:last-child{margin-bottom:0}.form-label{display:block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-label-required:after{content:" *";color:var(--color-error)}.form-input,.form-select,.form-textarea{display:block;width:100%;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:hover:not(:disabled),.form-select:hover:not(:disabled),.form-textarea:hover:not(:disabled){border-color:var(--color-text-muted)}.form-input:focus,.form-select:focus,.form-textarea:focus{background-color:var(--color-bg-primary);border-color:var(--color-border-focus);box-shadow:var(--shadow-focus);outline:none}.form-input:not(:placeholder-shown),.form-select:valid,.form-textarea:not(:placeholder-shown){background-color:var(--color-bg-primary)}.form-input-error,.form-select-error,.form-textarea-error{border-color:var(--color-error);background-color:var(--color-error-bg)}.form-input-error:focus,.form-select-error:focus,.form-textarea-error:focus{border-color:var(--color-error);box-shadow:var(--shadow-focus-error)}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10)}.form-textarea{min-height:100px;resize:vertical}.form-hint{display:block;margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted)}.form-error{display:block;margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-error)}.form-check{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min)}.form-check-input{width:20px;height:20px;border:2px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;accent-color:var(--color-primary)}.form-check-label{font-size:var(--font-size-base);cursor:pointer}.card{background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:var(--space-4);border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-secondary)}.card-header h3{margin:0;font-size:var(--font-size-lg)}.card-body{padding:var(--space-4)}.card-footer{padding:var(--space-4);border-top:1px solid var(--color-border-light);background-color:var(--color-bg-secondary)}.card-interactive{cursor:pointer;transition:all var(--transition-base)}.card-interactive:hover{border-color:var(--color-border);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-interactive:active{transform:translateY(0)}.table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-light)}.table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);white-space:nowrap}.table tbody tr{transition:background-color var(--transition-fast)}.table tbody tr:hover{background-color:var(--color-bg-hover)}.table-striped tbody tr:nth-child(2n){background-color:var(--color-bg-secondary)}.table-row-highlight{background-color:var(--color-highlight)!important}.table-row-muted{opacity:.6}.table-row-muted td{color:var(--color-text-muted)}.table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.table td.actions{text-align:right;white-space:nowrap}.table td.actions .btn{margin-left:var(--space-2)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1;border-radius:var(--radius-full);white-space:nowrap}.badge-default{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge-success{background-color:var(--color-success-bg);color:var(--color-success)}.badge-error{background-color:var(--color-error-bg);color:var(--color-error)}.badge-warning{background-color:var(--color-warning-bg);color:#997404}.badge-info{background-color:var(--color-info-bg);color:var(--color-info)}.badge-lg{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.alert-success{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.alert-error{background-color:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.alert-warning{background-color:var(--color-warning-bg);color:#997404;border:1px solid var(--color-warning-border)}.alert-info{background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.modal{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:500px;max-height:90vh;overflow:hidden;z-index:var(--z-modal)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border-light)}.modal-header h3{margin:0;font-size:var(--font-size-lg)}.modal-body{padding:var(--space-4);overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4);border-top:1px solid var(--color-border-light);background-color:var(--color-bg-secondary)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.page-header h2{margin:0}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0}.section{margin-bottom:var(--space-6)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.btn-back{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);background:none;border:none;cursor:pointer;transition:color var(--transition-fast)}.btn-back:hover{color:var(--color-text-primary)}.divider{height:1px;background-color:var(--color-border-light);margin:var(--space-6) 0}@media (min-width: 480px){.hide-sm{display:none}}@media (min-width: 768px){.hide-md{display:none}.table{font-size:var(--font-size-base)}}@media (max-width: 479px){.show-sm{display:none}}@media (max-width: 767px){.show-md{display:none}}
