:root{--bg-primary: #f6f8fa;--bg-secondary: #ffffff;--bg-tertiary: #eff2f5;--card-bg: rgba(255, 255, 255, .9);--card-border: rgba(0, 0, 0, .07);--accent: #61a329;--accent-glow: rgba(97, 163, 41, .12);--accent-hover: #508a20;--text-main: #1f2937;--text-muted: #5e6d82;--text-subtle: #9ca3af;--success: #10b981;--success-glow: rgba(16, 185, 129, .15);--danger: #ef4444;--warning: #f59e0b;--font-family: "Plus Jakarta Sans", sans-serif;--font-display: "Outfit", sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -1px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .03);--shadow-glow: 0 0 15px var(--accent-glow);--transition-fast: .15s cubic-bezier(.16, 1, .3, 1);--transition-normal: .25s cubic-bezier(.16, 1, .3, 1);--row-hover-bg: rgba(0, 0, 0, .015);--trigger-box-border: rgba(0, 0, 0, .08);--trigger-box-bg: rgba(0, 0, 0, .01)}body.dark-mode{--bg-primary: #07080a;--bg-secondary: #0e1014;--bg-tertiary: #171a21;--card-bg: rgba(23, 26, 33, .65);--card-border: rgba(255, 255, 255, .05);--accent: #76c72c;--accent-glow: rgba(118, 199, 44, .25);--accent-hover: #86db36;--text-main: #f5f6f8;--text-muted: #8e9cae;--text-subtle: #4e5868;--success: #00e676;--success-glow: rgba(0, 230, 118, .15);--danger: #ff1744;--warning: #ffea00;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .7);--row-hover-bg: rgba(255, 255, 255, .015);--trigger-box-border: rgba(255, 255, 255, .08);--trigger-box-bg: rgba(255, 255, 255, .01)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden;transition:background-color var(--transition-normal),color var(--transition-normal)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 2rem;background-color:var(--bg-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--card-border);position:sticky;top:0;z-index:100;transition:background-color var(--transition-normal),border-color var(--transition-normal)}.logo{display:flex;align-items:center;gap:.25rem;font-family:var(--font-display);font-weight:800;font-size:1.15rem;letter-spacing:.02em;color:var(--text-main)}.logo-image{height:46px;object-fit:contain;margin-right:.5rem}body.dark-mode .logo-image{background-color:#fff;padding:2px;border-radius:var(--radius-sm)}.logo-accent{color:var(--accent)}.app-nav{display:flex;gap:.5rem}.nav-btn{background:transparent;border:none;color:var(--text-muted);font-family:var(--font-display);font-weight:600;font-size:.95rem;padding:.6rem 1.2rem;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:var(--transition-fast)}.nav-btn:hover{color:var(--text-main);background-color:var(--bg-tertiary)}.nav-btn.active{color:#fff;background-color:var(--accent);box-shadow:var(--shadow-glow)}.header-right{display:flex;align-items:center;gap:1.5rem}.theme-toggle-btn{background:transparent;border:1px solid var(--card-border);color:var(--text-muted);width:40px;height:40px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:var(--transition-fast)}.theme-toggle-btn:hover{color:var(--text-main);background-color:var(--bg-tertiary)}.connection-status{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted);font-weight:500}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.green{background-color:var(--success);box-shadow:0 0 8px var(--success);animation:pulse-green 2s infinite}@keyframes pulse-green{0%{transform:scale(.9);opacity:.6}50%{transform:scale(1.1);opacity:1}to{transform:scale(.9);opacity:.6}}.app-content{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 0;gap:1.5rem}.spinner{width:50px;height:50px;border:4px solid var(--bg-tertiary);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;box-shadow:var(--shadow-glow)}@keyframes spin{to{transform:rotate(360deg)}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-title{font-size:2rem;font-weight:900;display:flex;align-items:center;gap:.75rem}.page-subtitle{color:var(--text-muted);font-size:.95rem;font-weight:400;margin-top:.25rem}.grid-2{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}@media (max-width: 1024px){.grid-2{grid-template-columns:1fr}}.card{background-color:var(--card-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);transition:transform var(--transition-normal),border var(--transition-fast)}.card:hover{border-color:#ffffff1a}.card-title{font-size:1.2rem;font-weight:600;margin-bottom:1.2rem;display:flex;align-items:center;gap:.5rem;color:var(--text-main);border-bottom:1px solid var(--card-border);padding-bottom:.75rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-weight:600;font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group select{width:100%;background-color:var(--bg-primary);border:1px solid var(--card-border);color:var(--text-main);padding:.75rem 1rem;border-radius:var(--radius-md);font-family:var(--font-family);font-size:.95rem;transition:border var(--transition-fast),box-shadow var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff5e0026}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.form-help{display:block;font-size:.8rem;color:var(--text-subtle);margin-top:.35rem}.btn{background:var(--bg-tertiary);color:var(--text-main);border:1px solid var(--card-border);padding:.7rem 1.4rem;border-radius:var(--radius-md);font-family:var(--font-display);font-weight:600;font-size:.95rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:var(--transition-fast)}.btn:hover{background-color:#ffffff0d;border-color:#fff3}.btn-primary{background-color:var(--accent);border:none;box-shadow:var(--shadow-glow)}.btn-primary:hover{background-color:var(--accent-hover);box-shadow:0 0 20px #ff5e0066}.btn-secondary{background-color:#ffffff0d}.btn-danger{background-color:var(--danger);border:none}.btn-danger:hover{background-color:#d50000;box-shadow:0 0 15px #ff17444d}.btn-success{background-color:var(--success);color:#000;border:none;font-weight:700}.btn-success:hover{background-color:#00c853;box-shadow:0 0 15px #00e6764d}.btn-icon{padding:.5rem;border-radius:var(--radius-md);aspect-ratio:1}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--card-border);box-shadow:var(--shadow-sm)}.table-search-bar{display:flex;gap:1rem;margin-bottom:1.5rem}.table-search-bar input{flex:1;background-color:var(--bg-secondary);border:1px solid var(--card-border);color:var(--text-main);padding:.7rem 1rem;border-radius:var(--radius-md);font-size:.9rem}.table-search-bar input:focus{outline:none;border-color:var(--accent)}table{width:100%;border-collapse:collapse;text-align:left}th{background-color:var(--bg-secondary);padding:1rem;font-weight:700;font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--card-border)}td{padding:1rem;border-bottom:1px solid var(--card-border);font-size:.95rem}tr:last-child td{border-bottom:none}tr:hover td{background-color:var(--row-hover-bg)}.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-weight:800;font-size:.9rem;font-family:var(--font-display)}.rank-1{background-color:gold;color:#000;box-shadow:0 0 10px #ffd70066}.rank-2{background-color:silver;color:#000}.rank-3{background-color:#cd7f32;color:#000}.rank-other{color:var(--text-muted)}.gender-icon-male{color:#00b0ff}.gender-icon-female{color:#f50057}.gender-icon-other{color:#00e676}.badge{padding:.25rem .6rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;text-transform:uppercase;display:inline-block}.badge-finished{background-color:var(--success-glow);color:var(--success)}.badge-registered{background-color:var(--bg-tertiary);color:var(--text-muted)}.badge-dns{background-color:#ffffff0d;color:var(--text-subtle)}.badge-dnf{background-color:#ff17441a;color:var(--danger)}.badge-active{background-color:var(--accent-glow);color:var(--accent);animation:pulse-active 1.5s infinite}@keyframes pulse-active{0%{opacity:.8}50%{opacity:1;box-shadow:0 0 8px var(--accent)}to{opacity:.8}}dialog{border:none;background:transparent;color:var(--text-main);max-width:650px;width:100%;margin:auto;outline:none}dialog::backdrop{background-color:#040508d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-content{background-color:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:1.5rem 2rem;box-shadow:var(--shadow-lg);transform:scale(.95);opacity:0;transition:transform var(--transition-normal),opacity var(--transition-normal)}dialog[open] .modal-content{transform:scale(1);opacity:1}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--card-border)}.modal-close-btn{background:transparent;border:none;color:var(--text-muted);font-size:1.25rem;cursor:pointer;transition:var(--transition-fast)}.modal-close-btn:hover{color:var(--text-main)}.rider-details-preview{background-color:var(--bg-primary);border-radius:var(--radius-md);padding:1rem;margin-bottom:1.5rem;border:1px solid var(--card-border)}.rider-details-preview p{font-size:.9rem;margin-bottom:.35rem}.rider-details-preview p:last-child{margin-bottom:0}.rider-name-header{font-size:1.1rem;font-weight:700;color:var(--accent)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem}.elapsed-display-card{text-align:center;padding:2rem;background:linear-gradient(135deg,#171a21cc,#0e1014cc);border:1px solid var(--accent-glow);position:relative;overflow:hidden}.elapsed-display-card:after{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--accent);box-shadow:0 0 10px var(--accent)}.race-selector-timing{margin-bottom:1rem}.main-clock{font-family:var(--font-display);font-weight:900;font-size:3.5rem;color:var(--text-main);letter-spacing:.05em;margin:.5rem 0}.finishers-split-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 768px){.finishers-split-layout{grid-template-columns:1fr}}.finish-trigger-box{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem;border:2px dashed var(--trigger-box-border);border-radius:var(--radius-lg);background-color:var(--trigger-box-bg);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.finish-trigger-box:hover,.finish-trigger-box.active{border-color:var(--accent);background-color:var(--accent-glow)}.btn-trigger-big{width:120px;height:120px;border-radius:50%;background-color:var(--accent);border:4px solid var(--bg-secondary);color:#fff;font-size:2.5rem;cursor:pointer;box-shadow:0 0 20px #ff5e0066;transition:transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast);display:flex;align-items:center;justify-content:center}.btn-trigger-big:hover{background-color:var(--accent-hover);transform:scale(1.05)}.btn-trigger-big:active{transform:scale(.95)}.trigger-shortcut-hint{font-size:.85rem;color:var(--text-muted);margin-top:1rem}.trigger-shortcut-hint kbd{background-color:var(--bg-tertiary);border:1px solid var(--card-border);padding:.15rem .4rem;border-radius:var(--radius-sm);color:var(--text-main);box-shadow:var(--shadow-sm);font-weight:700}.rolling-finishes-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.finish-log-entry{display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-secondary);border:1px solid var(--card-border);padding:.75rem 1rem;border-radius:var(--radius-md);animation:slide-in .25s cubic-bezier(.16,1,.3,1)}@keyframes slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.finish-log-entry.unassigned{border-color:var(--danger);background-color:#ff174408}.finish-log-rider{display:flex;flex-direction:column}.finish-log-name{font-weight:700;font-size:.95rem}.finish-log-sub{font-size:.8rem;color:var(--text-muted)}.finish-log-time{text-align:right;font-family:var(--font-display)}.finish-log-elapsed{font-weight:700;color:var(--accent)}.finish-log-absolute{font-size:.75rem;color:var(--text-subtle)}.filters-panel{display:flex;flex-wrap:wrap;gap:1rem;background-color:var(--bg-secondary);padding:1.25rem;border-radius:var(--radius-lg);border:1px solid var(--card-border);margin-bottom:1.5rem}.filter-group{flex:1;min-width:150px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 768px){.admin-grid{grid-template-columns:1fr}}.admin-block{margin-bottom:2rem}.sync-status-indicator{display:flex;align-items:center;gap:.75rem;padding:1rem;background-color:var(--bg-secondary);border-radius:var(--radius-md);border-left:4px solid var(--success);margin-bottom:1.5rem}.toast-container{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:.75rem;z-index:1000;max-width:350px}.toast{background-color:var(--bg-tertiary);border:1px solid var(--card-border);border-left:4px solid var(--accent);padding:1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-main);display:flex;justify-content:space-between;align-items:center;gap:1rem;animation:slide-in-toast .3s cubic-bezier(.16,1,.3,1);font-size:.9rem}@keyframes slide-in-toast{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast.toast-success{border-left-color:var(--success)}.toast.toast-danger{border-left-color:var(--danger)}.toast.toast-warning{border-left-color:var(--warning)}.toast-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer}.toast-close:hover{color:var(--text-main)}.modal-rider-card{display:flex;flex-direction:column;gap:1rem}.modal-rider-name{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--accent);margin-bottom:.25rem}.modal-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.25rem;background-color:var(--bg-primary);border:1px solid var(--card-border);padding:1rem;border-radius:var(--radius-md)}@media (max-width: 576px){.modal-details-grid{grid-template-columns:1fr}}.detail-item{font-size:.9rem;color:var(--text-main);line-height:1.4;word-break:break-all}.detail-item strong{color:var(--text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;display:block;margin-bottom:.15rem}.modal-section-title{font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--text-main);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.5rem;margin-top:1rem;margin-bottom:.5rem;border-bottom:1px solid var(--card-border);padding-bottom:.35rem}.waiver-declaration-box{background-color:var(--success-glow);color:var(--success);border:1px solid rgba(16,185,129,.2);padding:.75rem 1rem;border-radius:var(--radius-md);font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.waiver-declaration-box.unsigned{background-color:#ef44440d;color:var(--danger);border-color:#ef444433}
