:root{--primary:#1a6b3a;--primary-light:#2d8a4e;--primary-dark:#14522c;--primary-bg:#eaf7ee;--accent:#d4a843;--accent-light:#fef3d9;--bg:#f6f7f9;--bg-card:#fff;--bg-subtle:#fafbfc;--bg-hover:#f8f9fb;--text:#1a1a2e;--text-secondary:#5a6170;--text-muted:#8e95a3;--border:#e8eaee;--border-light:#f0f1f4;--danger:#dc2626;--success:#16a34a;--warning:#f59e0b;--info:#2563eb;--success-bg:#e8f5e9;--success-text:#2e7d32;--warning-bg:#fff3e0;--warning-text:#e65100;--danger-bg:#fef2f2;--danger-text:#c62828;--dq:#9333ea;--dq-bg:#f5f3ff;--dq-text:#7e22ce;--info-bg:#eff6ff;--info-text:#1e40af;--shadow-sm:0 1px 3px #0000000a, 0 1px 2px #00000008;--shadow:0 4px 12px #0000000d, 0 1px 3px #0000000a;--shadow-md:0 8px 24px #00000012;--shadow-lg:0 16px 40px #00000017;--radius:12px;--radius-sm:8px;--radius-lg:16px}[data-theme=dark]{--primary:#34a65f;--primary-light:#4cc078;--primary-dark:#287a46;--primary-bg:#34a65f1f;--accent:#d4a843;--accent-light:#d4a84326;--bg:#0f1115;--bg-card:#171a21;--bg-subtle:#1d212b;--bg-hover:#22272f;--text:#e8eaed;--text-secondary:#a8b0bd;--text-muted:#6b7484;--border:#262b36;--border-light:#22272f;--danger:#f87171;--success:#34d399;--warning:#fbbf24;--info:#60a5fa;--success-bg:#34d3991f;--success-text:#6ee7b7;--warning-bg:#fbbf241f;--warning-text:#fcd34d;--danger-bg:#f871711f;--danger-text:#fca5a5;--dq:#c084fc;--dq-bg:#a855f726;--dq-text:#d8b4fe;--info-bg:#60a5fa1f;--info-text:#93c5fd;--shadow-sm:0 1px 3px #0000004d;--shadow:0 4px 12px #00000059;--shadow-md:0 8px 24px #0006;--shadow-lg:0 16px 40px #00000080}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.container{max-width:1200px;margin:0 auto;padding:0 24px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 24px;font-family:inherit;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:none;transition:all .2s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light)}.btn-secondary{background:var(--bg-card);color:var(--text);border:1.5px solid var(--border)}.btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-bg)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-accent{background:var(--accent);color:#1a1a2e}.btn-accent:hover{background:#c99a35}.btn-sm{padding:6px 14px;font-size:.8rem}.btn-lg{padding:14px 32px;font-size:.95rem}.btn-block{width:100%}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow)}.card-header{border-bottom:1px solid var(--border-light);margin-bottom:16px;padding:0 0 16px}.card-title{color:var(--text);margin:0;font-size:1.05rem;font-weight:700}.card-subtitle{color:var(--text-muted);margin-top:4px;font-size:.85rem}.form-group{margin-bottom:20px}.form-label{color:var(--text);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.form-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);width:100%;color:var(--text);padding:10px 14px;font-family:inherit;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a6b3a1a}.form-input::placeholder{color:var(--text-muted)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%238e95a3' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}textarea.form-input{resize:vertical;min-height:80px}.form-error{color:var(--danger);margin-top:4px;font-size:.85rem}.form-success{color:var(--success);margin-top:4px;font-size:.85rem}.table-wrapper{border-radius:var(--radius-sm);border:1px solid var(--border-light);overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-muted);border-bottom:1.5px solid var(--border);text-transform:uppercase;letter-spacing:.06em;background:var(--bg-subtle);padding:12px 16px;font-size:.8rem;font-weight:600}td{border-bottom:1px solid var(--border-light);padding:12px 16px;font-size:.875rem}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-hover)}.badge{border-radius:20px;align-items:center;padding:2px 10px;font-size:.75rem;font-weight:600;line-height:1.4;display:inline-flex}.badge-primary{background:var(--primary-bg);color:var(--primary)}.badge-secondary{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary)}.badge-accent{background:var(--accent-light);color:var(--accent)}.badge-success{background:var(--success-bg);color:var(--success-text)}.badge-danger{background:var(--danger-bg);color:var(--danger-text)}.badge-dq{background:var(--dq-bg);color:var(--dq-text)}.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge-info{background:var(--info-bg);color:var(--info-text)}.section-label{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:12px;font-size:.8rem;font-weight:700;display:flex}.grid{gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-5{grid-template-columns:repeat(5,1fr)}@media (max-width:768px){.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--primary)}.text-accent{color:var(--accent)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-sm{font-size:.85rem}.text-xs{font-size:.75rem}.text-lg{font-size:1.1rem}.text-xl{font-size:1.5rem;font-weight:700}.text-2xl{font-size:2rem;font-weight:800}.font-bold{font-weight:700}.font-semibold{font-weight:600}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mb-8{margin-bottom:32px}.p-4{padding:16px}.p-6{padding:24px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-4{gap:16px}.gap-6{gap:24px}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.w-full{width:100%}.max-w-sm{max-width:400px}.max-w-md{max-width:500px}.max-w-lg{max-width:600px}.mx-auto{margin-left:auto;margin-right:auto}.alert{border-radius:var(--radius-sm);border:1px solid #0000;margin-bottom:16px;padding:14px 18px;font-size:.875rem}.alert-error{background:var(--danger-bg);border-color:var(--danger-bg);color:var(--danger-text)}.alert-success{background:var(--success-bg);border-color:var(--success-bg);color:var(--success-text)}.alert-info{background:var(--info-bg);border-color:var(--info-bg);color:var(--info-text)}.alert-warning{background:var(--warning-bg);border-color:var(--warning-bg);color:var(--warning-text)}.section{padding:60px 0}.section-title{letter-spacing:-.02em;margin-bottom:8px;font-size:1.6rem;font-weight:800}.section-desc{color:var(--text-secondary);max-width:600px;font-size:1rem;line-height:1.6}.auth-page{background:linear-gradient(135deg,#f6f7f9 0%,#eaf7ee 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}[data-theme=dark] .auth-page{background:linear-gradient(135deg,#0f1115 0%,#131a15 100%)}.auth-card{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:40px}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo img{width:64px;height:64px;margin-bottom:12px}.auth-logo h1{color:var(--primary);margin:0;font-size:1.4rem;font-weight:800}.auth-logo p{color:var(--text-secondary);margin:4px 0 0;font-size:.85rem}.hero{text-align:center;background:linear-gradient(135deg,#f6f7f9 0%,#eaf7ee 50%,#fef9ef 100%);padding:80px 0 64px;position:relative;overflow:hidden}[data-theme=dark] .hero{background:linear-gradient(135deg,#0f1115 0%,#131a15 50%,#171410 100%)}.hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#1a6b3a0a 0%,#0000 70%);width:600px;height:600px;position:absolute;top:-50%;right:-20%}.hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#d4a8430a 0%,#0000 70%);width:400px;height:400px;position:absolute;bottom:-30%;left:-10%}.hero .container{z-index:1;position:relative}.hero-badge{background:var(--primary-bg);color:var(--primary);border-radius:20px;align-items:center;gap:6px;margin-bottom:24px;padding:6px 16px;font-size:.8rem;font-weight:600;display:inline-flex}.hero h1{color:var(--text);letter-spacing:-.03em;margin:0 0 16px;font-size:2.8rem;font-weight:800;line-height:1.15}.hero h1 .highlight{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 50%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero p{color:var(--text-secondary);max-width:520px;margin:0 auto 36px;font-size:1.05rem;line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.feature-card{text-align:center;border:1px solid var(--border-light);padding:36px 24px}.feature-icon{background:var(--primary-bg);border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex}.feature-icon svg{width:24px;height:24px;stroke:var(--primary);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.scoring-grid{gap:8px;max-width:900px;margin:0 auto;display:grid}.scoring-item{background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 20px;transition:border-color .2s;display:flex}.scoring-item:hover{border-color:var(--primary-bg)}.scoring-item .position-label{align-items:center;gap:12px;display:flex}.scoring-item .position-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex}.scoring-item .position-dot.gold{color:#7a6200;background:linear-gradient(135deg,gold,#f0cc00)}.scoring-item .position-dot.silver{color:#555;background:linear-gradient(135deg,#d4d4d4,#b8b8b8)}.scoring-item .position-dot.bronze{color:#fff;background:linear-gradient(135deg,#cd7f32,#b8722b)}.scoring-item .position-dot.green{background:var(--primary);color:#fff}.scoring-item .position-dot.gray{background:var(--border);color:var(--text-secondary)}.scoring-item .points{color:var(--text);font-size:1.1rem;font-weight:700}.race-card{border:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.race-card:hover{border-color:var(--primary-bg)}.race-card-info{flex:1;min-width:200px}.race-card-title{margin:0 0 4px;font-size:1.05rem;font-weight:700}.race-card-meta{color:var(--text-muted);font-size:.8rem}.race-card-status{align-items:center;gap:8px;display:flex}.leaderboard-entry{border-bottom:1px solid var(--border-light);align-items:center;gap:16px;padding:14px 0;display:flex}.leaderboard-entry:last-child{border-bottom:none}.leaderboard-rank{background:var(--primary-bg);width:32px;height:32px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.leaderboard-entry.is-user{background:var(--primary-bg);border-radius:var(--radius-sm);margin:4px 0}.rank-1{color:#7a6200;background:linear-gradient(135deg,gold,#f0cc00)}.rank-2{color:#555;background:linear-gradient(135deg,#d4d4d4,#b8b8b8)}.rank-3{color:#fff;background:linear-gradient(135deg,#cd7f32,#b8722b)}.horse-select-grid{gap:10px;display:grid}.horse-option{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-card);text-align:left;padding:14px 18px;font-family:inherit;font-size:.9rem;font-weight:500;transition:all .2s}.horse-option:hover{border-color:var(--primary-light);background:var(--primary-bg)}.horse-option.selected{border-color:var(--primary);background:var(--primary-bg);color:var(--primary)}.horse-option:disabled{opacity:.5;cursor:not-allowed}.horse-option.assigned{border-color:var(--info);background:var(--info-bg);color:var(--info-text);cursor:default}.position-badge{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-right:10px;font-size:.7rem;font-weight:700;display:inline-flex}.pos-1{color:#7a6200;background:linear-gradient(135deg,gold,#f0cc00)}.pos-2{color:#555;background:linear-gradient(135deg,#d4d4d4,#b8b8b8)}.pos-3{color:#fff;background:linear-gradient(135deg,#cd7f32,#b8722b)}.pos-4{background:var(--primary);color:#fff}.horse-list{gap:8px;display:grid}.horse-item{background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border-light);align-items:center;gap:12px;padding:10px 14px;display:flex}.horse-number{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.loading-spinner{border:2.5px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.footer{background:var(--bg-card);border-top:1px solid var(--border-light);text-align:center;color:var(--text-muted);margin-top:auto;padding:32px 0;font-size:.85rem}.footer a{color:var(--primary);text-decoration:none}.footer a:hover{text-decoration:underline}.footer-links{justify-content:center;gap:24px;margin-bottom:12px;display:flex}.footer-links a{color:var(--text-secondary);font-size:.85rem;font-weight:500;text-decoration:none}.footer-links a:hover{color:var(--primary)}@media (max-width:768px){.hero{padding:60px 0 48px}.hero h1{font-size:1.8rem}.section{padding:40px 0}.section-title{font-size:1.3rem}.auth-card{padding:28px}.race-card{flex-direction:column;align-items:stretch}.race-card-status{justify-content:flex-end}.scoring-item{padding:12px 16px}}.step-card:hover{border-color:#287a46;transform:translateY(-4px);box-shadow:0 8px 30px #287a461a}
