*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,#root{font-family:Segoe UI,system-ui,sans-serif;background:#0f0f13;color:#e8e8f0;height:100vh;display:flex;flex-direction:column;overflow:hidden}header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#1a1a24;border-bottom:1px solid #2a2a3a;flex-shrink:0}.header-title{display:flex;align-items:center;gap:12px}.header-logo{height:40px;width:auto}header h1{font-size:1.4rem;font-weight:700;letter-spacing:.05em;color:#fff}header h1 span{color:#f97316}.footer-credit{position:fixed;bottom:10px;right:14px;font-size:.78rem;color:#666;pointer-events:none;z-index:10}.footer-credit a{color:#999;text-decoration:none;pointer-events:all;transition:color .15s}.footer-credit a:hover{color:#f97316}.btn-new-heat{background:#f97316;color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-new-heat:hover:not(:disabled){background:#ea6a08}.btn-new-heat:disabled{opacity:.4;cursor:not-allowed}.demo-badge{font-size:.75rem;font-weight:600;color:#f97316;border:1px solid #f97316;border-radius:6px;padding:3px 8px;white-space:nowrap}.btn-sign-in{background:#fff;color:#1a1a24;border:none;border-radius:8px;padding:6px 12px;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-sign-in:hover{opacity:.85}.auth-user{font-size:.8rem;color:#aaa;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.btn-logout{background:transparent;border:1px solid #3a3a4a;color:#888;border-radius:8px;padding:5px 10px;font-size:.8rem;cursor:pointer;transition:border-color .15s,color .15s}.btn-logout:hover{border-color:#ef4444;color:#ef4444}.main-area{display:flex;flex:1;gap:0;overflow:hidden}.panel-next{width:240px;flex-shrink:0;background:#16161f;border-right:1px solid #2a2a3a;display:flex;flex-direction:column;align-items:center;padding:24px 16px}.panel-next h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#888;margin-bottom:16px}.next-heat-card{width:100%;border-radius:12px;padding:18px 16px;display:flex;flex-direction:column;gap:8px;color:#fff}.next-heat-card .heat-label{font-size:1rem;font-weight:700}.next-heat-card .heat-time{font-size:.85rem;opacity:.85}.next-heat-card .athlete-list{font-size:.78rem;opacity:.75;line-height:1.6}.btn-start{margin-top:10px;background:#0000004d;color:#fff;border:2px solid rgba(255,255,255,.4);border-radius:8px;padding:10px;font-size:1rem;font-weight:700;letter-spacing:.08em;cursor:pointer;width:100%;transition:background .15s,border-color .15s}.btn-start:hover{background:#00000080;border-color:#ffffffb3}.no-next{color:#555;font-size:.85rem;text-align:center;margin-top:8px}.panel-running{flex:1;background:#13131b;display:flex;flex-direction:column;overflow:hidden}.running-scroll{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;min-height:0}.panel-running h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#888;flex-shrink:0}.running-heats-list{display:flex;flex-direction:column;gap:14px}.sponsor-panel{flex-shrink:0;max-height:25%;border-top:1px solid #2a2a3a;display:flex;align-items:center;justify-content:center;gap:24px;padding:12px 28px;background:#13131b}.sponsor-panel img{max-height:100%;max-width:calc(25% - 18px);object-fit:contain;flex-shrink:0}.running-heat-card{border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.running-heat-header{display:flex;align-items:baseline;gap:10px}.running-heat-header .heat-label{font-size:1rem;font-weight:700;color:#fff}.running-heat-header .heat-time{font-size:.8rem;color:#ffffffb3}.elapsed{font-size:.8rem;font-family:monospace;color:#fffc;margin-left:auto}.athletes-grid{display:flex;flex-wrap:wrap;gap:10px}.athlete-btn{background:#0000004d;border:2px solid rgba(255,255,255,.35);border-radius:8px;color:#fff;padding:10px 16px;cursor:pointer;font-size:.88rem;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:120px;transition:background .15s,border-color .15s}.athlete-btn:hover:not(:disabled){background:#00000080;border-color:#ffffffa6}.athlete-btn .athlete-name{font-size:.82rem;opacity:.85}.athlete-btn .stop-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.athlete-btn.done{opacity:.5;cursor:default;border-style:dashed}.athlete-btn.done .finish-time{font-size:.78rem;opacity:.8}.btn-clear-heat{margin-left:8px;background:#00000059;border:1px solid rgba(255,255,255,.3);color:#fffc;border-radius:6px;padding:3px 10px;font-size:.75rem;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:background .15s,border-color .15s}.btn-clear-heat:hover{background:#0009;border-color:#fff9}.panel-finished{width:240px;flex-shrink:0;background:#16161f;border-left:1px solid #2a2a3a;overflow-y:auto;padding:20px 16px;display:flex;flex-direction:column;gap:12px}.panel-finished-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.panel-finished h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#888}.btn-download-csv{background:transparent;border:1px solid #3a3a4a;color:#888;border-radius:6px;padding:3px 8px;font-size:.7rem;cursor:pointer;transition:border-color .15s,color .15s}.btn-download-csv:hover{border-color:#f97316;color:#f97316}.finished-entry{border-left:4px solid #444;padding:8px 10px;border-radius:0 8px 8px 0;background:#1c1c28}.finished-entry .fe-heat{font-size:.72rem;color:#aaa;margin-bottom:2px}.finished-entry .fe-athlete{font-size:.88rem;font-weight:600}.finished-entry .fe-time{font-size:.8rem;font-family:monospace;color:#f97316}.panel-upcoming{height:110px;flex-shrink:0;background:#1a1a24;border-top:1px solid #2a2a3a;display:flex;align-items:center;padding:0 16px;overflow-x:auto}.panel-upcoming::-webkit-scrollbar{height:6px}.panel-upcoming::-webkit-scrollbar-track{background:#0f0f13}.panel-upcoming::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.panel-upcoming::-webkit-scrollbar-thumb:hover{background:#888}.upcoming-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#555;writing-mode:vertical-rl;text-orientation:mixed;margin-right:12px;flex-shrink:0}.upcoming-heats-row{display:flex;gap:12px;align-items:center;height:100%;padding:12px 0}.upcoming-card{border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:4px;flex-shrink:0;min-width:120px;height:100%;justify-content:center;cursor:pointer;transition:filter .15s,transform .1s}.upcoming-card:hover{filter:brightness(1.25);transform:translateY(-2px)}.upcoming-card .uc-label{font-size:.82rem;font-weight:700;color:#fff}.upcoming-card .uc-time{font-size:.75rem;color:#ffffffbf}.upcoming-card .uc-edit-hint{font-size:.65rem;color:#ffffff73;margin-top:2px}.dialog-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;align-items:center;justify-content:center}.dialog-overlay.open{display:flex}.dialog{background:#1e1e2a;border:1px solid #3a3a4a;border-radius:14px;padding:28px 28px 24px;width:400px;max-width:95vw;display:flex;flex-direction:column;gap:18px}.dialog h3{font-size:1.1rem;font-weight:700;color:#fff}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:#aaa}.form-group input[type=time],.form-group input[type=text],.form-group input[type=number]{background:#13131b;border:1px solid #3a3a4a;border-radius:8px;color:#fff;padding:9px 12px;font-size:.95rem;outline:none;transition:border-color .15s;width:100%}.form-group input:focus{border-color:#f97316}.color-grid{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{width:32px;height:32px;border-radius:8px;cursor:pointer;border:3px solid transparent;transition:border-color .15s,transform .1s}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{border-color:#fff}.athletes-inputs{display:flex;flex-direction:column;gap:8px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.btn-cancel{background:transparent;border:1px solid #3a3a4a;color:#aaa;border-radius:8px;padding:9px 20px;cursor:pointer;font-size:.9rem;transition:border-color .15s,color .15s}.btn-cancel:hover{border-color:#aaa;color:#fff}.btn-ok{background:#f97316;border:none;color:#fff;border-radius:8px;padding:9px 20px;cursor:pointer;font-size:.9rem;font-weight:600;transition:background .15s}.btn-ok:hover{background:#ea6a08}.empty-state{color:#444;font-size:.85rem;text-align:center;padding:24px 0}.btn-configure{background:transparent;border:1px solid #3a3a4a;color:#888;border-radius:8px;padding:9px 14px;font-size:.9rem;cursor:pointer;transition:border-color .15s,color .15s}.btn-configure:hover{border-color:#f97316;color:#f97316}.color-toggle-grid{display:flex;flex-wrap:wrap;gap:10px}.color-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 10px;border-radius:8px;border:2px solid transparent;transition:border-color .15s;-webkit-user-select:none;user-select:none}.color-toggle.active{border-color:#ffffff80}.color-toggle-dot{width:20px;height:20px;border-radius:50%;flex-shrink:0}.color-toggle-name{font-size:.85rem;color:#ccc}.color-toggle:not(.active) .color-toggle-dot{opacity:.3}.color-toggle:not(.active) .color-toggle-name{opacity:.35}.color-toggle-remove{margin-left:auto;background:none;border:none;color:#666;cursor:pointer;font-size:.9rem;padding:0 2px;line-height:1;transition:color .1s}.color-toggle-remove:hover{color:#ef4444}.add-color-row{display:flex;align-items:center;gap:8px;margin-top:4px}.add-color-row input[type=color]{width:36px;height:36px;border:1px solid #3a3a4a;border-radius:8px;background:#13131b;padding:2px;cursor:pointer;flex-shrink:0}.add-color-row input[type=text]{flex:1;background:#13131b;border:1px solid #3a3a4a;border-radius:8px;color:#fff;padding:7px 10px;font-size:.88rem;outline:none;transition:border-color .15s;width:auto}.add-color-row input[type=text]:focus{border-color:#f97316}.btn-add-color{background:#2a2a3a;border:1px solid #3a3a4a;color:#ccc;border-radius:8px;padding:7px 12px;font-size:.85rem;cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.btn-add-color:hover{background:#3a3a4a;color:#fff}.sponsor-inputs{display:flex;flex-direction:column;gap:6px}.sponsor-row{display:flex;align-items:center;gap:8px}.sponsor-row .sponsor-num{font-size:.78rem;color:#666;width:16px;flex-shrink:0;text-align:right}.sponsor-row input{flex:1;background:#13131b;border:1px solid #3a3a4a;border-radius:8px;color:#fff;padding:7px 10px;font-size:.85rem;outline:none;transition:border-color .15s;width:auto}.sponsor-row input:focus{border-color:#f97316}.sponsor-toggle-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}.toggle-switch{position:relative;width:36px;height:20px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:#2a2a3a;border-radius:20px;cursor:pointer;transition:background .2s}.toggle-track:after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#666;transition:transform .2s,background .2s}.toggle-switch input:checked+.toggle-track{background:#f97316}.toggle-switch input:checked+.toggle-track:after{transform:translate(16px);background:#fff}.toggle-label{font-size:.85rem;color:#ccc}
