.checkin-phone{background:var(--bg);min-height:100dvh;color:var(--text);flex-direction:column;max-width:560px;margin:0 auto;padding:0 1rem;display:flex}.checkin-phone main{flex-direction:column;flex:1;min-height:0;display:flex}.checkin-phone button{touch-action:manipulation}.checkin-phone-head{padding:max(.5rem, env(safe-area-inset-top)) 0 .35rem;align-items:baseline;gap:.4rem;display:flex}.checkin-phone-head .brand{margin:0;font-size:.9rem}.checkin-phone-head .muted{font-size:.8rem}.checkin-status{flex-direction:column;gap:.2rem;margin-bottom:.25rem;display:flex}.checkin-status-top{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.checkin-status h1{color:var(--text-h);margin:0 auto 0 0;font-size:1.15rem}.checkin-status p{margin:0;line-height:1.35}.checkin-due{white-space:nowrap;color:var(--text);font-weight:600}.checkin-chip-sm{border-radius:var(--r-pill);background:var(--surface-2);color:var(--text);align-items:center;gap:.25rem;padding:.1rem .5rem;font-size:.78rem;display:inline-flex}.checkin-chip-sm.late{background:var(--warn-soft);color:var(--warn)}.checkin-chip-sm.done{background:var(--ok-soft);color:var(--ok);font-weight:600}.checkin-integrity{margin:1.25rem 0 calc(1.5rem + env(safe-area-inset-bottom));line-height:1.4}.beat{flex-direction:column;flex:1;gap:.5rem;min-height:0;display:flex}.slot-kick{--slot-color:#e2792f}.slot-snare{--slot-color:#3a9469}.slot-hat{--slot-color:#d4a72c}.slot-perc{--slot-color:#8b6fd1}.slot-wild{--slot-color:#c9689a}.beat-stage{justify-content:center;align-items:center;display:flex;position:relative}.beat-wheel-wrap{aspect-ratio:1;width:min(100%,22rem);position:relative}.beat-below{flex-direction:column;gap:.5rem;display:flex}.beat-wheel{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.beat-wheel-num{fill:var(--muted);font-size:11px;font-weight:700}.beat-seg{fill:color-mix(in srgb, var(--slot-color) 9%, var(--card));stroke:color-mix(in srgb, var(--slot-color) 35%, transparent);stroke-width:.7px}.beat-ring.selected .beat-seg.downbeat{stroke:color-mix(in srgb, var(--slot-color) 75%, transparent)}.beat-ring.selected .beat-seg.picked{stroke:var(--text-h);stroke-width:2px}.beat-note.picked{stroke:var(--text-h);stroke-width:1.5px}.beat-ring:not(.selected) .beat-seg{fill:color-mix(in srgb, var(--slot-color) 22%, var(--surface-2));stroke:none}.beat-ring.selected .beat-seg.now{fill:color-mix(in srgb, var(--slot-color) 22%, var(--card))}.beat-ring:not(.selected) .beat-seg.now{fill:color-mix(in srgb, var(--slot-color) 45%, var(--surface-2))}.beat-note{fill:var(--slot-color);pointer-events:none}.beat-pitch-dot{fill:var(--text-h);pointer-events:none}.beat-sweep{pointer-events:none}.beat-trail{fill:var(--text-h)}.beat-hand{stroke:var(--text-h);stroke-width:2px;stroke-linecap:round;opacity:.85}.beat-hand-tip{fill:var(--text-h)}.beat-note.hit{transform-box:fill-box;transform-origin:50%;animation:.24s ease-out beat-note-hit}@keyframes beat-note-hit{0%{fill:color-mix(in srgb, var(--slot-color) 35%, #fff);transform:scale(1.08)}to{fill:var(--slot-color);transform:scale(1)}}.beat-pulse{border:2px solid var(--primary);pointer-events:none;border-radius:50%;width:18%;height:18%;animation:.55s ease-out forwards beat-pulse;position:absolute;top:41%;left:41%}@keyframes beat-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}@media (prefers-reduced-motion:reduce){.beat-trail,.beat-pulse{display:none}.beat-note.hit{animation:none}}.beat-wheel.locked .beat-seg{opacity:.8}.beat-play{background:var(--primary);width:18%;height:18%;color:var(--on-primary);border:2px solid var(--border-strong);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform 80ms ease-out,background .12s;display:inline-flex;position:absolute;top:41%;left:41%}.beat-play:active:not(:disabled){transform:scale(.92)}.beat-play:disabled{opacity:.5}.beat-help{text-align:center;margin:0}.beat-sounds{grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;display:grid}.beat-sound{border-radius:var(--r-sm);min-width:0;min-height:3.1rem;box-shadow:none;background:var(--card);color:var(--text);border:1.5px solid var(--border);text-overflow:ellipsis;white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.3rem .15rem;font-size:.8rem;font-weight:600;display:flex;position:relative;overflow:hidden}.beat-sound-count{border-radius:var(--r-pill);background:var(--slot-color);color:#fff;min-width:1.1rem;padding:0 .25rem;font-size:.68rem;line-height:1.1rem;position:absolute;top:.2rem;right:.25rem}.beat-sound.selected .beat-sound-count{color:var(--slot-color);background:#fff}.beat-sound-dot{background:var(--slot-color);border-radius:50%;flex:none;width:.8rem;height:.8rem}.beat-sound.selected{background:var(--slot-color);color:#fff;border-color:var(--border-strong)}.beat-sound.selected .beat-sound-dot{background:#fff}.beat-sound.failed{opacity:.55;text-decoration:line-through}.beat-help .link-button{color:inherit;font:inherit;box-shadow:none;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.beat-controls{align-items:center;gap:.5rem;display:flex}.beat-controls .beat-tempo{margin-left:auto}.beat-icon{border-radius:var(--r-sm);width:2.9rem;height:2.9rem;box-shadow:none;background:var(--card);color:var(--text-h);border:1.5px solid var(--border);justify-content:center;align-items:center;padding:0;display:inline-flex}.beat-icon:disabled{opacity:.4}.beat-clear{border-radius:var(--r-sm);min-width:2.9rem;height:2.9rem;box-shadow:none;border:1.5px solid var(--border);color:var(--muted);background:0 0;justify-content:center;align-items:center;gap:.35rem;padding:0 .7rem;display:inline-flex}.beat-clear.confirm{background:var(--error-soft);border-color:var(--error);color:var(--error);font-weight:700}.beat-clear:disabled{opacity:.4}.beat-tempo{align-items:center;gap:.4rem;display:flex}.beat-bpm{justify-content:center;align-items:baseline;gap:.25rem;min-width:4.5rem;display:flex}.beat-bpm strong{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:1.5rem}.beat-bpm span{color:var(--muted);font-size:.8rem}.beat-feel{border-radius:var(--r-sm);height:2.9rem;box-shadow:none;background:var(--card);color:var(--text-h);border:1.5px solid var(--border);flex-direction:column;justify-content:center;align-items:center;min-width:4.6rem;padding:0 .6rem;line-height:1.1;display:inline-flex}.beat-feel strong{font-size:.95rem}.beat-feel span{color:var(--muted);white-space:nowrap;font-size:.68rem}.beat-feel.open{border-color:var(--text-h);background:var(--surface-2)}.beat-feel-wrap{opacity:0;grid-template-rows:0fr;margin-top:-.5rem;transition:grid-template-rows .3s cubic-bezier(.2,.8,.2,1),margin-top .3s cubic-bezier(.2,.8,.2,1),opacity .2s,transform .3s cubic-bezier(.2,.8,.2,1);display:grid;transform:translateY(.4rem)}.beat-feel-wrap.open{opacity:1;grid-template-rows:1fr;margin-top:0;transform:none}.beat-feel-clip{min-height:0;overflow:hidden}.beat-feel{transition:background .2s,border-color .2s}@media (prefers-reduced-motion:reduce){.beat-feel-wrap{transition:none}}.beat-feel-panel{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r-sm);flex-direction:column;gap:.3rem;padding:.45rem .65rem;display:flex}.beat-feel-row{align-items:center;gap:.6rem;min-height:2.1rem;display:flex}.beat-feel-panel .beat-icon{width:2.3rem;height:2.1rem}.beat-feel-panel .beat-bpm{min-width:2.4rem}.beat-feel-panel .beat-bpm strong{font-size:1.15rem}.beat-feel-label{width:3.2rem;color:var(--text-h);flex:none;font-size:.82rem;font-weight:600}.beat-feel-row input[type=range]{accent-color:var(--primary);flex:1;margin:0}.beat-slider{flex:1;display:flex;position:relative}.beat-slider input[type=range]{width:100%}.beat-slider.bipolar input[type=range]{accent-color:var(--muted)}.beat-slider.bipolar:after{content:"";background:var(--text-h);opacity:.55;pointer-events:none;border-radius:1px;width:2px;height:.9rem;margin:-.45rem 0 0 -1px;position:absolute;top:50%;left:50%}.beat-choke{border-radius:var(--r-pill);height:2.1rem;box-shadow:none;border:1.5px solid var(--border);color:var(--muted);background:0 0;align-items:center;gap:.4rem;margin-left:auto;padding:0 .65rem;font-size:.82rem;font-weight:600;display:inline-flex}.beat-choke-dot{border:1.5px solid;border-radius:50%;width:.6rem;height:.6rem}.beat-choke.on{color:var(--text-h);border-color:var(--text-h)}.beat-choke.on .beat-choke-dot{background:var(--primary);border-color:var(--primary)}.beat-feel-note{margin:0;font-size:.78rem;line-height:1.3}.beat-bar{z-index:3;padding:.6rem 1rem max(.6rem, env(safe-area-inset-bottom));background:var(--card);border-top:1.5px solid var(--border-strong);align-items:center;gap:.75rem;margin:0 -1rem;display:flex;position:sticky;bottom:0}.beat-bar-progress{color:var(--muted);flex-wrap:wrap;flex:1;gap:.15rem .75rem;min-width:0;font-size:.9rem;display:flex}.beat-bar-progress>span{white-space:nowrap;align-items:center;gap:.2rem;display:inline-flex}.beat-bar-progress>span.met,.beat-bar-progress>span.met strong{color:var(--ok)}.beat-bar-note{color:var(--text-h);flex:1;margin:.35rem 0;font-weight:600}.beat-bar-progress strong{color:var(--text-h)}.beat-bar-progress .error{flex-basis:100%;font-size:.8rem}.beat-ok{color:var(--ok);align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.beat-bar button.beat-submit{flex:none;width:auto;margin:0;padding:.75rem 1.4rem;font-size:1rem}.beat-credits{margin-top:.75rem}.beat-diag{margin:.5rem 0 0}.checkin-dev{border:1.5px dashed var(--border);border-radius:var(--r-sm);margin-top:1.25rem;padding:.75rem}.checkin-dev-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.5rem 0;display:flex}.checkin-dev-row select{width:auto}.checkin-dev code{overflow-wrap:anywhere}.beat-credits ul{margin:.4rem 0 0;padding-left:1.1rem}.beat-credits li{overflow-wrap:anywhere;margin:.2rem 0}.checkin-listen{margin-top:.75rem}.checkin-listen h2{color:var(--text-h);margin:0 0 .6rem;font-size:1.05rem}.checkin-listen h2 .small{font-weight:400}.checkin-tiles.phone{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.checkin-tile.mine{border-color:var(--text-h)}.checkin-projector{background:var(--bg);min-height:100dvh;color:var(--text);padding:1.5rem}.checkin-projector.setup{max-width:720px;margin:0 auto}.checkin-projector.setup h1{color:var(--text-h)}.checkin-projector .row{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.checkin-times{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.checkin-times p{flex-basis:100%;margin:0}.checkin-times input{width:auto}.checkin-qr{border:2px solid var(--border-strong);border-radius:var(--radius);width:min(100%,max(220px,100dvh - 540px));height:auto;display:block}.checkin-kit{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.checkin-kit li{border-left:6px solid var(--slot-color);align-items:baseline;gap:.6rem;min-width:0;padding-left:.5rem;display:flex}.checkin-kit-slot{color:var(--text-h);flex:none;min-width:4rem;font-weight:700}.checkin-kit-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.checkin-projector.live{box-sizing:border-box;grid-template-columns:minmax(300px,.85fr) minmax(0,1.65fr);align-items:start;gap:2.5rem;height:100dvh;min-height:0;padding:2rem 2.5rem;display:grid;overflow:hidden}.checkin-live-left{flex-direction:column;gap:1rem;min-width:0;min-height:0;display:flex}.checkin-live-title{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.checkin-live-close{flex:none;align-items:center;gap:.3rem;width:auto;margin:0;padding:.4rem .75rem;display:inline-flex}.checkin-live-title h1{color:var(--text-h);margin:0;font-size:2rem}.checkin-live-title p{margin:.2rem 0 0}.checkin-live-qr{flex-direction:column;align-items:center;gap:.6rem;display:flex}.checkin-window{border-radius:var(--r-pill);background:var(--surface-2);width:min(100%,max(220px,100dvh - 540px));height:6px;overflow:hidden}.checkin-window span{background:var(--primary);height:100%;transition:width 1s linear;display:block}.checkin-scan-hint{color:var(--text-h);margin:0;font-size:1.5rem}.checkin-ended{color:var(--text-h);padding:4rem 0;font-size:1.6rem}.checkin-counts{gap:1.75rem;display:flex}.checkin-counts div{flex-direction:column;display:flex}.checkin-counts strong{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:3rem;line-height:1}.checkin-counts span{color:var(--muted)}.checkin-live-tools{align-items:center;gap:1rem;display:flex}.checkin-live-right{min-width:0;max-height:100%;overflow-y:auto}.checkin-live-head{z-index:2;background:var(--bg);justify-content:space-between;align-items:baseline;gap:1rem;margin:0;padding-bottom:1rem;display:flex;position:sticky;top:0}.checkin-live-right .checkin-tile-slot{scroll-margin-top:5rem}.checkin-live-head>h2{margin-right:auto}.checkin-live-head button{flex:none;align-items:center;gap:.35rem;width:auto;margin:0;display:inline-flex}.checkin-live-right h2{color:var(--text-h);margin:0;font-size:1.4rem}.checkin-live-right h2.checkin-parade-now{font-size:2.4rem;line-height:1.1}.checkin-tiles{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-auto-flow:dense;gap:.85rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.checkin-tile-slot{min-width:0;display:flex;position:relative}.checkin-tile-action{z-index:2;position:absolute;top:.5rem;right:.5rem}.checkin-tile-action button{background:var(--card);padding:.3rem .45rem}.checkin-tile-action .error{white-space:nowrap;position:absolute;top:100%;right:0}.checkin-live-hint{color:var(--muted);margin-left:.75rem;font-size:.9rem;font-weight:400}.checkin-tile{min-width:0;font:inherit;color:inherit;cursor:pointer;box-shadow:none;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.3rem;padding:.8rem .7rem .7rem;transition:border-color .2s,background .2s;display:flex}.checkin-tile:hover{border-color:var(--border-strong)}.checkin-tile:active{transform:none}.checkin-tile-slot.playing .checkin-tile{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--card))}.checkin-tile-slot.playing .checkin-tile-name{font-size:1.4rem}.beat-mini-hand{stroke:var(--text-h);stroke-width:4px;stroke-linecap:round}.beat-mini .beat-seg.now{fill:color-mix(in srgb, var(--slot-color) 40%, var(--surface-2))}.beat-mini .beat-note.hit{fill:color-mix(in srgb, var(--slot-color) 40%, #fff)}.beat-mini{aspect-ratio:1;width:100%;display:block}.beat-mini .beat-ring .beat-seg{fill:color-mix(in srgb, var(--slot-color) 14%, var(--surface-2));stroke:none}.beat-mini .beat-note{fill:var(--slot-color)}.checkin-tile-name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:1.05rem;font-weight:700;overflow:hidden}.checkin-tile-meta{color:var(--muted);white-space:nowrap;align-items:center;gap:.35rem;min-height:1.2rem;font-size:.8rem;display:flex}.checkin-working{margin:1.5rem 0 0;font-size:1.05rem;line-height:1.6}.checkin-working span{color:var(--muted);margin-right:.5rem;font-weight:700}@media (width<=900px){.checkin-projector{padding:1rem}.checkin-projector.live{grid-template-columns:1fr;height:auto;padding:1rem;overflow:visible}.checkin-live-right{max-height:none;overflow:visible}}.checkin-open{align-items:center;gap:.4rem;margin:.5rem 0 1.25rem;display:inline-flex}.checkins-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.checkins-sessions{flex-direction:column;gap:.3rem;display:flex}.checkins-session{text-align:left;background:var(--card);box-shadow:none;flex-direction:column;align-items:flex-start;padding:.45rem .6rem;display:flex}.checkins-session.active{border-color:var(--border-strong);background:var(--primary-soft)}.checkins-table{border-collapse:collapse;width:100%}.checkins-table th,.checkins-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.45rem .5rem}.checkins-table select{width:auto}.checkins-note{margin-top:.3rem}.checkins-test{opacity:.7}.checkins-delete{color:var(--error);align-items:center;gap:.25rem;margin-left:.75rem;display:inline-flex}.checkins-settings{flex-direction:column;gap:.6rem;max-width:560px;margin:1rem 0;display:flex}.checkins-settings h2{color:var(--text-h);margin:0;font-size:1.05rem}.checkins-settings p{margin:0}.checkins-setting{border:0;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;display:flex}.checkins-setting legend{margin-bottom:.25rem;padding:0}.checkins-setting select{width:auto}.checkins-setting input[type=number]{width:4.5rem}.checkins-setting label.row{align-items:center;gap:.35rem;width:auto;margin:0}.checkins-setting input[type=checkbox]{width:auto;margin:0}fieldset.checkins-setting{flex-direction:column;align-items:flex-start;gap:.25rem}.checkin-choice{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0 1rem;display:flex}.checkin-choice select{width:auto}.attendance-panel{flex-direction:column;gap:.6rem;max-height:70vh;display:flex;overflow-y:auto}.attendance-panel p{margin:0}.my-attendance .checkin-chip{white-space:nowrap}.checkin-chip{border-radius:var(--r-pill);background:var(--surface-2);color:var(--text);padding:.1rem .5rem;font-size:.82rem;display:inline-block}.checkin-chip.status-present{background:var(--ok-soft);color:var(--ok)}.checkin-chip.status-late{background:var(--warn-soft);color:var(--warn)}.checkin-chip.status-excused{background:var(--info-soft);color:var(--info)}.checkin-chip.status-absent,.checkin-chip.status-scanned{background:var(--error-soft);color:var(--error)}@media (width<=760px){.checkins-layout{grid-template-columns:1fr}.checkins-sessions{flex-direction:row;overflow-x:auto}.checkins-session{flex:none}.checkins-table thead{display:none}.checkins-table tr{border-bottom:1px solid var(--border);padding:.4rem 0;display:block}.checkins-table td{border:0;gap:.5rem;padding:.2rem 0;display:flex}.checkins-table td:before{content:attr(data-label);min-width:5.5rem;color:var(--muted);font-size:.85rem}}.checkin-scan{flex-direction:column;gap:.9rem;display:flex}.checkin-scan h1{color:var(--text-h);margin:0;font-size:1.3rem}.checkin-scan-resume{border-radius:var(--radius);background:var(--ok-soft);color:var(--ok);align-items:center;gap:.4rem;padding:.6rem .75rem;font-weight:600;text-decoration:none;display:flex}.checkin-scanner{flex-direction:column;gap:.5rem;display:flex}.checkin-scanner-view{aspect-ratio:1;border-radius:var(--radius);background:var(--surface-2);place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.checkin-scanner-view video{object-fit:cover;opacity:0;width:100%;height:100%;position:absolute;inset:0}.checkin-scanner-view.on video{opacity:1}.checkin-scanner-view .checkin-scanner-start{align-items:center;gap:.4rem;width:auto;margin:0;display:inline-flex;position:relative}.checkin-scanner-frame{border:3px solid #ffffffe6;border-radius:14px;position:absolute;inset:18%;box-shadow:0 0 0 100vmax #00000040}.checkin-code-form{flex-direction:column;gap:.4rem;display:flex}.checkin-code-form label{color:var(--text-h);font-weight:600}.checkin-code-form .row{align-items:stretch;gap:.5rem}.checkin-code-form input{letter-spacing:.2em;text-transform:uppercase;font-variant-numeric:tabular-nums;flex:1;margin:0;font-size:1.4rem}.checkin-code-form button{width:auto;margin:0}.checkin-code-hint{color:var(--muted);text-align:center;margin:0;font-size:1.1rem}.checkin-code-hint strong{color:var(--text-h)}.checkin-code-hint .checkin-code{letter-spacing:.12em;font-variant-numeric:tabular-nums;margin-left:.2rem;font-size:1.8rem;display:inline-block}.checkin-ask{flex-direction:column;gap:.45rem;margin:.75rem 0 0;padding:.75rem;display:flex}.checkin-ask-title{color:var(--text-h);align-items:center;gap:.4rem;font-weight:700;display:flex}.checkin-ask textarea{resize:vertical;min-height:3.2rem;font:inherit;margin:0}.checkin-ask-foot{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.checkin-ask-foot button{flex:none;align-items:center;gap:.3rem;width:auto;margin:0;display:inline-flex}.checkin-ask-done{color:var(--ok);margin:.75rem 0 0}.checkin-questions-badge{border-radius:var(--r-pill);background:var(--primary);color:#fff;place-items:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;font-size:.8rem;font-weight:700;display:inline-grid}.checkin-questions-overlay{z-index:50;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:4rem;display:flex;position:fixed;inset:0}.checkin-questions-close{position:absolute;top:1.5rem;right:1.5rem}.checkin-questions-count{color:var(--muted);margin:0;font-size:1.3rem}.checkin-questions-body{max-width:32ch;color:var(--text-h);text-align:center;overflow-wrap:anywhere;margin:0;font-size:clamp(2rem,5vw,4.2rem);font-weight:700;line-height:1.2}.checkin-questions-actions{gap:1rem;display:flex}.checkin-questions-actions button{align-items:center;gap:.4rem;width:auto;margin:0;padding:.6rem 1.2rem;font-size:1.1rem;display:inline-flex}.checkins-detail{flex-direction:column;gap:1.25rem;min-width:0;display:flex}.checkins-questions h2{color:var(--text-h);margin:0 0 .5rem;font-size:1.05rem}.checkins-questions ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.checkins-questions li{border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .6rem;display:flex}.checkins-questions li.status-answered,.checkins-questions li.status-hidden{opacity:.6}.checkins-questions li select{flex:none;width:auto;margin:0}.checkins-past{max-width:560px;margin:0 0 1rem}.checkins-past summary{cursor:pointer}.checkins-past ul{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.25rem 1rem;margin:.5rem 0;padding:0;list-style:none;display:grid}.checkins-past label.row{align-items:center;gap:.4rem;margin:0}.checkins-past input[type=checkbox]{width:auto;margin:0}.checkins-past p{margin:.4rem 0}.checkins-submissions-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.6rem;display:flex}.checkins-submissions-head h2{color:var(--text-h);margin:0;font-size:1.05rem}.checkins-submissions-head h2 .small{margin-left:.4rem;font-weight:400}.checkin-tile-actions{gap:.3rem;display:inline-flex}.cv{--cv-deg-1:#3a9469;--cv-deg-2:#8b6fd1;--cv-deg-3:#c9689a;--cv-deg-4:#d4a72c;--cv-deg-5:#e2792f;--cv-deg-6:#2b8fb3;--cv-deg-7:#c2523f;--cv-chord:var(--text-h);--cv-line:color-mix(in srgb, var(--text-h) 12%, transparent);--cv-bar:color-mix(in srgb, var(--text-h) 32%, transparent);flex-direction:column;gap:.4rem;min-height:0;display:flex;position:relative;overflow:clip}.cv button{touch-action:manipulation}.cv-deg-1{--dc:var(--cv-deg-1)}.cv-deg-2{--dc:var(--cv-deg-2)}.cv-deg-3{--dc:var(--cv-deg-3)}.cv-deg-4{--dc:var(--cv-deg-4)}.cv-deg-5{--dc:var(--cv-deg-5)}.cv-deg-6{--dc:var(--cv-deg-6)}.cv-deg-7{--dc:var(--cv-deg-7)}.cv-voice-S{--vc:#c9689a}.cv-voice-A{--vc:#d4a72c}.cv-voice-T{--vc:#3a9469}.cv-voice-B{--vc:#8b6fd1}.cv-stack{flex-direction:column;flex:1;gap:.35rem;min-height:0;display:flex;position:relative}.cv-playhead{background:var(--text-h);opacity:.85;pointer-events:none;z-index:4;width:2px;top:0;bottom:0;left:calc(var(--ph,0) * 100%);margin-left:-1px;display:none;position:absolute}.cv-stack.cv-ph-on .cv-playhead{display:block}.cv-canvas{width:calc(var(--zoom,1) * 100%);height:100%;position:relative}.cv-voices{flex-direction:column;flex:1;gap:.3rem;min-height:0;display:flex}.cv-vtabs{align-items:center;gap:.25rem;display:flex}.cv-vtab{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--card);min-width:2rem;height:1.9rem;color:var(--vc);box-shadow:none;flex:none;justify-content:center;align-items:center;gap:.12rem;padding:0 .25rem;font-size:.82rem;font-weight:800;line-height:1;display:inline-flex}.cv-vtab small{color:var(--muted);font-size:.55rem;font-weight:700}.cv-vtab.on{background:var(--vc);color:#fff;border-color:var(--border-strong)}.cv-vtab.on small{color:#ffffffd9}.cv-vtab.done small{color:var(--ok)}.cv-vtab.on.done small{color:#fff}.cv-clear{box-sizing:border-box;border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--card);width:1.9rem;height:1.9rem;color:var(--muted);box-shadow:none;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;display:inline-flex}.cv-clear:disabled{opacity:.4}.cv-roll{border-radius:0 0 var(--r-sm) var(--r-sm);border:1.5px solid var(--border);background:var(--card);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-top:0;flex:1;min-height:10rem;position:relative;overflow:auto}.cv-roll::-webkit-scrollbar{display:none}.cv-rollhead{position:relative}.cv-rulerwrap{border:1.5px solid var(--border);border-radius:var(--r-sm) var(--r-sm) 0 0;background:color-mix(in srgb, var(--card) 88%, var(--text-h));border-bottom:0;overflow:hidden}.cv-ruler{height:1.1rem}.cv-ruler>span{color:var(--muted);padding-left:3px;font-size:.58rem;font-weight:700;line-height:1.1rem;position:absolute;top:0}.cv-ruler .cv-gline{opacity:.8}.cv-zoom{flex:none;gap:.25rem;display:flex}.cv-zoom button{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--card);width:1.9rem;height:1.9rem;color:var(--text-h);box-shadow:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.cv-zoom button:disabled{opacity:.35}.cv-gline{pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.cv-gline.bar{background:var(--cv-bar)}.cv-gline.beat{background:var(--cv-bar);opacity:.45}.cv-gline.sub{background:var(--cv-line)}.cv-vgrid{touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}.cv-labels{z-index:2;pointer-events:none;width:0;height:100%;position:sticky;top:0;left:0}.cv-band{background:color-mix(in srgb, var(--text-h) 3.5%, transparent);pointer-events:none;position:absolute;left:0;right:0}.cv-gapzone{background:color-mix(in srgb, var(--text-h) 6%, transparent);pointer-events:none;position:absolute;top:0;bottom:0}.cv-outside{background:color-mix(in srgb, var(--text-h) 6%, transparent);pointer-events:none;z-index:2;position:absolute;left:0;right:0}.cv-pill{pointer-events:none;box-sizing:border-box;font-family:var(--mono,ui-monospace, monospace);background:color-mix(in srgb, var(--vc) 17%, transparent);color:color-mix(in srgb, var(--vc) 60%, var(--text-h));border-radius:6px;align-items:center;margin:2px 1px;padding-left:4px;font-size:.54rem;font-weight:700;line-height:1;display:flex;position:absolute}.cv-pill.root{background:color-mix(in srgb, var(--vc) 34%, transparent);color:var(--text-h)}.cv-pill.first{padding-left:1.5rem}.cv-rowlabel{font-family:var(--mono,ui-monospace, monospace);color:var(--muted);pointer-events:none;white-space:nowrap;align-items:center;font-size:.6rem;line-height:1;display:flex;position:absolute;left:3px}.cv-rowlabel.tonic{color:var(--text-h);font-weight:700}.cv-rowlabel.chroma{opacity:.8;font-style:italic}.cv-notes{pointer-events:none;position:absolute;inset:0}.cv-note{background:var(--card);color:#fff;font-size:.62rem;font-weight:800;font-family:var(--mono,ui-monospace, monospace);box-sizing:border-box;white-space:nowrap;box-shadow:0 1px 0 #00000040, inset 0 0 0 1.5px var(--vc);border-radius:6px;align-items:center;margin:1px;padding-left:4px;display:flex;position:absolute;overflow:hidden}.cv-note small{opacity:.85;margin-left:3px;font-size:.55rem;font-weight:600}.cv-note-text{z-index:1;position:relative}.cv-seg{background:var(--vc);position:absolute;top:0;bottom:0}.cv-seg.nct{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--vc) 55%, var(--card)) 0 4px, var(--card) 4px 8px)}.cv-note.nct{color:var(--vc)}.cv-note.nct .cv-note-text{text-shadow:0 0 2px var(--card), 0 0 2px var(--card)}.cv-note.mine{pointer-events:auto;touch-action:none;cursor:pointer}.cv-note.mine.selected{outline:2.5px solid var(--text-h);outline-offset:-1px;z-index:3}.cv-nhandle{z-index:4;pointer-events:auto;touch-action:none;cursor:ew-resize;width:32px;margin-left:-16px;position:absolute}.cv-nhandle:before{content:"";background:var(--text-h);width:8px;box-shadow:0 0 0 2px var(--card);border-radius:4px;position:absolute;top:4px;bottom:4px;left:12px}.cv-clear.on{background:var(--text-h);color:var(--bg);border-color:var(--border-strong);align-items:center;gap:.2rem;display:inline-flex}.cv-note.other{opacity:.55;box-shadow:inset 0 0 0 1px var(--vc);margin:3px 1px}.cv-note.other .cv-seg.nct{background:repeating-linear-gradient(135deg, #0000004d 0 3px, transparent 3px 6px), var(--vc)}.cv-gridhint{text-align:center;color:var(--muted);pointer-events:none;z-index:3;justify-content:center;align-items:center;padding:.6rem 1rem;font-size:.82rem;line-height:1.4;display:flex;position:sticky;top:1.2rem}.cv-cgrid{border-radius:var(--r-sm);background:var(--card);border:1.5px solid var(--border);touch-action:pan-x;-webkit-user-select:none;user-select:none;scrollbar-width:none;flex:none;height:3.7rem;position:relative;overflow:auto hidden}.cv-cgrid::-webkit-scrollbar{display:none}.cv-cinner{height:100%}.cv-sheet .cv-cgrid{height:3.3rem}.cv-barnum{color:var(--muted);pointer-events:none;z-index:2;padding-left:3px;font-size:.58rem;font-weight:700;position:absolute;top:1px}.cv-slot{border:1.5px dashed var(--border);box-shadow:none;color:var(--muted);background:0 0;border-radius:6px;justify-content:center;align-items:center;margin:0 3px;padding:0;font-size:1.15rem;font-weight:700;line-height:1;display:flex;position:absolute;top:4px;bottom:4px}.cv-cgrid.empty .cv-slot{border-color:color-mix(in srgb, var(--primary) 60%, var(--border));color:var(--primary)}.cv-slot.selected{border:2.5px solid var(--border-strong);color:var(--text-h);background:color-mix(in srgb, var(--text-h) 6%, transparent)}.cv-cgrid.cutting .cv-slot{opacity:.35;pointer-events:none}.cv-chord{box-shadow:none;background:color-mix(in srgb, var(--dc) 30%, var(--card));outline:1.5px solid color-mix(in srgb, var(--dc) 60%, transparent);outline-offset:-1.5px;color:var(--text-h);border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:2px;bottom:2px;overflow:hidden}.cv-chord:active{transform:none}.cv-chord .rn{font-size:1.05rem;font-weight:800;line-height:1.05}.cv-chord .rn sup{margin-left:1px;font-size:.6em;font-weight:700}.cv-chord .nm{color:var(--muted);font-size:.68rem;font-weight:600;line-height:1.1}.cv-chord.selected{background:color-mix(in srgb, var(--dc) 48%, var(--card));outline:2.5px solid var(--border-strong);outline-offset:-2.5px}.cv-chord .from{background:var(--text-h);color:var(--bg);border-radius:3px;padding:0 3px;font-size:.56rem;font-weight:700;line-height:1.1;position:absolute;top:2px;right:3px}.cv-chord.borrowed{outline:1.5px solid var(--text-h);outline-offset:-1.5px}.cv-chord.borrowed.selected{outline:2.5px solid var(--border-strong);outline-offset:-2.5px}.cv-cgrid.cutting .cv-chord{cursor:crosshair}.cv-chord.fresh{animation:.5s ease-out cv-fresh}@keyframes cv-fresh{0%{filter:brightness(.8)saturate(1.6)}}.cv-splitter{border-left:2px dashed var(--text-h);opacity:.5;pointer-events:none;z-index:3;width:0;position:absolute;top:7px;bottom:7px}.cv-handle{z-index:3;touch-action:none;width:18px;box-shadow:none;background:0 0;border:0;padding:0;position:absolute;top:-4px;bottom:-4px}.cv-handle.start{--knob:9px;margin-left:-12px}.cv-handle.end{--knob:3px;margin-left:-6px}.cv-handle:before{content:"";left:var(--knob);background:var(--border-strong);opacity:.7;border-radius:3px;width:6px;height:70%;position:absolute;top:15%}.cv-handle:active{transform:none}.cv-handle:active:before{opacity:1;width:8px;left:calc(var(--knob) - 1px)}.cv-cgrid.dragging .cv-splitter{display:none}.cv-keyrow{flex-wrap:nowrap;align-items:center;gap:.35rem;min-width:0;display:flex}.cv-lbl{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;font-size:.78rem;font-weight:700}.cv-keyread{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:700;overflow:hidden}.cv-spacer{display:none}.cv-keyrow .beat-tempo{margin-left:0}.cv-gridsel{flex:none;align-items:center;gap:.25rem;min-width:0;margin:0 0 0 auto;display:inline-flex}.cv-gridsel select{margin:0;display:inline-block}.cv-gridsel .cv-lbl{display:none}.cv-gridsel select{box-sizing:border-box;border-radius:var(--r-sm);border:1.5px solid var(--border);background-color:var(--card);width:auto;min-width:0;height:1.9rem;color:var(--text-h);padding:0 1rem 0 .4rem;font-size:.78rem;font-weight:700;line-height:1}.cv-clear,.cv-keyrow .beat-tempo{flex:none}.cv-keyrow .beat-icon{width:2.2rem;height:2.2rem}.cv-keyrow .beat-bpm{min-width:2.3rem}.cv-keyrow .beat-bpm strong{font-size:.95rem}.cv-hint{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.76rem;overflow:hidden}.cv-hint strong{color:var(--text-h)}.cv-bar{margin-top:0;position:static}.cv-play{border:2px solid var(--border-strong);background:var(--primary);width:2.8rem;height:2.8rem;color:var(--on-primary);box-shadow:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cv-progress{gap:.1rem .5rem;font-size:.82rem}.cv-vmark{font-family:var(--mono,ui-monospace, monospace)}.cv-scrim{z-index:19;background:#00000040;position:absolute;inset:0}.cv-sheet{z-index:20;background:var(--card);border-top:2px solid var(--border-strong);padding:.6rem .9rem max(.8rem, env(safe-area-inset-bottom));border-radius:16px 16px 0 0;flex-direction:column;gap:.5rem;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #0000002e}.cv-sheet-head{align-items:center;gap:.4rem;display:flex}.cv-sheet-title{flex:1;align-items:baseline;gap:.5rem;min-width:0;display:flex}.cv-sheet-name{color:var(--text-h);white-space:nowrap;font-size:1.35rem;font-weight:800}.cv-sheet-rn{color:var(--muted);font-size:.9rem;font-weight:700}.cv-abtn{border-radius:var(--r-pill);border:1.5px solid var(--border);background:var(--card);height:2rem;color:var(--text-h);white-space:nowrap;box-shadow:none;justify-content:center;align-items:center;gap:.3rem;padding:0 .6rem;font-size:.78rem;font-weight:700;display:inline-flex}.cv-abtn:disabled{opacity:.4}.cv-abtn.on{background:var(--text-h);color:var(--bg);border-color:var(--border-strong)}.cv-abtn.icon{width:2.2rem;padding:0}.cv-sheet-row{flex-direction:column;gap:.3rem;display:flex}.cv-sheet-lbl{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700}.cv-keypick{align-items:center;gap:.4rem;display:flex}.cv-keypick select{border-radius:var(--r-pill);width:auto;min-width:0;max-width:46%;padding:.2rem 1.4rem .2rem .6rem;font-size:.82rem;font-weight:700}.cv-palette{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;display:grid}.cv-chip{border-radius:var(--r-sm);border:1.5px solid color-mix(in srgb, var(--dc) 55%, var(--border));background:color-mix(in srgb, var(--dc) 16%, var(--card));min-height:2.4rem;color:var(--text-h);min-width:0;box-shadow:none;flex-direction:column;justify-content:center;align-items:center;padding:.15rem 0;line-height:1.05;display:flex}.cv-chip .rn{font-size:.95rem;font-weight:800}.cv-chip .rn sup{font-size:.6em}.cv-chip .nm{color:var(--muted);white-space:nowrap;font-size:.62rem;font-weight:600}.cv-chip.on{background:var(--dc);color:#fff;border-color:var(--border-strong)}.cv-chip.on .nm{color:#fff;opacity:.85}.cv-chip:disabled{opacity:.4}.cv-grid{gap:.3rem;display:grid}.cv-grid.roots{grid-template-columns:repeat(6,minmax(0,1fr))}.cv-grid.quals{grid-template-columns:repeat(7,minmax(0,1fr))}.cv-grid.exts{grid-template-columns:repeat(6,minmax(0,1fr))}.cv-pk{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface-2);height:2.1rem;color:var(--text-h);min-width:0;box-shadow:none;padding:0;font-size:.8rem;font-weight:700}.cv-pk.on{background:var(--primary);color:var(--on-primary);border-color:var(--border-strong)}.cv-pk.muted{opacity:.6}.cv-pk:disabled{opacity:.35}.cv-tile{width:100%;height:auto;display:block}.cv-tile-bar{fill:none;stroke:var(--text);stroke-opacity:.2;stroke-dasharray:3 2}.cv-tile-chord{fill:var(--dc);opacity:.85}.cv-tile-rn{fill:#fff;font-family:system-ui,sans-serif;font-size:10px;font-weight:800}.cv-tile-line{stroke:var(--text);stroke-opacity:.15}.cv-tile-note{stroke:var(--vc);stroke-width:3px;stroke-linecap:round}.cv-tile-join{stroke:var(--vc);stroke-width:1.2px;stroke-opacity:.6}.cv-tile-head{fill:var(--text-h);opacity:.18}@media (prefers-reduced-motion:reduce){.cv-chord.fresh{animation:none}}
