:root{font-family:"DM Sans",sans-serif;color:#17221b;background:#eef0eb;font-synthesis:none;--ink:#101813;--muted:#738078;--lime:#c9ff3d;--line:#dfe4dd}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}button,select,input{font:inherit}.topbar{height:72px;display:grid;grid-template-columns:260px 1fr auto;align-items:center;background:#fff;border-bottom:1px solid var(--line);padding:0 24px;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:800 17px Manrope;letter-spacing:.08em}.brand-mark{display:grid;place-items:center;width:32px;height:32px;background:var(--ink);color:var(--lime);border-radius:9px;font-size:18px;transform:skew(-6deg)}.brand small{font:600 7px DM Sans;letter-spacing:.18em;color:#8d9790;margin-left:-88px;margin-top:28px}.project-title{justify-self:center;display:flex;align-items:center;gap:10px}.project-title>div{display:flex;flex-direction:column;text-align:center}.eyebrow{font-size:9px;font-weight:800;letter-spacing:.16em;color:#9aa29d}.project-title strong{font:700 14px Manrope}.icon-button{border:0;background:transparent;border-radius:8px;padding:8px;color:#626e66;cursor:pointer}.icon-button:hover{background:#f0f2ee}.mobile-menu{display:none}.top-actions{display:flex;gap:9px}.button{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:#fff;font-weight:700;font-size:12px;cursor:pointer}.button.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.button.primary:hover{background:#28332c}.workspace{height:calc(100vh - 72px);display:grid;grid-template-columns:236px minmax(450px,1fr) 280px}.sidebar{background:#fff;padding:23px 18px;overflow-y:auto}.left-sidebar{border-right:1px solid var(--line)}.sidebar section+section{border-top:1px solid #edf0ec;margin-top:22px;padding-top:20px}.sidebar h2{font:700 12px Manrope;margin:0 0 12px}.segmented{padding:3px;border-radius:9px;background:#f0f2ef;display:flex}.segmented button{flex:1;border:0;background:transparent;border-radius:7px;padding:8px;font-size:11px;color:#7a857e;cursor:pointer}.segmented button.active{background:#fff;color:#202b24;box-shadow:0 1px 5px #1b2d2115}.swatch{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.swatch.green{background:#32734e}.swatch.white{background:white;border:1px solid #aab2ad}.select-label{display:block;font-size:10px;font-weight:700;color:#89938c;margin-top:13px}.select-label select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:9px;padding:10px;background:white;font-size:11px;color:#28342c}.tools{display:grid;gap:4px}.tool{height:39px;border:0;background:transparent;border-radius:9px;display:grid;grid-template-columns:25px 1fr auto;align-items:center;text-align:left;padding:0 10px;color:#5e6a62;font-size:11px;font-weight:600;cursor:pointer}.tool:hover{background:#f4f6f3}.tool.active{background:#edf7ce;color:#19251d}.tool>span{font-size:17px}.tool kbd{font-size:8px;background:#fff;border:1px solid #dfe5dd;border-radius:4px;padding:2px 5px;color:#8d9690}.dot-icon{width:14px;height:14px;background:#1e3326;border:3px solid var(--lime);border-radius:50%}.tips{color:#8a958e}.tips p{font-size:10px;line-height:1.55;margin:0}.stage-area{display:flex;min-width:0;flex-direction:column;background:#e9ece7}.stage-toolbar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #d8ded7;background:#f7f8f5}.stage-toolbar>div{display:flex;align-items:center;gap:7px}.status{font-size:10px;color:#7f8a83}.pulse{width:7px;height:7px;border-radius:50%;background:#6fc43d;box-shadow:0 0 0 3px #6fc43d22}.divider{height:18px;width:1px;background:#d9ded9;margin:0 4px}.zoom{border:0;background:transparent;color:#657169;cursor:pointer}.stage-toolbar #zoomLabel{font-size:10px;width:34px;text-align:center}.canvas-wrap{position:relative;flex:1;display:grid;place-items:center;padding:28px;overflow:hidden;background-image:radial-gradient(#b9c1ba 1px,transparent 1px);background-size:20px 20px}#board{height:min(100%,850px);max-width:100%;filter:drop-shadow(0 16px 28px #15261a28);touch-action:none;user-select:none}.pitch-bg{transition:fill .25s}.pitch-lines{pointer-events:none}.empty-hint{position:absolute;pointer-events:none;left:50%;top:50%;transform:translate(-50%,-50%);background:#142119dd;color:white;border:1px solid #ffffff22;border-radius:12px;padding:12px 20px;text-align:center;box-shadow:0 6px 20px #0003;transition:.2s}.empty-hint strong,.empty-hint span{display:block}.empty-hint strong{font-size:12px}.empty-hint span{font-size:9px;color:#b7c1ba;margin-top:3px}.right-sidebar{border-left:1px solid var(--line);padding:22px 18px}.animation-heading{display:flex;justify-content:space-between;align-items:center}.animation-heading h2{font-size:16px;margin:2px 0}.playback{display:flex;align-items:center;gap:12px;margin:22px 0 10px}.play-button{border:0;background:var(--lime);width:40px;height:40px;border-radius:50%;cursor:pointer;padding-left:5px}.time{display:flex;flex:1;align-items:baseline;gap:4px}.time strong{font:700 15px Manrope}.time span{font-size:10px;color:#a0aaa3}.right-sidebar input[type=range]{width:100%;accent-color:#1b2920;height:3px}.scene-header{margin-top:28px;display:flex;align-items:center;justify-content:space-between}.scene-header h2{margin:0}.scene-header button{border:0;background:transparent;font-size:10px;font-weight:700;cursor:pointer}.scenes{position:relative;margin-top:12px}.scene{width:100%;border:1px solid transparent;background:transparent;border-radius:11px;padding:9px;display:grid;grid-template-columns:29px 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer}.scene.active{border-color:#cbd5cc;background:#f6f8f4}.scene>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#e7ece6;font-size:10px;font-weight:800}.scene.active>span{background:var(--ink);color:var(--lime)}.scene div{display:flex;flex-direction:column}.scene strong{font-size:10px}.scene small,.scene em{font-size:8px;color:#9aa39d;font-style:normal}.scene-add{margin:8px 0 0 13px;border:1px dashed #cdd4ce;border-radius:9px;background:transparent;width:calc(100% - 13px);padding:10px;color:#7c8880;font-size:13px;cursor:pointer}.scene-add span{font-size:9px;margin-left:7px}.scene-note{display:flex;gap:9px;background:#f1f5e8;border-radius:10px;padding:11px;margin-top:22px;color:#69756d}.scene-note>span{color:#829a3e}.scene-note p{font-size:9px;line-height:1.45;margin:0}.scene-note strong{display:block;color:#344139}.mobile-tools{display:none}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);background:#101813;color:#fff;padding:10px 15px;border-radius:9px;font-size:11px;opacity:0;pointer-events:none;transition:.25s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}.board-item{cursor:grab}.board-item.pending-item{opacity:.5}.board-item.selected .select-ring{display:block}.select-ring{display:none;fill:none;stroke:#c9ff3d;stroke-width:3;stroke-dasharray:5 3}.arrow-line{fill:none;stroke-width:7;stroke-linecap:round;cursor:pointer}.white-field .pitch-lines{stroke:#465148}.white-field .pitch-bg{fill:#fbfcf8}.white-field .arrow-line.pass{stroke:#17231b;marker-end:url(#arrow-blue)}
@media(max-width:1050px){.workspace{grid-template-columns:210px minmax(420px,1fr)}.right-sidebar{position:fixed;z-index:8;right:0;top:72px;bottom:0;width:280px;box-shadow:-10px 0 30px #18211924;transform:translateX(100%);transition:.25s}.right-sidebar.open{transform:none}.topbar{grid-template-columns:220px 1fr auto}}
@media(max-width:760px){body{overflow:hidden}.topbar{height:58px;grid-template-columns:1fr auto;padding:0 12px}.brand{display:none}.project-title{justify-self:start}.project-title>div{text-align:left}.mobile-menu{display:block}.top-actions .subtle{display:none}.button{padding:9px}.button span{display:none}.workspace{height:calc(100vh - 58px - 64px);display:block}.left-sidebar{display:none}.stage-area{height:100%}.stage-toolbar{height:42px}.status{display:none}.canvas-wrap{padding:14px 8px}#board{width:100%;height:100%}.mobile-tools{position:fixed;display:flex;bottom:0;left:0;right:0;height:64px;background:#fff;border-top:1px solid var(--line);z-index:9;padding-bottom:env(safe-area-inset-bottom)}.mobile-tools button{flex:1;border:0;background:white;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:18px;color:#758078}.mobile-tools button span{font-size:8px;font-weight:700}.mobile-tools button.active{color:#1c2921}.mobile-tools button.active:before{content:"";position:absolute;top:0;width:36px;height:3px;background:var(--lime)}.right-sidebar{top:58px;bottom:64px}.empty-hint{white-space:nowrap}}

/* Board sizing: the selected view always fits completely and starts at the top. */
.canvas-wrap{display:flex;align-items:flex-start;justify-content:center;min-height:0;overflow:auto;padding:20px}
#board{--zoom:1;display:block;width:auto;height:calc((100vh - 160px)*var(--zoom));max-height:none;max-width:100%;transform:none;transform-origin:top center;flex:none}
#board[data-view="top"],#board[data-view="bottom"]{height:calc((100vh - 160px)*var(--zoom))}
.pitch-bg{fill:url(#grass)}
.select-ring{stroke:#e5ff9a;stroke-width:1.5;stroke-dasharray:4 4}
.shape-ring{stroke:#e5ff9a;stroke-width:2}
.arrow-selection{fill:none;stroke:#e5ff9a;stroke-width:12;stroke-opacity:.3;stroke-linecap:round}

.selection-bar{position:absolute;z-index:4;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 18px #17241b24}
.selection-bar[hidden]{display:none}.selection-bar button,.property-actions button{border:0;background:#f2f4f1;border-radius:7px;padding:7px 10px;font-size:10px;font-weight:700;cursor:pointer}.danger{color:#ba3d3d!important}.right-sidebar{overflow-y:auto}
.properties{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.properties[hidden]{display:none}.property-heading{display:flex;align-items:center;justify-content:space-between}.property-heading h2{font-size:15px;margin:2px 0 12px}.properties label{position:relative;display:block;margin-top:10px;font-size:9px;font-weight:700;color:#7a857e}.properties input:not([type=color]),.properties select{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff;font-size:10px;color:#263229}.properties input[type=color]{display:block;width:100%;height:34px;margin-top:5px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#fff}.property-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.properties output{position:absolute;right:3px;top:0;font-size:8px}.property-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:14px}
.record-flow{background:#f5f7f2;border:1px solid #e2e7df;border-radius:12px;padding:11px;margin-top:14px}.record-flow.recording{border-color:#a9cb4a;box-shadow:0 0 0 3px #c9ff3d22}.record-step{display:flex;align-items:center;gap:8px;margin-bottom:8px}.record-step>span{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e3e8e1;color:#536158;font-size:9px;font-weight:800}.record-step p{margin:0}.record-step strong,.record-step small{display:block;font-size:9px}.record-step small{color:#929c95;font-size:8px}.record-button{width:100%;border:0;border-radius:8px;background:#17231b;color:#fff;padding:9px;font-size:10px;font-weight:800;cursor:pointer}.record-button.finish{background:#bde83e;color:#17231b}.record-status{font-size:8px;line-height:1.4;color:#7d8981;margin:8px 2px 0}
.path-button{width:100%;margin-top:6px;border:1px solid #bec8bf;border-radius:8px;background:#fff;color:#344139;padding:8px;font-size:9px;font-weight:800;cursor:pointer}.motion-path{fill:none;stroke:#f4ffb5;stroke-width:3;stroke-dasharray:7 7;stroke-linecap:round;pointer-events:none}.draft-path{stroke:#17231b;stroke-width:4;stroke-dasharray:5 6}.motion-tracks label{display:block;margin-top:9px;padding-top:8px;border-top:1px solid #e1e6df}.motion-tracks label>span{font-size:9px;font-weight:800}.motion-tracks small{float:right;font-size:8px;color:#7e8981}.motion-tracks input{width:100%;height:3px;accent-color:#83a82c}
.color-presets{margin-top:13px;padding-top:10px;border-top:1px solid #e5e9e4}.color-presets>span{font-size:9px;font-weight:700;color:#7a857e}.color-presets>button{width:100%;margin-top:7px;border:1px dashed #cbd2cc;border-radius:7px;background:#fff;padding:7px;font-size:8px;color:#68746c;cursor:pointer}#presetList{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}#presetList button{display:flex;border:1px solid #dce2dc;border-radius:7px;background:#fff;padding:3px;cursor:pointer}#presetList i{display:block;width:10px;height:20px}

@media(max-width:760px){.canvas-wrap{padding:8px;overflow:auto}#board{height:calc((100vh - 126px)*var(--zoom));max-width:100%}.selection-bar{top:6px}.selection-bar button span{display:none}}

/* Quiet, fixed editing controls and two-team setup. */
.stage-toolbar .selection-bar{position:static;transform:none;padding:2px;background:#eef1ed;border:0;border-radius:7px;box-shadow:none}.stage-toolbar .selection-bar button{padding:5px 8px;background:transparent;color:#5f6b63;font-weight:600}.stage-toolbar .selection-bar button:not(:disabled):hover{background:#fff}.stage-toolbar .selection-bar button:disabled{opacity:.32;cursor:default}.stage-toolbar{background:#fbfcfa}.tool.active{background:#edf1ec;color:#16221a}.play-button{background:#e7ece5}.record-button.finish{background:#dfe9d8}.select-ring{stroke:#ffffff;stroke-opacity:.9}.team-picker{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:14px}.team-picker>span{grid-column:1/-1;font-size:9px;font-weight:700;color:#89938c}.team-picker button{display:flex;justify-content:center;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:7px;font-size:9px;color:#68746c;cursor:pointer}.team-picker button.active{border-color:#8d9890;box-shadow:0 0 0 2px #17231b0d;color:#1f2a23}.team-picker i{width:10px;height:10px;border-radius:50%;background:#d94a4a}.team-picker [data-team="blue"] i{background:#3978d4}.dot-icon{background:#d94a4a;border:2px solid #7f2025}.property-grid{grid-template-columns:repeat(3,1fr)}
.properties input[type="range"]{padding:0;border:0;background:transparent;cursor:pointer}
@media(max-width:760px){.stage-toolbar .selection-bar{display:flex}.stage-toolbar .selection-bar button{padding:5px}.stage-toolbar .selection-bar button span{display:none}}

.animation-meta{display:grid;grid-template-columns:1fr 68px;gap:7px;margin-bottom:12px}.animation-meta label{position:relative;font-size:8px;font-weight:700;color:#7e8981}.animation-meta input{width:100%;height:32px;margin-top:4px;border:1px solid #dde3dd;border-radius:7px;background:#fff;padding:6px 8px;font-size:9px;color:#263229}.animation-meta label:last-child span{position:absolute;right:8px;bottom:8px;color:#8b958e}.animation-meta input[type=number]{padding-right:18px}.timeline-track{margin-top:9px;padding:9px;background:#fff;border:1px solid #e2e7e1;border-radius:9px}.timeline-track header{display:flex;align-items:center;gap:6px}.timeline-track header i{width:8px;height:8px;border-radius:50%}.timeline-track header strong{flex:1;font-size:9px}.timeline-track header button{border:0;background:#f0f3ef;border-radius:5px;padding:3px 6px;cursor:pointer}.time-inputs{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:5px;margin-top:7px}.time-inputs label{font-size:7px;color:#8b958e}.time-inputs input{width:45px;border:0;border-bottom:1px solid #dbe1db;padding:3px 0;font-size:9px}.time-inputs>span{font-size:9px;color:#a0aaa3;padding-bottom:4px}.track-rail{position:relative;height:4px;margin-top:8px;background:#e9ede9;border-radius:4px;overflow:hidden}.track-rail i{position:absolute;top:0;bottom:0;border-radius:4px}.saved-animations{margin-top:8px}.saved-animations>p{font-size:8px;color:#909a93}.saved-animations>button{width:100%;display:flex;align-items:center;gap:8px;border:1px solid #e1e6e0;border-radius:9px;background:#fff;padding:8px;text-align:left;cursor:pointer}.saved-animations>button+button{margin-top:5px}.saved-animations>button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#edf1ed;font-size:8px}.saved-animations div{display:flex;flex-direction:column}.saved-animations strong{font-size:9px}.saved-animations small{font-size:7px;color:#929c95}
.line-hit{pointer-events:stroke;cursor:pointer}.new-animation-button{width:100%;margin-top:14px;border:0;border-radius:9px;background:#17231b;color:#fff;padding:10px;font-size:10px;font-weight:700;cursor:pointer}.record-flow{display:none}.record-flow.recording{display:block}.record-instruction{padding:9px;margin-bottom:9px;border-radius:8px;background:#eef2ed}.record-instruction strong,.record-instruction span{display:block;font-size:9px}.record-instruction span{margin-top:2px;color:#7e8981;font-size:8px}.timeline-track{padding:11px}.timeline-track.active{border-color:#9ba89f;box-shadow:0 0 0 2px #17231b0a}.timeline-track header strong{font-size:10px}.timeline-track header .track-delete{background:transparent;color:#a24b4b;font-size:13px}.route-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:9px}.route-actions button{border:1px solid #e0e5df;border-radius:6px;background:#f8f9f7;padding:6px 4px;font-size:7px;color:#56635a;cursor:pointer}.route-actions button:last-child{grid-column:1/-1;color:#a24b4b}.saved-card{display:grid!important;grid-template-columns:1fr auto;align-items:center;border:1px solid #e1e6e0;border-radius:9px;background:#fff;padding:5px}.saved-card+.saved-card{margin-top:5px}.saved-card>button{display:flex;align-items:center;gap:7px;border:0;background:transparent;text-align:left;cursor:pointer}.saved-card>button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#edf1ed;font-size:8px}.saved-card>div{display:flex;flex-direction:row;gap:2px}.saved-card>div button{border:0;background:transparent;color:#7d8880;padding:5px;cursor:pointer}.saved-card>div button:last-child{color:#a24b4b}
.motion-arrow{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.timeline-scale{display:flex;justify-content:space-between;margin-top:10px;padding-bottom:2px;border-bottom:1px solid #edf0ed;color:#9aa39d;font-size:7px}.time-slider{display:block;margin-top:8px}.time-slider>span{display:flex;justify-content:space-between;font-size:8px;font-weight:700;color:#5e6962}.time-slider output{color:#7e8981;font-weight:500}.time-slider input{display:block;width:100%;height:14px;margin:2px 0 0;padding:0;border:0;background:transparent;accent-color:var(--track-color);cursor:pointer}.timeline-track .track-rail{height:5px;margin-top:9px}.timeline-track header button{font-size:8px;padding:5px 7px}.timeline-track.active header button:first-of-type{background:#17231b;color:#fff}
.return-board-button{width:100%;margin-top:7px;border:1px solid #dce2dc;border-radius:8px;background:#fff;padding:8px;color:#5f6b63;font-size:9px;font-weight:700;cursor:pointer}.return-panel{margin-top:12px;padding:12px;border:1px solid #dce2dc;border-radius:11px;background:#f7f9f6}.return-panel[hidden]{display:none}.return-panel strong,.return-panel span{display:block}.return-panel strong{font-size:10px}.return-panel span{margin:3px 0 9px;color:#7f8a83;font-size:8px;line-height:1.4}.return-panel button{width:100%;border:1px solid #dfe4df;border-radius:7px;background:#fff;padding:8px;font-size:9px;color:#344139;cursor:pointer}.return-panel button+button{margin-top:5px}.return-panel button:hover{border-color:#9faa9f;background:#f1f4f0}
.motion-path.ball-motion{stroke-dasharray:none}.record-flow.recording{border-color:#dce2dc;box-shadow:none;background:#f7f9f6}.animation-meta{position:sticky;top:-22px;z-index:2;background:#fff;margin:-11px -11px 10px;padding:11px;border-bottom:1px solid #e4e8e3}.timeline-values{display:flex;justify-content:space-between;margin-top:9px;font-size:8px;font-weight:700;color:#5d6861}.timeline-values output{color:#7d8881;font-weight:500}.dual-range{position:relative;height:22px;margin-top:3px}.dual-range .track-rail{position:absolute;left:0;right:0;top:8px;height:5px;margin:0;background:#e7ebe7}.dual-range input{position:absolute;inset:0;width:100%;height:20px;margin:0;padding:0;border:0;background:transparent;appearance:none;pointer-events:none}.dual-range input::-webkit-slider-runnable-track{height:5px;background:transparent}.dual-range input::-webkit-slider-thumb{appearance:none;width:14px;height:14px;margin-top:-4.5px;border:2px solid #fff;border-radius:50%;background:var(--track-color);box-shadow:0 0 0 1px #aeb7b0;pointer-events:auto;cursor:grab}.dual-range input::-moz-range-track{height:5px;background:transparent}.dual-range input::-moz-range-thumb{width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:var(--track-color);box-shadow:0 0 0 1px #aeb7b0;pointer-events:auto;cursor:grab}.dual-range+.timeline-scale{margin-top:-1px;padding:0;border:0}.timeline-track{padding:10px 11px}.timeline-track header{min-height:27px}
.workspace{grid-template-columns:236px minmax(450px,1fr) 340px}.right-sidebar{padding:22px 20px}.board-properties{flex:none;display:flex;align-items:center;gap:10px;min-height:62px;margin:0;padding:7px 14px;background:#fff;border-bottom:1px solid var(--line);overflow-x:auto}.board-properties[hidden]{display:none}.board-properties .property-heading{flex:0 0 95px}.board-properties .property-heading h2{margin:1px 0 0}.board-properties>label{flex:0 0 115px;margin:0}.board-properties .property-grid{display:flex;flex:0 0 auto;gap:5px}.board-properties .property-grid label{width:55px;margin:0}.board-properties input[type=color]{height:28px;margin-top:3px}.board-properties input:not([type=color]),.board-properties select{margin-top:3px;padding:5px}.board-properties .color-presets{display:flex;align-items:center;gap:5px;margin:0;padding:0 0 0 8px;border:0;border-left:1px solid #e5e9e4}.board-properties .color-presets>span{display:none}.board-properties .color-presets>button{width:auto;white-space:nowrap;margin:0;padding:6px}.board-properties #presetList{flex-wrap:nowrap;margin:0}.board-properties .property-actions{display:flex;gap:4px;margin:0}.animation-heading{margin-bottom:2px}.new-animation-button{padding:12px;font-size:11px}.record-flow.recording{padding:14px}.timeline-track{padding:12px}.animation-export{margin-top:18px;padding:12px;border:1px solid #e1e6e0;border-radius:10px;background:#f7f9f6}.animation-export label{display:block;font-size:8px;font-weight:700;color:#738078}.animation-export select{width:100%;margin-top:5px;border:1px solid #dce2dc;border-radius:7px;background:#fff;padding:7px;font-size:9px}.animation-export button{width:100%;margin-top:7px;border:0;border-radius:8px;background:#17231b;color:#fff;padding:9px;font-size:9px;font-weight:700;cursor:pointer}.animation-export button:disabled{opacity:.55}.animation-export small{display:block;margin-top:6px;color:#7d8881;font-size:7px;line-height:1.4}
@media(max-width:1050px){.workspace{grid-template-columns:210px minmax(420px,1fr)}.right-sidebar{width:340px}}
@media(max-width:760px){.board-properties{min-height:54px;padding:6px 8px}.board-properties .property-heading{flex-basis:80px}.right-sidebar{width:min(340px,92vw)}}

/* Stable board canvas: the contextual editor replaces the top toolbar instead of moving the pitch. */
.stage-area{position:relative}.board-properties{position:absolute;z-index:6;top:0;left:0;right:0;height:48px;min-height:48px;padding:5px 12px}.canvas-wrap{flex:1}.white-field .board-item{filter:none}.white-field .board-item circle{filter:none}.team-picker i,.dot-icon{background:#c9142d}.team-picker [data-team="blue"] i{background:#1758b8}.dot-icon{border-color:#fff}
/* Animation-only sidebar with flat, scannable timeline rows. */
.workspace{grid-template-columns:236px minmax(450px,1fr) 380px}.right-sidebar{width:auto;padding:22px 22px}.record-flow.recording{padding:0;border:0;background:#fff}.animation-meta{top:-22px;margin:0 -2px 0;padding:10px 2px 12px}.record-instruction{display:none}.record-button.finish{margin-top:10px;background:#17231b;color:#fff}.return-board-button{margin-top:6px}.record-status{margin:9px 2px;color:#758078}.motion-tracks{margin-top:4px;border-top:1px solid #e2e7e1}.timeline-track,.timeline-track.active{margin:0;padding:13px 2px;border:0;border-bottom:1px solid #e2e7e1;border-radius:0;box-shadow:none;background:#fff}.timeline-track header{min-height:25px}.timeline-track header i{width:9px;height:9px}.timeline-track header strong{font-size:11px}.timeline-track header button{background:transparent}.timeline-track.active header button:first-of-type{background:#17231b}.timeline-values{margin-top:7px}.route-actions{margin-top:8px}.animation-export{margin-top:16px}.scene-note{background:#f6f7f4}
@media(max-width:1050px){.right-sidebar{width:380px}}@media(max-width:760px){.right-sidebar{width:min(380px,94vw)}.board-properties{height:42px;min-height:42px}}

/* Focus mode: the pitch owns the screen until animation is explicitly opened. */
.topbar{display:none}.workspace{height:100vh}.workspace.animation-closed{grid-template-columns:236px minmax(0,1fr)}.workspace.animation-closed .right-sidebar{display:none}.canvas-wrap{padding-top:16px}.quick-actions button{width:100%;border:0;border-radius:9px;background:#17231b;color:#fff;padding:10px;font-size:10px;font-weight:700;cursor:pointer}.quick-actions button.light{margin-top:7px;border:1px solid #dce2dc;background:#fff;color:#344139}.quick-actions label{display:block;margin-top:9px;font-size:9px;font-weight:700;color:#7f8a83}.quick-actions select{display:block;width:100%;margin-top:5px;border:1px solid #dce2dc;border-radius:8px;background:#fff;padding:8px;font-size:9px;color:#344139}
@media(max-width:1050px){.workspace.animation-closed{grid-template-columns:210px minmax(0,1fr)}}@media(max-width:760px){.workspace,.workspace.animation-closed{height:calc(100vh - 64px);display:block}.workspace.animation-closed .right-sidebar{display:none}}
#board,#board[data-view="top"],#board[data-view="bottom"]{height:calc((100vh - 88px)*var(--zoom))}@media(max-width:760px){#board{height:calc((100vh - 112px)*var(--zoom))}}
.quick-actions button.text-action{margin-top:4px;background:transparent;color:#7d8881;font-size:8px;font-weight:600}

/* Clean accordion navigation and a landscape-first canvas. */
.left-sidebar{padding:12px;background:#fbfcfa;overflow-y:auto}.side-brand{display:flex;align-items:center;gap:9px;padding:5px 6px 14px;font-family:Manrope,sans-serif;letter-spacing:.08em}.side-brand span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#111b15;color:#c9ff3d;font-weight:800}.panel{border-top:1px solid #e5e9e4}.panel:last-of-type{border-bottom:1px solid #e5e9e4}.panel summary{display:flex;align-items:center;gap:9px;padding:15px 5px;list-style:none;cursor:pointer;font-size:11px;font-weight:800;color:#1d2921}.panel summary::-webkit-details-marker{display:none}.panel summary>span{width:18px;color:#66736b;font-size:14px}.panel summary i{margin-left:auto;font-style:normal;color:#9aa49d;transition:.2s}.panel[open] summary i{transform:rotate(180deg)}.panel-content{padding:0 3px 15px}.panel-label{display:block;margin:12px 0 7px;color:#849088;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.color-row{display:flex;gap:7px}.color-row label{flex:1;color:#758078;font-size:8px;font-weight:700}.color-row input[type=color]{display:block;width:100%;height:34px;margin-top:5px;padding:3px;border:1px solid #dce2dc;border-radius:8px;background:#fff}.view-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.view-grid button{display:flex;align-items:center;gap:6px;border:1px solid #e0e5e0;border-radius:8px;background:#fff;padding:7px 6px;color:#647168;font-size:8px;cursor:pointer}.view-grid button.active{border-color:#7d8a80;background:#eef2ed;color:#18231c}.field-icon{position:relative;display:block;width:20px;height:13px;border:1px solid currentColor}.field-icon.portrait{width:12px;height:18px}.field-icon.half-left:after,.field-icon.half-right:after,.field-icon.half-top:after,.field-icon.half-bottom:after,.field-icon.third:after,.field-icon.center:after{content:"";position:absolute;background:#c9d2cb}.field-icon.half-left:after{inset:0 50% 0 0}.field-icon.half-right:after{inset:0 0 0 50%}.field-icon.half-top:after{inset:0 0 50%}.field-icon.half-bottom:after{inset:50% 0 0}.field-icon.third:after{inset:0 0 0 65%}.field-icon.center:after{left:47%;top:0;bottom:0;width:2px}.field-icon.blank{border-style:dashed}.team-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px}.team-tabs button,.team-actions button,.primary-panel-button{border:1px solid #dde3dd;border-radius:8px;background:#fff;padding:8px;font-size:8px;font-weight:700;cursor:pointer}.team-tabs button.active{border-color:#7b887f;background:#eef2ed}.team-tabs i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:#c9142d}.team-tabs [data-team=blue] i{background:#1758b8}.team-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px}.formation-label{display:block;margin-top:11px;color:#758078;font-size:8px;font-weight:700}.formation-label select{width:100%;margin-top:5px;padding:8px;border:1px solid #dce2dc;border-radius:8px;background:#fff}.primary-panel-button{width:100%;margin-top:6px;background:#17231b;color:#fff}.panel .tools{display:grid;grid-template-columns:1fr 1fr;gap:4px}.panel .tool{min-height:37px;padding:7px;font-size:8px}.panel .tool span{font-size:14px}.panel .tool kbd{display:none}.canvas-wrap{padding:12px;align-items:center;overflow:hidden}#board,#board[data-view]{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}.pitch-bg,.pitch-stripes{pointer-events:none}.mobile-panel-button{display:none}
@media(max-width:760px){.left-sidebar{display:block;position:fixed;z-index:30;top:0;bottom:64px;left:0;width:min(286px,88vw);transform:translateX(-105%);transition:.22s;box-shadow:12px 0 35px #1420182b}.left-sidebar.open{transform:none}.mobile-panel-button{display:grid;place-items:center;position:fixed;z-index:31;left:10px;top:10px;width:36px;height:36px;border:1px solid #dce2dc;border-radius:10px;background:#fff;color:#17231b;box-shadow:0 4px 15px #17231b1a}.canvas-wrap{padding:7px 7px 7px 50px}}

/* Keep the canvas completely unobstructed; compact board controls live in the sidebar. */
.sidebar-controls{margin:-4px 0 10px;padding:8px;border:1px solid #e5e9e4;border-radius:10px;background:#fff}.sidebar-controls .status{display:flex;align-items:center;gap:6px;min-height:20px;padding:0 3px;color:#89938c;font-size:8px}.sidebar-control-row{display:flex;align-items:center;gap:3px;margin-top:4px}.sidebar-controls .selection-bar{position:static;display:flex;transform:none;gap:2px;padding:0;border:0;background:transparent;box-shadow:none}.sidebar-controls .selection-bar button,.sidebar-controls .icon-button,.sidebar-controls .zoom{display:grid;place-items:center;width:27px;height:27px;border:0;border-radius:7px;background:#f2f4f1;padding:0;color:#5f6b63;font-size:11px}.sidebar-controls .selection-bar button:not(:disabled):hover,.sidebar-controls .icon-button:hover,.sidebar-controls .zoom:hover{background:#e7ebe7}.sidebar-controls .selection-bar button:disabled{opacity:.28}.sidebar-zoom{display:flex;align-items:center;margin-left:auto}.sidebar-zoom #zoomLabel{width:32px;text-align:center;color:#647168;font-size:8px}.stage-area{height:100vh;min-height:0;overflow:hidden}.canvas-wrap{width:100%;height:100%;min-width:0;min-height:0;padding:10px;overflow:hidden;align-items:stretch;justify-content:stretch}#board,#board[data-view],#board[data-view="top"],#board[data-view="bottom"]{display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;flex:1;object-fit:contain;transform:none}.board-properties{top:0}
@media(max-width:760px){.stage-area{height:calc(100vh - 64px)}.canvas-wrap{height:100%;padding:7px 7px 7px 50px}.sidebar-controls .status{display:flex}}

/* NN identity, closed-by-default navigation and compact professional controls. */
.side-brand{display:flex;align-items:baseline;gap:7px;padding:8px 5px 15px;letter-spacing:0}.side-brand strong{font:800 21px Manrope,sans-serif;letter-spacing:-.07em;color:#111a14}.side-brand span{display:block;width:auto;height:auto;border-radius:0;background:transparent;color:#536158;font:700 9px Manrope,sans-serif;letter-spacing:.15em}.login-button{display:flex;align-items:center;width:100%;margin:0 0 10px;padding:9px 10px;border:1px solid #e0e5e0;border-radius:9px;background:#fff;color:#263229;font-size:9px;font-weight:700;cursor:pointer}.login-button>span{margin-right:6px;color:#68756d}.login-button small{margin-left:auto;color:#9aa39d;font-size:7px;font-weight:500}.pitch-zoom{display:flex;align-items:center;gap:3px;margin-top:9px;padding:6px 7px;border-radius:8px;background:#f2f4f1}.pitch-zoom>span:first-child{margin-right:auto;color:#758078;font-size:8px;font-weight:700}.pitch-zoom button{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:6px;background:#fff;color:#5e6a62;cursor:pointer}.pitch-zoom #zoomLabel{width:30px;text-align:center;color:#657169;font-size:8px}.formation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;max-height:220px;overflow:auto}.formation-grid button{display:flex;align-items:center;gap:6px;min-width:0;padding:5px;border:1px solid #e0e5e0;border-radius:8px;background:#fff;color:#536057;font-size:8px;font-weight:700;cursor:pointer}.formation-grid button.active{border-color:#738078;background:#f0f3ef;color:#18231c}.formation-pitch{position:relative;display:block;flex:0 0 38px;width:38px;height:27px;border:1px solid #aeb8b0;border-radius:2px;background:#edf2ed}.formation-pitch>b{position:absolute;left:50%;top:0;bottom:0;border-left:1px solid #c8d0c9}.formation-pitch em{position:absolute;top:calc(3px + var(--row)*6px);left:calc((var(--index) + 1)*100%/(var(--count) + 1));width:3px;height:3px;transform:translateX(-50%);border-radius:50%;background:#263229}.tactical-context{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}.tactical-context label{color:#758078;font-size:7px;font-weight:700}.tactical-context select{display:block;width:100%;margin-top:4px;padding:7px 4px;border:1px solid #dce2dc;border-radius:7px;background:#fff;color:#344139;font-size:7px}.login-dialog{width:min(360px,calc(100vw - 32px));padding:28px;border:0;border-radius:16px;color:#17221b;box-shadow:0 24px 80px #10181340}.login-dialog::backdrop{background:#10181366;backdrop-filter:blur(3px)}.login-dialog>button:first-child{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:20px;cursor:pointer}.login-dialog>span{color:#8a958e;font-size:8px;font-weight:800;letter-spacing:.16em}.login-dialog h2{margin:5px 0 8px;font:800 20px Manrope}.login-dialog p{margin:0;color:#6f7b73;font-size:10px;line-height:1.55}.login-dialog #loginPlaceholder{width:100%;margin-top:18px;padding:10px;border:0;border-radius:9px;background:#17231b;color:#fff;font-size:10px;font-weight:700}.board-item{filter:none}.board-item circle{filter:none!important}
/* The contextual inspector fits into one row without horizontal scrolling. */
.board-properties{gap:5px;height:46px;min-height:46px;padding:4px 7px;overflow:hidden}.board-properties .property-heading{flex:0 0 70px}.board-properties .property-heading .eyebrow{display:none}.board-properties .property-heading h2{font-size:10px}.board-properties>label{flex:1 1 76px;min-width:55px;max-width:100px;font-size:7px}.board-properties .property-grid{flex:0 1 130px;min-width:105px;gap:3px}.board-properties .property-grid label{width:auto;flex:1;font-size:0}.board-properties input[type=color]{height:23px;margin-top:1px}.board-properties input:not([type=color]),.board-properties select{height:24px;margin-top:1px;padding:3px;font-size:8px}.board-properties .properties output{font-size:6px}.board-properties .color-presets{flex:0 1 105px;min-width:65px;padding-left:4px}.board-properties #presetList i{width:7px;height:14px}.board-properties .color-presets>button{padding:4px;font-size:7px}.board-properties .property-actions{flex:0 0 auto}.board-properties .property-actions button{padding:5px;font-size:0}.board-properties .property-actions button:first-child:before{content:'⧉';font-size:10px}.board-properties .property-actions button:last-child:before{content:'⌫';font-size:10px}
@media(max-width:900px){.board-properties .color-presets{display:none}.board-properties>label{max-width:82px}.board-properties .property-heading{flex-basis:58px}}

/* Explicit one-shot/repeat placement keeps tool behavior predictable. */
.placement-mode{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:8px;padding:3px;border-radius:8px;background:#eef1ed}.placement-mode button{border:0;border-radius:6px;background:transparent;padding:7px 4px;color:#718077;font-size:7px;font-weight:700;cursor:pointer}.placement-mode button.active{background:#fff;color:#1e2a22;box-shadow:0 1px 4px #17231b12}

/* Optional formation labels: empty, shirt numbers, or position abbreviations. */
.formation-labels{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:8px 0 0;padding:0;border:0}.formation-labels legend{grid-column:1/-1;margin-bottom:4px;padding:0;color:#758078;font-size:7px;font-weight:700}.formation-labels label{display:flex;align-items:center;justify-content:center;gap:3px;padding:6px 2px;border:1px solid #dfe4df;border-radius:7px;background:#fff;color:#66736b;font-size:7px;font-weight:700;cursor:pointer}.formation-labels input{width:9px;height:9px;margin:0;accent-color:#17231b}

/* Full-bleed default grass, working zoom, marquee selection, and quick reset. */
.quick-reset-button{width:100%;margin:-3px 0 10px;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:#758078;text-align:left;font-size:8px;font-weight:700;cursor:pointer}.quick-reset-button:hover{background:#eef1ed;color:#263229}.canvas-wrap{align-items:center;justify-content:center;overflow:auto}#board,#board[data-view],#board[data-view="top"],#board[data-view="bottom"]{width:calc(100% * var(--zoom));height:calc(100% * var(--zoom));flex:0 0 auto;transition:width .16s ease,height .16s ease}.marquee{fill:#4e78c522;stroke:#315b9a;stroke-width:1.5;stroke-dasharray:6 4;pointer-events:none}#selectionDraft{pointer-events:none}

/* Reliable inline zoom sizing and neutral contrast-aware selection marquee. */
#board,#board[data-view],#board[data-view="top"],#board[data-view="bottom"]{width:100%;height:100%;min-width:0;min-height:0}.marquee{fill:var(--marquee-color,#fff);fill-opacity:.12;stroke:var(--marquee-color,#fff);stroke-opacity:.95}

/* Allow real enlargement beyond the fitted viewport while keeping zoomed-out boards clickable. */
.canvas-wrap{display:block;overflow:auto;text-align:center}#board,#board[data-view],#board[data-view="top"],#board[data-view="bottom"]{display:inline-block;max-width:none;max-height:none;vertical-align:top}

/* Subtle line defaults, white selection highlight, and draggable endpoints. */
.arrow-selection{stroke:#fff;stroke-width:9;stroke-opacity:.32}.line-handle{fill:#fff;stroke:#17231b;stroke-width:1.5;cursor:grab;filter:drop-shadow(0 1px 2px #0003)}.line-handle:active{cursor:grabbing}

/* In-canvas resize handle and a compact quick menu that follows the selection. */
.resize-handle{fill:#fff;stroke:#17231b;stroke-width:1.5;cursor:nwse-resize;filter:drop-shadow(0 1px 2px #0003)}.quick-menu{position:absolute;z-index:8;display:flex;gap:2px;transform:translate(-50%,calc(-100% - 25px));padding:3px;border:1px solid #dfe4df;border-radius:8px;background:#fff;box-shadow:0 5px 16px #17231b1c;white-space:nowrap}.quick-menu[hidden]{display:none}.quick-menu button{display:grid;place-items:center;width:25px;height:25px;padding:0;border:0;border-radius:6px;background:transparent;color:#5f6c63;font-size:10px;cursor:pointer}.quick-menu button:hover,.quick-menu button.active{background:#edf1ed;color:#17231b}.quick-menu button:last-child{color:#a84747}
.resize-handle[data-resize="ne"],.resize-handle[data-resize="sw"]{cursor:nesw-resize}.resize-handle[data-resize="nw"],.resize-handle[data-resize="se"]{cursor:nwse-resize}

/* Pitch-goal toggle reuses the compact field-control language. */
.pitch-goals-toggle{display:flex;align-items:center;gap:6px;margin-top:9px;padding:7px 8px;border:1px solid #e0e5e0;border-radius:8px;background:#fff;color:#657169;font-size:8px;font-weight:700;cursor:pointer}.pitch-goals-toggle input{width:12px;height:12px;margin:0;accent-color:#17231b}.fixed-goals{pointer-events:none}

/* Desktop-first real video-analysis workflow; normal mobile board remains unchanged. */
.analysis-dialog{width:min(760px,calc(100vw - 32px));padding:25px;border:0;border-radius:16px;color:#17221b;box-shadow:0 24px 80px #10181340;transition:width .15s}.analysis-dialog.calibrating{width:min(1440px,96vw);max-height:92vh;overflow-y:auto}.analysis-dialog::backdrop{background:#10181370;backdrop-filter:blur(3px)}.analysis-close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:20px;cursor:pointer}.analysis-dialog h2{margin:4px 0 8px;font:800 20px Manrope}.analysis-dialog p{color:#6f7b73;font-size:10px;line-height:1.5}.video-drop{display:flex;align-items:center;justify-content:center;min-height:110px;margin:15px 0;border:1px dashed #bfc8c1;border-radius:12px;background:#f7f9f6;color:#344139;font-size:10px;font-weight:700;cursor:pointer}.video-drop input{position:absolute;width:1px;height:1px;opacity:0}.analysis-dialog button:not(.analysis-close){border:0;border-radius:8px;background:#17231b;color:#fff;padding:10px 14px;font-size:9px;font-weight:700;cursor:pointer}.analysis-dialog button:disabled{opacity:.4;cursor:not-allowed}.analysis-error{color:#b23c3c!important}.analysis-warning{color:#8a6414!important;background:#fbf1d8;border-radius:8px;padding:8px 10px;margin:8px 0}.calibration-suggestion-note{color:#4c3575!important;background:#f2edfb;border-radius:8px;padding:8px 10px;margin:8px 0}.calibration-accuracy-note{border-radius:8px;padding:8px 10px;margin:8px 0;font-weight:600}.calibration-accuracy-note.accuracy-good{color:#3c4d2e!important;background:#eef6e3}.calibration-accuracy-note.accuracy-bad{color:#8a6414!important;background:#fbf1d8}.analysis-spinner{width:25px;height:25px;margin:25px 0 12px;border:2px solid #dce3dc;border-top-color:#17231b;border-radius:50%;animation:analysis-spin .8s linear infinite}.analysis-preview{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(180px,.6fr);gap:16px;align-items:center}.analysis-preview video{display:block;width:100%;border-radius:10px;background:#111}@keyframes analysis-spin{to{transform:rotate(360deg)}}.calibration-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(140px,.9fr);gap:12px;align-items:start;margin:14px 0}.calibration-stage{position:relative;margin:0;border-radius:10px;overflow:visible;background:#111}#calibrationCanvas{display:block;width:100%;height:auto;cursor:crosshair;border-radius:10px}.calibration-loupe{position:absolute;top:10px;right:10px;width:180px;height:180px;border-radius:50%;border:3px solid #fff;box-shadow:0 6px 20px #000a;pointer-events:none;opacity:0;transition:opacity .1s;background:#111}.calibration-loupe.visible{opacity:1}#calibrationLoupe{width:220px;height:220px}.calibration-reference{border-radius:10px;background:#1c8a3f;padding:8px}#calibrationDiagram{display:block;width:100%;height:auto}@media(max-width:700px){.calibration-layout{grid-template-columns:1fr}}.calibration-landmarks{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.calibration-landmark-group{display:flex;flex-direction:column;gap:4px}.calibration-landmark-group-label{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#68736d}.calibration-landmark-group-chips{display:flex;flex-wrap:wrap;gap:6px}.calibration-landmarks button{border:1px solid #dce2dc;border-radius:7px;background:#fff;color:#344139;padding:7px 9px;font-size:9px;font-weight:700;cursor:pointer}.calibration-landmarks button.active{border-color:#17231b;box-shadow:0 0 0 2px #17231b1a}.calibration-landmarks button.placed{background:#eef6e3;border-color:#a9cb4a;color:#3c4d2e}.calibration-landmarks button.suggested{background:#f2edfb;border-color:#8b5cf6;color:#4c3575}.calibration-landmark-chip{display:inline-flex;align-items:stretch}.calibration-landmark-chip button[data-landmark]{border-radius:7px 0 0 7px}.calibration-landmark-delete{border:1px solid #dce2dc;border-left:0;border-radius:0 7px 7px 0!important;background:#fff;color:#a24b4b!important;padding:7px 8px!important;font-size:11px!important;line-height:1;cursor:pointer}.calibration-actions{display:flex;gap:8px}.calibration-actions button{flex:1}.secondary-button{background:#fff!important;color:#344139!important;border:1px solid #dce2dc!important}.secondary-button.active{border-color:#17231b!important;box-shadow:0 0 0 2px #17231b1a}.correction-mode-toggle{display:flex;gap:8px;margin:14px 0}.correction-mode-toggle button{flex:1;border:1px solid #dce2dc;border-radius:8px;background:#fff;color:#344139;padding:9px;font-size:10px;font-weight:700;cursor:pointer}.correction-mode-toggle button.active{background:#17231b;color:#fff;border-color:#17231b}#correctionCanvas,#formationCanvas{display:block;width:100%;height:auto;cursor:crosshair;border-radius:10px}.correction-sidebar{display:flex;flex-direction:column;gap:10px}.correction-scrub-label{display:flex;flex-direction:column;gap:4px;font-size:9px;font-weight:700;color:#344139}.correction-scrub-label input{width:100%}.correction-targets{display:flex;flex-direction:column;gap:8px;max-height:230px;overflow-y:auto}.correction-target-group{display:flex;flex-direction:column;gap:4px}.correction-target-group-label{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#68736d}.correction-target-group[data-group="teamA"] .correction-target-group-label{color:#b23c3c}.correction-target-group[data-group="teamB"] .correction-target-group-label{color:#2f5fa8}.correction-target-group-chips{display:flex;flex-wrap:wrap;gap:6px}.correction-target-chip{display:inline-flex;align-items:stretch}.correction-target-chip button[data-key]{border-radius:7px 0 0 7px}.correction-target-delete{border:1px solid #dce2dc;border-left:0;border-radius:0 7px 7px 0!important;background:#fff;color:#a24b4b!important;padding:6px 7px!important;font-size:11px!important;line-height:1;cursor:pointer}.correction-target-role{border:1px solid #dce2dc;border-left:0;border-right:0;border-radius:0!important;background:#fff;color:#344139;font-size:9px;font-weight:700;padding:6px 2px;cursor:pointer}/* The global [hidden]{display:none} above has the same specificity as this
   class but comes earlier in the sheet, so a display value here would beat
   it and leave the button on screen even when the code hides it. Restate
   the hidden case at higher specificity so toggling `hidden` actually works. */
.correction-target-start-warning[hidden]{display:none}
.correction-target-start-warning{display:inline-flex;align-items:center;border:1px solid #e0c375!important;border-radius:6px!important;background:#fbf1d8;color:#8a6414!important;font-size:8px!important;font-weight:700;padding:4px 6px!important;cursor:pointer;margin:2px 0 2px 4px}.correction-targets button{border:1px solid #dce2dc;border-radius:7px;background:#fff;color:#344139;padding:6px 8px;font-size:9px;font-weight:700;cursor:pointer}.correction-targets button.active{border-color:#17231b;box-shadow:0 0 0 2px #17231b1a}.correction-targets button.drafted{background:#fdeaea;border-color:#e08a8a}.correction-new-actions{display:flex;flex-direction:column;gap:6px}.correction-new-actions button{width:100%}.correction-active{background:#f7f9f6;border-radius:8px;padding:8px 10px;color:#344139!important;font-weight:700}@media(max-width:700px){.analysis-preview{grid-template-columns:1fr}.analysis-dialog{padding:20px}}
.review-split{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.review-split h3{font:700 13px Manrope;margin:0 0 6px}
.review-split>p{font-size:11px;line-height:1.5;color:#68746c;margin:0 0 12px}
.review-panes{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.review-panes video{width:100%;border-radius:10px;background:#0d130f;display:block}
.review-panes svg{width:100%;border-radius:10px;background:#2f7a4a;display:block}
.review-pitch-line{fill:none;stroke:#ffffffcc;stroke-width:.3}

/* 2026 workspace refresh: more pitch, faster insertion and calmer project controls. */
.workspace.animation-closed{grid-template-columns:274px minmax(450px,1fr)}
.workspace:not(.animation-closed){grid-template-columns:274px minmax(450px,1fr) 280px}
.canvas-wrap{padding:4px;background-size:24px 24px}
.project-mode{align-self:center;padding:3px 7px;border-radius:999px;background:#edf2e8;color:#4e5e52;font-size:7px;font-weight:800;letter-spacing:.1em;white-space:nowrap}
.project-title>div{gap:2px}.project-title .project-mode+strong{margin-top:1px}
.sidebar-quick-controls{display:flex;align-items:center;gap:5px;margin:0 0 10px}.sidebar-quick-controls .quick-reset-button{flex:0 0 auto;width:auto;margin:0;padding:7px 8px;background:#f2f4f1}.sidebar-quick-controls .pitch-zoom{flex:1;margin:0}.sidebar-quick-controls .pitch-zoom>span:first-child{font-size:7px}
.field-icon.third-left:after,.field-icon.third-center:after,.field-icon.third-right:after{content:"";position:absolute;top:0;bottom:0;background:#c9d2cb}.field-icon.third-left:after{left:0;width:33.333%}.field-icon.third-center:after{left:33.333%;width:33.333%}.field-icon.third-right:after{right:0;width:33.333%}
.team-panel-content{display:grid;gap:8px}.team-insert-section{padding:1px}.player-palette{display:grid;grid-template-columns:1fr 1fr;gap:5px}.player-palette button{display:grid;grid-template-columns:28px 1fr;grid-template-rows:1fr 1fr;align-items:center;column-gap:7px;min-width:0;padding:7px;border:1px solid #dfe5df;border-radius:9px;background:#fff;text-align:left;color:#263229;cursor:grab}.player-palette button:active{cursor:grabbing}.player-palette button>i{grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;border:2px solid #fff;border-radius:50%;background:var(--player-color);box-shadow:0 0 0 1px #ccd4cd;color:#17231b;font-size:7px;font-style:normal;font-weight:900}.player-palette button>span{align-self:end;font-size:8px;font-weight:800}.player-palette button>small{align-self:start;color:#929d95;font-size:6px}.custom-player-dot,.rainbow-dot{background:conic-gradient(#c9142d,#f2c94c,#39a966,#1758b8,#c9142d)!important}.quick-team-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px}.quick-team-buttons button{padding:8px 5px;border:1px solid #dfe5df;border-radius:8px;background:#fff;color:#344139;font-size:7px;font-weight:800;cursor:pointer}.quick-team-buttons button:last-child{grid-column:1/-1}.quick-team-buttons i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;vertical-align:-1px}.team-tabs{margin-top:2px}.team-tabs button{display:grid;grid-template-columns:auto 1fr;gap:0 4px;text-align:left}.team-tabs button i{grid-row:1/3}.team-tabs button small{color:#8c978f;font-size:6px}.team-actions{grid-template-columns:1fr 1fr}.zone-names{margin-top:9px}.zone-names summary small{margin-left:auto;color:#89948c;font-size:7px}.zone-names summary i{margin-left:4px}.more-project-options>.subpanel-content{display:grid;gap:5px}.more-project-options button{width:100%}.mode-actions{display:grid;gap:5px}.mode-actions [hidden]{display:none}.mode-actions button{width:100%}
.team-workflow{margin-top:0}.team-workflow>summary{min-height:42px;font-size:9px}.team-workflow>summary>span{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:7px;border-radius:7px;background:#eef1ed;color:#536158;font-size:8px}.player-palette button{grid-template-rows:1fr}.player-palette button>span{align-self:center}.player-insert-options{display:grid;gap:6px;margin-top:8px}.player-insert-options>label{color:#758078;font-size:7px;font-weight:700}.player-insert-options select,.player-insert-options input{display:block;width:100%;margin-top:4px;padding:7px;border:1px solid #dce2dc;border-radius:7px;background:#fff;color:#344139;font-size:8px}.inline-colors{margin-top:0}.team-builder>#newTeamFormationField{display:block;grid-column:1/-1;width:100%}.team-builder>#newTeamFormationField[hidden]{display:none}.team-builder>.team-builder-actions{grid-column:1/-1;display:flex}.team-builder>#newTeamFormationField .formation-grid{display:grid}.team-builder>#newTeamFormationField .tactical-context{display:grid}.team-builder>#newTeamFormationField .formation-labels{display:grid}
@media(max-width:760px){.workspace.animation-closed,.workspace:not(.animation-closed){display:block}.canvas-wrap{padding:3px 3px 3px 44px}.project-mode{font-size:6px}}
.review-dot{stroke-width:.5}
.review-dot.review-estimated{opacity:1}
.review-dot.review-selected{stroke:#c9ff3d;stroke-width:1.1}
.review-controls{display:flex;align-items:center;gap:10px;margin-top:10px}
.review-controls button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 12px;font-size:11px;font-weight:700;cursor:pointer}
.review-controls input[type=range]{flex:1;accent-color:#1b2920}
.review-controls output{font-size:11px;color:#68746c;width:46px;text-align:right}
.review-players{margin-top:14px;display:grid;gap:4px;max-height:260px;overflow-y:auto}
.review-player{display:grid;grid-template-columns:16px 60px 1fr 92px;gap:8px;align-items:center;border:1px solid transparent;border-radius:8px;padding:4px 6px;background:none;text-align:left;cursor:pointer;font:inherit}
.review-player:hover{background:#f4f6f3}
.review-player.selected{border-color:#cbd5cc;background:#f6f8f4}
.review-player i{width:12px;height:12px;border-radius:50%;display:block}
.review-player strong{font-size:11px}
.review-player small{font-size:10px;color:#8b958e;text-align:right}
.review-coverage{position:relative;height:9px;border-radius:4px;background:#e3e7e2;overflow:hidden}
.review-coverage i{position:absolute;top:0;bottom:0;background:#3f8f5c}
.review-hint{font-size:11px;line-height:1.5;color:#68746c;margin:10px 0 0}
.review-corrections{display:flex;align-items:center;gap:10px;margin-top:8px}
.review-corrections span{font-size:11px;color:#68746c;flex:1}
.review-corrections button{border:1px solid var(--line);background:var(--ink);color:#fff;border-radius:9px;padding:7px 12px;font-size:11px;font-weight:700;cursor:pointer}
.review-corrections button.secondary-button{background:#fff;color:#28342c}
.review-corrections button:disabled{opacity:.45;cursor:default}
.review-dot.review-draggable{cursor:grab}
.review-dot.review-corrected{stroke:#c9ff3d;stroke-width:1.2}
.review-dot.review-ball{stroke-width:.9;filter:drop-shadow(0 0 1px #ffffff)}
.board-item.estimated-item{opacity:1}
.review-ghost{fill:none;stroke:#ffffff88;stroke-width:.35;stroke-dasharray:1.2 1.2}
/* Timestamped calibration supports for panning cameras. */
.calibration-selected-label{color:#17231b!important;background:#eef6e3;border-left:4px solid #a9cb4a;border-radius:8px;padding:9px 11px;font-weight:700}.calibration-line-helper{margin:10px 0;padding:10px;border:1px solid #b8deda;border-radius:10px;background:#effaf8}.calibration-line-helper>strong{font-size:10px}.calibration-line-helper>p{margin:3px 0 8px}.correction-selected-delete{background:#fff!important;color:#a24b4b!important;border:1px solid #d9aaaa!important}
.calibration-view-actions{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.calibration-view-actions button{flex:1;min-width:170px}.calibration-keyframe-chip button.approved{background:#dff2cf!important;border-color:#72a64a!important}.calibration-advanced{margin:10px 0;border:1px solid #dce2dc;border-radius:10px;padding:9px;background:#fafbf9}.calibration-advanced summary{cursor:pointer;font-size:10px;font-weight:800;color:#344139}.calibration-processing-note{background:#eef4fb;border-radius:8px;padding:8px 10px;color:#49627c!important}
.calibration-timeline{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px 12px;align-items:end;margin:12px 0;padding:10px;border:1px solid #dce2dc;border-radius:10px;background:#f7f9f6}.calibration-timeline label{display:flex;flex-direction:column;gap:5px;font-size:9px;color:#344139}.calibration-timeline input{width:100%}.calibration-timeline>p{grid-column:1/-1;margin:0}.calibration-keyframes{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}.calibration-keyframe-chip{display:inline-flex}.calibration-keyframe-empty{font-size:9px;color:#6b7a6f;align-self:center}.calibration-keyframe-chip button{border:1px solid #dce2dc!important;border-radius:7px 0 0 7px!important;background:#fff!important;color:#344139!important;padding:7px 9px!important}.calibration-keyframe-chip button.active{background:#eef6e3!important;border-color:#a9cb4a!important;color:#3c4d2e!important}.calibration-keyframe-delete{border-left:0!important;border-radius:0 7px 7px 0!important;color:#a24b4b!important;padding:7px 8px!important}@media(max-width:700px){.calibration-timeline{grid-template-columns:1fr}.calibration-timeline>button{width:100%}}

/* Named team arrangements and reusable, translucent tactical zone patterns. */
.saved-section{margin-top:10px;padding-top:9px;border-top:1px solid #e2e7e2}.saved-section-title{display:flex;align-items:center;justify-content:space-between;color:#657169;font-size:8px;font-weight:800}.saved-section-title button{border:0;border-radius:6px;background:#eef1ed;color:#344139;padding:5px 7px;font-size:7px;font-weight:700;cursor:pointer}.panel-help{margin:5px 0 7px;color:#89938c;font-size:7px;line-height:1.4}.compact-saved-list{display:grid;gap:4px}.compact-saved-list>p{margin:2px 0;color:#9aa39d;font-size:7px}.compact-saved-list>div{display:flex;gap:3px}.compact-saved-list button{border:1px solid #e0e5e0;border-radius:7px;background:#fff;color:#536057;padding:5px 7px;font-size:8px;cursor:pointer}.compact-saved-list button:first-child{display:flex;min-width:0;flex:1;align-items:center;justify-content:space-between;text-align:left}.compact-saved-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-saved-list small{color:#9aa39d;font-size:6px;white-space:nowrap}.zone-grid-settings{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:5px}.zone-grid-settings label,.zone-opacity{color:#758078;font-size:7px;font-weight:700}.zone-grid-settings input{box-sizing:border-box;width:100%;height:27px;margin-top:3px;border:1px solid #dce2dc;border-radius:7px;background:#fff}.zone-grid-settings input[type=number]{padding:5px}.zone-opacity{display:grid;grid-template-columns:auto 1fr 30px;align-items:center;gap:6px;margin:8px 0}.zone-opacity input{width:100%;accent-color:#17231b}.zone-opacity output{text-align:right}.zone-cell-list{display:grid;gap:4px;max-height:175px;overflow:auto}.zone-cell-list label{display:grid;grid-template-columns:13px 17px 1fr;align-items:center;gap:4px}.zone-cell-list label>input[type=checkbox]{width:11px;height:11px;margin:0;accent-color:#17231b}.zone-cell-list span{color:#8b958e;font-size:7px}.zone-cell-list input:not([type=checkbox]){min-width:0;padding:5px 6px;border:1px solid #e0e5e0;border-radius:6px;color:#344139;font-size:8px}.tactical-zone{pointer-events:none}.zone-adjust-button{width:100%;margin-top:5px;border:1px solid #dce2dc;border-radius:8px;background:#fff;color:#536057;padding:7px;font-size:8px;font-weight:700;cursor:pointer}.zone-adjust-button.active{border-color:#718078;background:#e9eeea;color:#17231b}.zone-handles{pointer-events:all}.zone-drag-handle{stroke:#fff;stroke-width:10;stroke-opacity:.9;filter:drop-shadow(0 1px 2px #0008)}.zone-drag-handle.vertical{cursor:ew-resize}.zone-drag-handle.horizontal{cursor:ns-resize}.zone-edge-handle{fill:#fff;stroke:#17231b;stroke-width:2;cursor:move;filter:drop-shadow(0 1px 3px #0006)}

.team-builder{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px;padding:8px;border:1px solid #dce2dc;border-radius:9px;background:#f4f6f3}.team-builder label{color:#758078;font-size:7px;font-weight:700}.team-builder input,.team-builder select{box-sizing:border-box;width:100%;height:28px;margin-top:3px;padding:4px;border:1px solid #dce2dc;border-radius:6px;background:#fff;color:#344139;font-size:8px}.team-builder input[type=color]{padding:2px}.team-builder .team-builder-check{grid-column:1/-1;display:flex;align-items:center;gap:5px}.team-builder-check input{width:11px;height:11px;margin:0}.team-builder>div{grid-column:1/-1;display:flex;gap:5px}.team-builder>div button{flex:1;border:1px solid #dce2dc;border-radius:7px;background:#fff;padding:7px;color:#536057;font-size:8px;font-weight:700;cursor:pointer}.team-builder>div button:last-child{background:#17231b;color:#fff}.team-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.team-actions{grid-template-columns:repeat(2,1fr)}
.subpanel{margin-top:6px;border:1px solid #e1e6e1;border-radius:9px;background:#fff;overflow:hidden}.subpanel>summary{display:flex;align-items:center;padding:9px 10px;list-style:none;color:#455249;font-size:8px;font-weight:800;cursor:pointer}.subpanel>summary::-webkit-details-marker{display:none}.subpanel>summary i{margin-left:auto;color:#98a29b;font-style:normal;transition:.18s}.subpanel[open]>summary i{transform:rotate(180deg)}.subpanel-content{padding:0 8px 9px}.free-player-setup{display:grid;grid-template-columns:1fr 1fr;gap:6px}.free-player-setup label{color:#758078;font-size:7px;font-weight:700}.free-player-setup input[type=number]{box-sizing:border-box;width:100%;height:28px;margin-top:3px;padding:5px;border:1px solid #dce2dc;border-radius:6px}.free-player-setup .team-builder-check{display:flex;align-items:center;gap:5px;padding-top:12px}.free-player-setup .team-builder-check input{width:11px;height:11px;margin:0}.free-player-setup button{grid-column:1/-1;border:0;border-radius:7px;background:#eef1ed;color:#344139;padding:7px;font-size:8px;font-weight:700;cursor:pointer}
/* The clip arrived already calibrated from the pitch-keypoint fixes taken
   across it. That has to read as a result to check, not as another form to
   fill in - the whole point is that the trainer no longer has to click.
   Colour and size are !important/explicit for the same reason the note above
   is: .analysis-dialog p is more specific than a single class here. */
.calibration-auto-note{color:#2f4f39!important;background:#eaf6ee;border:1px solid #a9d3b8;border-radius:8px;padding:9px 11px;margin:8px 0;font-size:10px;font-weight:600}


/* The calibration stage is now the whole width: the reference diagram beside
   it is gone, because each handle says what it is when you point at it, and a
   pitch you drag needs room more than it needs a legend. */
.calibration-stage-wide{margin:14px 0}
.calibration-keyframes button.approved{border-color:#a9cb4a!important;background:#eef6e3!important;color:#3c4d2e!important}
.animation-close{font-size:20px!important;line-height:1;color:#59645c;background:#eef1ed!important;border-radius:50%!important}.animation-close:hover{background:#dfe5df!important;color:#17231b}.photo-dialog{max-width:min(1000px,94vw)}.photo-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.photo-toolbar button{border:1px solid #dce2dc;border-radius:8px;background:#fff;color:#344139;padding:8px 10px;font-size:10px;font-weight:700;cursor:pointer}.photo-toolbar button.active{border-color:#17231b;background:#17231b;color:#fff}.photo-stage{max-height:64vh;overflow:auto}.photo-stage canvas{display:block;width:100%;height:auto;cursor:crosshair;border-radius:10px;touch-action:none}.photo-hint{margin:8px 0;color:#68736d;font-size:10px}

/* Feature entry points stay separate from project storage. */
.feature-actions{display:grid;gap:6px}.feature-actions button{display:grid;grid-template-columns:28px 1fr;gap:1px 8px;align-items:center;width:100%;padding:9px;border:1px solid #dfe5df;border-radius:9px;background:#fff;color:#263229;text-align:left;cursor:pointer}.feature-actions button:hover{border-color:#9aaa9d;background:#f6f8f5}.feature-actions button>span{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#17231b;color:#c9ff3d;font-size:14px}.feature-actions strong{font-size:8px}.feature-actions small{color:#8c978f;font-size:6px}

/* A photographed drawing may come from desktop or phone, so the same target
   supports both folder selection and native drag-and-drop. */
.photo-drop{box-sizing:border-box;flex-direction:column;gap:5px;min-height:155px;transition:border-color .16s,background .16s,transform .16s}.photo-drop:hover,.photo-drop.dragging{border-color:#7f9e37;background:#f1f8df;transform:translateY(-1px)}.photo-drop-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#17231b;color:#c9ff3d;font-size:18px}.photo-drop strong{font-size:12px}.photo-drop small{color:#7b877f;font-size:9px;font-weight:500}.photo-privacy{margin:-6px 0 10px!important;color:#7d8880!important;font-size:8px!important}


/* Return to the Decode Football hub, also available on narrow screens. */
.decode-return {display:inline-flex;align-items:center;gap:5px;align-self:center;min-height:36px;padding:7px 9px;border:1px solid currentColor;border-radius:7px;color:inherit;text-decoration:none;font:600 11px/1.2 inherit;white-space:nowrap;opacity:.85}
.decode-return:hover {opacity:1;background:#80808018}
.decode-return:focus-visible {outline:2px solid currentColor;outline-offset:3px}
@media(max-width:700px){.decode-return{font-size:9px;padding:6px}.top-actions{gap:4px}}

.hub-returnbar{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#14221a;color:#edf5ef;border-bottom:1px solid #304336}.hub-returnbar .decode-return{border:0;min-height:32px;padding:5px 0;font:600 11px/1.2 sans-serif}.hub-returnbar>span{font-size:10px;color:#b7c3b9}.workspace{height:calc(100vh - 38px);height:calc(100dvh - 38px)}

