.site-header{background:#0b1220;padding:12px 0}.cb-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}#home-link{color:#ff9f45;text-decoration:none;font-size:14px;opacity:.85;transition:opacity .2s}#home-link:hover{opacity:1}.cb-header-right{display:flex;align-items:center;gap:14px}@media (max-width: 768px){.site-header{padding:4px 0}}.cb-user-info{display:flex;align-items:center;gap:10px}.cb-user-name{font-size:13px;color:#ffffff8c}#btn-signout{background:transparent;border:1px solid rgba(255,255,255,.15);color:#ffffff8c;font-size:12px;padding:4px 10px;border-radius:6px;cursor:pointer;transition:background .2s,color .2s}#btn-signout:hover{background:#ffffff14;color:#fff}.cb-auth-prompt{display:flex;align-items:center;gap:6px;font-size:13px;color:#ffffff73}.cb-auth-prompt a{color:#ff9f45;text-decoration:none;font-weight:600}.cb-auth-prompt a:hover{text-decoration:underline}.cb-cloud-badge{display:none;align-items:center;background:#2469d626;border:1px solid rgba(36,105,214,.3);border-radius:6px;color:#6fa8ff;font-size:11px;font-weight:700;letter-spacing:.06em;padding:3px 9px}body{background:#050c18}.cb-main{padding-top:40px;padding-bottom:80px}.cb-hero{max-width:620px;margin-bottom:28px}.cb-hero h2{font-size:clamp(22px,4vw,38px);margin:0 0 10px;color:#f0f8ff}.cb-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.cb-toggle{display:flex;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;overflow:hidden}.cb-toggle-btn{background:transparent;border:none;color:#ffffff8c;cursor:pointer;font-size:14px;font-weight:600;letter-spacing:.04em;padding:8px 22px;transition:background .18s,color .18s}.cb-toggle-btn:hover{color:#fff}.cb-toggle-btn.active{background:#ff9f45;color:#0b1220}.cb-toolbar-right{display:flex;gap:10px}.cb-action-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#ffffffe0;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background .18s,color .18s,border-color .18s}.cb-action-btn:hover{background:#ffffff29;color:#fff;border-color:#ffffff59}.cb-action-btn.danger:hover{background:#dc323240;border-color:#dc323280;color:#ff7070}.cb-action-btn.active{background:#ff9f4533;border-color:#ff9f4599;color:#ff9f45}.cb-action-btn.active:hover{background:#ff9f4552;border-color:#ff9f45}.cb-board-wrapper{position:relative;width:100%;border-radius:16px;overflow:hidden;box-shadow:0 8px 48px #0009;background:#1a1a1a;cursor:default;user-select:none;-webkit-user-select:none}#court-canvas{display:block;width:100%;height:auto}#trail-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .3s}#trail-canvas.visible{opacity:1}.cb-marker-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cb-court-marker{position:absolute;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;cursor:grab;pointer-events:all;transform:translate(-50%,-50%);transition:box-shadow .15s,transform .1s;box-shadow:0 3px 10px #00000080;z-index:10;touch-action:none}.cb-court-marker:hover{box-shadow:0 4px 18px #000000b3;transform:translate(-50%,-50%) scale(1.12)}.cb-court-marker.dragging{cursor:grabbing;opacity:.35;transform:translate(-50%,-50%) scale(.85);transition:none}.cb-court-marker.pb-moving{cursor:default!important;pointer-events:none;transition:left var(--pb-dur, .65s) cubic-bezier(.4,0,.2,1),top var(--pb-dur, .65s) cubic-bezier(.4,0,.2,1),opacity .25s ease,transform .15s ease}.cb-court-marker.pb-moving:hover{transform:translate(-50%,-50%)!important;box-shadow:0 3px 10px #00000080!important}.cb-court-marker.offense{background:#e84040;color:#fff;border:2.5px solid #ff7070}.cb-court-marker.defense{background:#2469d6;color:#fff;border:2.5px solid #6fa8ff}.cb-court-marker.ball{background:#e85e00;border:2.5px solid #ffb060;overflow:hidden}.cb-court-marker.ball:before,.cb-court-marker.ball:after{content:"";position:absolute;border:2px solid rgba(0,0,0,.3);border-radius:50%}.cb-ball-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cb-tray-section{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin-top:20px;padding:18px 22px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:16px}.cb-tray-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff6;white-space:nowrap}.cb-tray{display:flex;gap:10px}.cb-tray-divider{width:1px;height:44px;background:#ffffff1a;flex-shrink:0}.cb-tray-marker{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;cursor:grab;transition:transform .15s,box-shadow .15s,opacity .2s;box-shadow:0 3px 10px #0006;user-select:none;-webkit-user-select:none;touch-action:none;flex-shrink:0}.cb-tray-marker:active{cursor:grabbing}.cb-tray-marker:hover{transform:scale(1.1)}.cb-tray-marker.offense{background:#e84040;color:#fff;border:2.5px solid #ff7070}.cb-tray-marker.defense{background:#2469d6;color:#fff;border:2.5px solid #6fa8ff}.cb-tray-marker.ball{background:#e85e00;border:2.5px solid #ffb060;position:relative;overflow:hidden}.cb-tray-marker.ball:before{content:"";position:absolute;width:200%;height:200%;top:-50%;left:-50%;border-radius:50%;border:2px solid rgba(0,0,0,.25);clip-path:inset(0 0 50% 0)}.cb-tray-marker.placed{opacity:.28;cursor:default;pointer-events:none;transform:none}.cb-text-annotation{position:absolute;transform:translate(-50%,-50%);color:#000;font-size:clamp(10px,1.4vw,13px);font-weight:700;font-family:inherit;white-space:pre-wrap;word-break:break-word;cursor:grab;pointer-events:all;z-index:10;padding:3px 7px;background:#ffffffe0;border-radius:6px;border:1.5px solid rgba(0,0,0,.18);box-shadow:0 2px 8px #00000047;line-height:1.3;touch-action:none;user-select:none;-webkit-user-select:none;min-width:20px;max-width:min(160px,30%);text-align:center}.cb-text-annotation:active{cursor:grabbing}.cb-text-annotation:hover{border-color:#00000059;box-shadow:0 3px 14px #00000061}.cb-text-annotation.cb-text-editing{cursor:text;background:#fff;border-color:#ff9f45;box-shadow:0 0 0 3px #ff9f4540,0 2px 8px #0003;outline:none;user-select:text;-webkit-user-select:text;min-width:clamp(60px,20vw,120px);max-width:min(220px,45%);white-space:pre-wrap}.cb-text-annotation.cb-text-editing:empty:before{content:"Type here…";color:#0000004d;font-weight:400;pointer-events:none}.cb-text-annotation.pb-text-moving{cursor:default!important;pointer-events:none;transition:opacity .25s ease}#board-wrapper.cb-text-mode{cursor:text}#board-wrapper.cb-text-mode .cb-court-marker{cursor:grab}.cb-ghost{position:fixed;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;pointer-events:none;z-index:9999;opacity:.88;transform:translate(-50%,-50%) scale(1.15);box-shadow:0 6px 24px #0009;transition:none}.cb-ghost.offense{background:#e84040;color:#fff;border:2.5px solid #ff7070}.cb-ghost.defense{background:#2469d6;color:#fff;border:2.5px solid #6fa8ff}.cb-ghost.ball{background:#e85e00;border:2.5px solid #ffb060}.cb-hint{text-align:center;color:#ffffff4d;font-size:13px;margin-top:14px;letter-spacing:.02em}.cb-play-bar{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;padding:14px 20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:14px;margin-top:12px}.cb-play-left{display:flex;flex-direction:column;gap:8px}.cb-play-right{display:flex;flex-direction:column;gap:8px;flex:1;min-width:200px}.cb-play-info{display:flex;flex-direction:column;gap:2px}.cb-play-name{font-size:15px;font-weight:700;color:#f0f8ff}.cb-play-frame-count{font-size:12px;color:#ffffff73;letter-spacing:.04em}.cb-play-controls{display:flex;gap:6px;align-items:center}.cb-play-btn{background:#ffffff17;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:15px;padding:6px 12px;transition:background .15s,color .15s;line-height:1}.cb-play-btn:hover{background:#ffffff2e;color:#fff}.cb-play-btn:disabled{opacity:.3;cursor:default}.cb-play-btn.primary{background:#ff9f45;border-color:#ff9f45;color:#0b1220;font-size:17px;padding:6px 16px}.cb-play-btn.primary:hover{background:#ffb870;border-color:#ffb870}.cb-play-btn.exit{color:#ff6464bf}.cb-play-btn.exit:hover{background:#dc323233;border-color:#dc323266;color:#ff7070}.cb-play-speed-row{display:flex;align-items:center;gap:10px}.cb-play-speed-label{font-size:12px;color:#fff6;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.cb-toggle--small .cb-toggle-btn{padding:5px 12px;font-size:12px}.cb-play-timeline{width:100%;cursor:pointer;padding:8px 0}.cb-timeline-track{position:relative;height:6px;background:#ffffff1a;border-radius:3px;overflow:visible}.cb-timeline-fill{position:absolute;left:0;top:0;bottom:0;background:#ff9f45;border-radius:3px;width:0%;transition:width .1s linear}.cb-timeline-frames{position:absolute;top:0;right:0;bottom:0;left:0}.cb-timeline-tick{position:absolute;top:-3px;width:2px;height:12px;background:#ffffff80;border-radius:1px;transform:translate(-50%)}.cb-rec-bar{margin-top:18px;padding:16px 20px;background:#ffffff08;border:1px solid rgba(255,255,255,.09);border-radius:14px}.cb-rec-idle{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.cb-rec-idle-hint{font-size:13px;color:#ffffff59;line-height:1.5}.cb-rec-start-btn{background:#dc323238;border:1.5px solid rgba(220,50,50,.6);border-radius:9px;color:#f88;cursor:pointer;font-size:14px;font-weight:700;padding:9px 20px;white-space:nowrap;transition:background .18s,border-color .18s,color .18s}.cb-rec-start-btn:hover{background:#dc323261;border-color:#dc3232d9;color:#fbb}.cb-rec-active,.cb-rec-name{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cb-rec-name-label{font-size:14px;color:#fff9;white-space:nowrap}.cb-rec-dot{width:12px;height:12px;border-radius:50%;background:#e84040;flex-shrink:0;animation:cb-pulse 1.2s ease-in-out infinite}@keyframes cb-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.cb-rec-status{font-size:13px;color:#ffffff8c}.cb-rec-input{flex:1;min-width:200px;background:#00000059;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#e8f4ff;font-family:inherit;font-size:14px;padding:8px 14px;transition:border-color .2s}.cb-rec-input::placeholder{color:#ffffff47}.cb-rec-input:focus{outline:none;border-color:#ff9f45}.cb-action-btn.success{background:#28b45026;border:1px solid rgba(40,180,80,.3);color:#5de87a}.cb-action-btn.success:hover{background:#28b45047;border-color:#28b4508c;color:#90f5a8}.cb-saved-section{margin-top:14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;overflow:hidden}.cb-saved-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#ffffff08;cursor:default}.cb-saved-header h4{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#ffffff73;font-weight:700}.cb-saved-body{padding:0 12px 12px}.cb-saved-empty{text-align:center;color:#ffffff47;font-size:13px;padding:24px 0 12px}.cb-saved-list{display:flex;flex-direction:column;gap:6px;padding-top:12px}.cb-saved-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:background .15s}.cb-saved-item:hover{background:#ffffff12}.cb-saved-item-info{display:flex;flex-direction:column;gap:3px;min-width:0}.cb-saved-item-name{font-weight:700;font-size:14px;color:#f0f8ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cb-saved-item-meta{font-size:12px;color:#ffffff61}.cb-saved-item-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;align-items:center}.cb-tag{display:inline-flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 7px;border-radius:5px;vertical-align:middle;margin-left:4px}.cb-tag.public{background:#34c75926;border:1px solid rgba(52,199,89,.3);color:#34c759}.cb-tag.private{background:#ff9f451f;border:1px solid rgba(255,159,69,.25);color:#ff9f45}.cb-tag.local{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#ffffff73}.cb-saved-loading{font-size:13px;color:#ffffff59;padding:16px 0;text-align:center}@media (max-width: 600px){.cb-tray-section{gap:8px 12px;padding:14px 16px}.cb-tray-marker{width:34px;height:34px;font-size:13px}.cb-court-marker{width:30px;height:30px;font-size:12px}.cb-play-bar{flex-direction:column;align-items:flex-start}.cb-play-right{width:100%}.cb-rec-idle{flex-direction:column;align-items:flex-start;gap:10px}}@media (max-width: 768px){.cb-main{padding-top:24px;padding-bottom:20px}.cb-hero{margin-bottom:14px}.cb-hero h2{margin-bottom:6px}.cb-hero p{font-size:13px}.eyebrow{font-size:11px!important}.cb-board-wrapper{margin-bottom:12px}.cb-action-btn{font-size:12px;padding:6px 10px}.cb-toolbar-right{gap:6px}.cb-text-annotation{font-size:clamp(9px,2.5vw,11px);padding:2px 5px;max-width:min(120px,28%)}.cb-text-annotation.cb-text-editing{min-width:clamp(50px,18vw,100px);max-width:min(180px,42%)}.cb-toolbar{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:12px}.cb-toggle{width:100%}.cb-toggle-btn{flex:1}.cb-toolbar-right{width:100%;justify-content:space-between}.cb-tray-section{flex-direction:column;gap:8px;padding:12px 14px}.cb-tray{width:100%;flex-wrap:wrap;justify-content:flex-start}.cb-tray-marker{width:38px;height:38px;font-size:14px}.cb-tray-label{font-size:10px}.cb-tray-divider{display:none}.cb-play-bar{flex-direction:column;align-items:stretch;gap:10px;padding:12px 16px}.cb-play-left,.cb-play-right{width:100%}.cb-play-controls{justify-content:space-between}.cb-play-btn{flex:1;font-size:13px;padding:6px 8px}.cb-play-btn.primary{flex:1.2}.cb-play-speed-row{justify-content:space-between;width:100%}.cb-rec-bar{margin-top:12px;padding:12px 16px}.cb-rec-name-input{width:100%}.cb-rec-input{min-width:100%}.cb-court-marker{width:32px;height:32px;font-size:11px}.cb-saved-section{margin-top:10px}.cb-saved-item{padding:8px 12px;font-size:13px}.cb-saved-item-actions{flex-direction:column;gap:4px}.cb-saved-item-actions button{font-size:11px;padding:4px 10px}}@media (max-width: 480px){.cb-main{padding-top:16px;padding-bottom:16px}.cb-tray-marker{width:34px;height:34px;font-size:12px}.cb-play-btn{font-size:12px;padding:5px 6px}.cb-action-btn{font-size:11px;padding:5px 8px}.cb-toolbar-right{gap:4px}.cb-text-annotation{font-size:clamp(8px,2.2vw,10px);padding:2px 4px;max-width:min(100px,26%);border-radius:4px}.cb-text-annotation.cb-text-editing{min-width:clamp(44px,16vw,80px)}}.cb-hub-section{margin-top:28px}.cb-hub-section .cb-section-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cb-hub-body{margin-top:12px}.cb-hub-admin-bar{display:none;align-items:center;gap:8px;margin-bottom:10px}.cb-hub-add-form{display:none;background:#1a1a2e;border:1px solid #2f2f52;border-radius:10px;padding:16px;margin-bottom:14px;flex-direction:column;gap:10px}.cb-hub-form-row{display:flex;flex-direction:column;gap:4px}.cb-hub-form-row label{font-size:12px;color:#aaa;font-weight:600;letter-spacing:.04em}.cb-hub-form-row input,.cb-hub-form-row select,.cb-hub-form-row textarea{background:#12122a;border:1px solid #3a3a60;border-radius:6px;color:#e8e8ff;font-size:13px;padding:7px 10px;outline:none;transition:border-color .2s}.cb-hub-form-row input:focus,.cb-hub-form-row select:focus,.cb-hub-form-row textarea:focus{border-color:#7b68ee}.cb-hub-form-row textarea{resize:vertical;min-height:60px;font-family:inherit}.cb-hub-select{cursor:pointer}.cb-hub-form-actions{display:flex;gap:8px;flex-wrap:wrap}.cb-hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.cb-hub-card{position:relative;background:#1a1a2e;border:1px solid #2f2f52;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,transform .15s}.cb-hub-card:hover{border-color:#7b68ee;transform:translateY(-2px)}.cb-hub-thumb{display:block;position:relative;overflow:hidden;aspect-ratio:16/9;background:#0d0d20}.cb-hub-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.cb-hub-card:hover .cb-hub-thumb img{transform:scale(1.04)}.cb-hub-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;color:#555}.cb-hub-play-icon{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:40px;color:#ffffffd9;text-shadow:0 2px 8px rgba(0,0,0,.7);opacity:0;transition:opacity .2s}.cb-hub-card:hover .cb-hub-play-icon{opacity:1}.cb-hub-play-badge{display:flex;align-items:center;justify-content:center;height:80px;font-size:36px;color:#7b68ee;background:#12122a}.cb-hub-card-body{padding:10px 12px 12px;flex:1;display:flex;flex-direction:column;gap:6px}.cb-hub-card-title{font-size:14px;font-weight:700;color:#e8e8ff;line-height:1.3}.cb-hub-card-desc{font-size:12px;color:#999;line-height:1.4}.cb-hub-yt-link{font-size:12px;color:#7b68ee;text-decoration:none;margin-top:auto}.cb-hub-yt-link:hover{color:#a99bff;text-decoration:underline}.cb-hub-load-play{font-size:12px;margin-top:auto;align-self:flex-start}.cb-hub-delete{position:absolute;top:6px;right:6px;background:#140a0abf;border:1px solid #5a2020;border-radius:50%;color:#e55;cursor:pointer;font-size:11px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,background .15s}.cb-hub-card:hover .cb-hub-delete{opacity:1}.cb-hub-delete:hover{background:#b41414d9;border-color:#e55;color:#fff}#hub-empty{color:#666;font-size:13px;padding:10px 0}@media (max-width: 600px){.cb-hub-grid{grid-template-columns:1fr 1fr;gap:10px}.cb-hub-card-title{font-size:12px}}
