.taperScreen{
padding-top:32px;
}

.taperShell{
--taper-orange:#fc4c02;
--taper-orange-soft:rgba(252,76,2,0.12);
--taper-orange-border:rgba(252,76,2,0.38);
width:min(100%, 1120px);
gap:28px;
}

.taperHeader{
position:relative;
display:flex;
flex-direction:column;
gap:20px;
padding-top:8px;
}

.taperHeading{
display:flex;
flex-direction:column;
gap:10px;
}

.taperTitle{
max-width:none;
font-size:clamp(3rem, 8vw, 5.5rem);
letter-spacing:-0.055em;
}

.taperActions{
display:grid;
grid-template-columns:repeat(3, minmax(0, 1fr));
gap:10px;
}

.taperActions .btn{
width:100%;
min-height:44px;
padding-inline:14px;
gap:8px;
border:1px solid var(--border);
border-radius:0;
}

.taperActions .btn:disabled{
cursor:not-allowed;
opacity:0.45;
}

.taperPrimaryBtn{
background:var(--text);
border-color:var(--text);
color:var(--bg-deep);
}

.taperPrimaryBtn:hover,
.taperPrimaryBtn:focus-visible{
background:var(--text-soft);
color:var(--bg-deep);
}

.taperStravaBtn{
background:var(--surface-raised);
color:var(--text);
}

.taperStravaBtn:hover,
.taperStravaBtn:focus-visible,
.taperStravaBtn.isConnected:hover,
.taperStravaBtn.isConnected:focus-visible{
border-color:var(--taper-orange-border);
color:var(--taper-orange);
}

.taperDisconnectBtn{
margin-right:0;
}

.stravaStatus{
min-height:20px;
margin:8px 0 0;
font-size:0.75rem;
line-height:1.5;
color:var(--muted);
text-align:center;
overflow-wrap:anywhere;
}

.stravaStatus.isError{
color:var(--danger);
}

.activityDisplayControls{
display:flex;
align-items:center;
justify-content:center;
flex-wrap:wrap;
gap:10px;
margin:14px 0 0;
padding:0;
border:0;
color:var(--muted);
}

.activitySportToggle{
position:relative;
display:inline-flex;
align-items:center;
min-height:32px;
cursor:pointer;
}

.activitySportToggle input{
position:absolute;
inset:0;
opacity:0;
cursor:pointer;
}

.activitySportToggle span{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:32px;
padding:0 12px;
border:1px solid var(--border);
background:var(--surface-muted);
font-family:var(--font-mono);
font-size:0.68rem;
line-height:1;
color:var(--muted-strong);
transition:background .14s ease, border-color .14s ease, color .14s ease;
}

.activitySportToggle input:checked + span{
border-color:var(--primary);
background:color-mix(in srgb, var(--primary) 10%, var(--surface-muted));
color:var(--text);
}

.activitySportToggle input:focus-visible + span{
outline:1px solid var(--primary);
outline-offset:2px;
}

.activityMetricSelect{
position:relative;
display:inline-flex;
align-items:center;
min-height:32px;
border:1px solid var(--border);
background:var(--surface-muted);
}

.activityMetricSelect span{
display:inline-flex;
align-items:center;
align-self:stretch;
padding:0 10px;
border-right:1px solid var(--border);
font-family:var(--font-mono);
font-size:0.62rem;
line-height:1;
text-transform:uppercase;
letter-spacing:.08em;
color:var(--muted);
}

.activityMetricTrigger{
display:inline-flex;
align-items:center;
justify-content:space-between;
gap:12px;
min-height:32px;
min-width:112px;
padding:0 12px;
border:0;
border-radius:0;
background:transparent;
color:var(--text);
font:inherit;
font-family:var(--font-mono);
font-size:0.68rem;
line-height:1;
cursor:pointer;
}

.activityMetricTrigger::after{
content:"";
width:0;
height:0;
border-left:4px solid transparent;
border-right:4px solid transparent;
border-top:5px solid var(--muted-strong);
}

.activityMetricTrigger[aria-expanded="true"]::after{
transform:rotate(180deg);
}

.activityMetricTrigger:focus-visible{
outline:1px solid var(--primary);
outline-offset:2px;
}

.activityMetricMenu{
position:absolute;
top:calc(100% + 6px);
right:0;
z-index:20;
display:grid;
min-width:100%;
border:1px solid var(--border);
background:var(--surface);
box-shadow:0 18px 48px rgba(0,0,0,.36);
}

.activityMetricMenu[hidden]{
display:none;
}

.activityMetricMenu button{
display:flex;
align-items:center;
min-height:32px;
padding:0 12px;
border:0;
border-radius:0;
background:transparent;
color:var(--muted-strong);
font:inherit;
font-family:var(--font-mono);
font-size:0.68rem;
line-height:1;
text-align:left;
cursor:pointer;
}

.activityMetricMenu button:hover,
.activityMetricMenu button:focus-visible{
background:var(--surface-muted);
color:var(--text);
outline:none;
}

.activityMetricMenu button[aria-selected="true"]{
background:color-mix(in srgb, var(--primary) 12%, var(--surface-muted));
color:var(--text);
}

.authNotice{
margin-top:-12px;
font-size:0.75rem;
line-height:1.5;
color:var(--muted);
}

.hidden{
display:none !important;
}

.strava-credit{
margin-top:10px;
padding-top:0;
font-size:0.75rem;
line-height:1.5;
text-align:center;
color:var(--muted);
}

.calendarPanel{
overflow:hidden;
border:1px solid var(--border);
border-radius:0;
background:var(--surface-raised);
}

.calendarToolbar{
position:relative;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:16px;
padding:20px;
border-bottom:1px solid var(--border-soft);
text-align:center;
}

.calendarHeading{
display:flex;
flex-direction:column;
align-items:center;
}

.calendarKicker,
.sheetEyebrow{
font-family:var(--font-mono);
font-size:0.68rem;
line-height:1.4;
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--muted);
}

.calendarTitle{
margin-top:4px;
font-size:1.6rem;
line-height:1.2;
letter-spacing:-0.035em;
}

.calendarTitleRow{
display:flex;
flex-direction:column;
align-items:center;
gap:10px;
}

.calendarNavigation{
display:inline-flex;
align-items:center;
gap:6px;
}

.calendarNavBtn,
.calendarTodayBtn{
display:inline-flex;
align-items:center;
justify-content:center;
height:32px;
padding:0;
border:1px solid var(--border);
border-radius:0;
background:var(--surface-muted);
color:var(--muted-strong);
font-family:var(--font-mono);
font-size:0.68rem;
line-height:1;
cursor:pointer;
transition:border-color .14s ease, background .14s ease, color .14s ease;
}

.calendarNavBtn{
width:32px;
font-size:0.9rem;
}

.calendarTodayBtn{
padding-inline:10px;
}

.calendarNavBtn:hover,
.calendarNavBtn:focus-visible,
.calendarTodayBtn:hover,
.calendarTodayBtn:focus-visible{
outline:none;
border-color:var(--border-strong);
background:var(--highlight-soft);
color:var(--primary);
}

.calendarTodayBtn:disabled{
cursor:default;
opacity:0.42;
background:var(--surface-muted);
color:var(--muted);
}

.calendarLegend{
display:flex;
justify-content:center;
flex-wrap:wrap;
gap:10px 16px;
font-size:0.7rem;
color:var(--muted-strong);
}

.calendarLegend span{
display:inline-flex;
align-items:center;
gap:6px;
}

.legendDot,
.raceDot{
flex:0 0 auto;
width:7px;
height:7px;
border-radius:50%;
}

.registeredDot,
.raceEvent.registered .raceDot{
border:1px solid var(--primary);
background:var(--primary);
}

.interestedDot,
.raceEvent.interested .raceDot{
border:1px solid var(--muted);
background:transparent;
}

.calendarViewport{
width:100%;
overflow-x:auto;
scrollbar-width:thin;
}

.calendarWeekdays,
.calendarGrid{
min-width:700px;
display:grid;
grid-template-columns:repeat(7, minmax(0, 1fr));
}

.calendarWeekdays{
border-bottom:1px solid var(--border-soft);
background:var(--surface-muted);
}

.calendarWeekdays span{
padding:10px 8px;
border-left:1px solid var(--border-soft);
font-family:var(--font-mono);
font-size:0.66rem;
line-height:1.3;
text-align:center;
text-transform:uppercase;
color:var(--muted);
}

.calendarWeekdays span:first-child{
border-left:0;
}

.calendarDay{
position:relative;
min-width:0;
min-height:120px;
padding:9px 8px;
border-left:1px solid var(--border-soft);
border-bottom:1px solid var(--border-soft);
background:var(--surface-raised);
}

.calendarDay:nth-child(7n + 1){
border-left:0;
}

.calendarDay:nth-last-child(-n + 7){
border-bottom:0;
}

.calendarDay.outsideMonth{
background:var(--surface-muted);
}

.calendarDay.isToday{
background:color-mix(in srgb, var(--primary) 6%, var(--surface-raised));
box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 42%, transparent);
}

.calendarDay.outsideMonth.isToday{
background:color-mix(in srgb, var(--primary) 7%, var(--surface-muted));
}

.dayNumber{
display:inline-flex;
align-items:center;
justify-content:center;
width:23px;
height:23px;
margin-bottom:7px;
font-family:var(--font-mono);
font-size:0.72rem;
line-height:1;
color:var(--muted-strong);
}

.outsideMonth .dayNumber{
color:var(--muted);
opacity:0.46;
}

.calendarDay.hasEvents .dayNumber{
color:var(--text);
}

.calendarDay.isToday .dayNumber{
color:var(--primary);
}

.calendarDay.isExpanded{
background:var(--surface-muted);
box-shadow:inset 0 0 0 1px var(--border-strong);
}

.calendarDay.isToday.isExpanded{
background:color-mix(in srgb, var(--primary) 8%, var(--surface-muted));
box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 58%, transparent);
}

.calendarGrid.isLoading{
opacity:1;
}

.dayEvents{
display:flex;
flex-direction:column;
gap:4px;
}

.calendarEvent{
width:100%;
min-width:0;
margin:0;
padding:0;
border:0;
background:none;
font:inherit;
text-align:left;
}

.raceEvent{
display:grid;
grid-template-columns:9px minmax(0, 1fr);
align-items:start;
gap:4px;
padding:3px 4px;
border-radius:0;
color:var(--text-soft);
cursor:pointer;
transition:background .14s ease, color .14s ease;
}

.raceEvent:hover,
.raceEvent:focus-visible{
outline:none;
background:var(--highlight-soft);
color:var(--primary);
}

.raceEvent .raceDot{
margin-top:4px;
}

.raceEventText{
min-width:0;
display:flex;
flex-direction:column;
}

.raceName{
font-size:0.68rem;
line-height:1.25;
white-space:normal;
overflow-wrap:anywhere;
}

.raceDistance{
font-family:var(--font-mono);
font-size:0.58rem;
line-height:1.3;
color:var(--muted);
}

.trainingEvent{
display:flex;
flex-direction:column;
align-items:flex-start;
padding:2px 4px;
border-radius:0;
font-family:var(--font-mono);
font-size:0.59rem;
line-height:1.15;
white-space:normal;
color:var(--muted);
}

.trainingSport,
.trainingValue,
.trainingUnit{
display:block;
max-width:100%;
overflow-wrap:anywhere;
}

.trainingSport{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
color:var(--muted-strong);
}

.trainingValue{
color:var(--text-soft);
}

.trainingUnit{
color:var(--muted);
}

.moreEvents{
width:fit-content;
max-width:100%;
padding:1px 4px 0 13px;
border:0;
border-radius:0;
background:transparent;
font-family:var(--font-mono);
font-size:0.58rem;
line-height:1.35;
text-align:left;
color:var(--muted);
cursor:pointer;
transition:background .14s ease, color .14s ease;
}

.moreEvents:hover,
.moreEvents:focus-visible{
outline:none;
background:var(--highlight-soft);
color:var(--primary);
}

.sheetBackdrop{
position:fixed;
inset:0;
z-index:300;
background:rgba(0,0,0,0.56);
backdrop-filter:blur(2px);
-webkit-backdrop-filter:blur(2px);
opacity:1;
transition:opacity .18s ease;
}

.taperModal{
position:fixed;
top:50%;
left:50%;
z-index:310;
width:min(calc(100% - 32px), 620px);
max-height:calc(100dvh - 32px);
padding:24px;
overflow-y:auto;
border:1px solid var(--border);
border-radius:0;
background:var(--surface-raised);
box-shadow:0 24px 80px rgba(0,0,0,0.42);
transform:translate(-50%, -50%);
transition:transform .2s ease, opacity .18s ease;
}

.sheetBackdrop.hidden,
.taperModal.hidden{
display:none;
}

.sheetHandle{
display:none;
}

.sheetHeader{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:20px;
padding-bottom:18px;
border-bottom:1px solid var(--border-soft);
}

.sheetTitle{
margin-top:5px;
font-size:1.55rem;
line-height:1.2;
letter-spacing:-0.035em;
}

.sheetCloseBtn{
display:inline-flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
padding:0;
border:1px solid var(--border);
border-radius:0;
background:var(--surface-muted);
color:var(--muted-strong);
font-size:1.4rem;
line-height:1;
cursor:pointer;
}

.sheetCloseBtn:hover,
.sheetCloseBtn:focus-visible{
outline:none;
border-color:var(--border-strong);
color:var(--text);
}

.raceMetaGrid{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
border-bottom:1px solid var(--border-soft);
}

.raceMetaItem{
min-width:0;
display:flex;
flex-direction:column;
gap:6px;
padding:17px 0;
}

.raceMetaItem:nth-child(odd){
padding-right:14px;
border-right:1px solid var(--border-soft);
}

.raceMetaItem:nth-child(even){
padding-left:14px;
}

.raceMetaItem:nth-child(-n + 2){
border-bottom:1px solid var(--border-soft);
}

.raceMetaItem span,
.summaryWindow dt{
font-family:var(--font-mono);
font-size:0.65rem;
line-height:1.35;
color:var(--muted);
}

.raceMetaItem strong,
.summaryWindow dd{
overflow-wrap:anywhere;
font-size:0.88rem;
font-weight:400;
line-height:1.35;
color:var(--text);
}

.detailStatus{
display:inline-flex;
align-items:center;
gap:7px;
}

.detailStatus::before{
content:"";
width:7px;
height:7px;
border-radius:50%;
}

.detailStatus.registered::before{
border:1px solid var(--primary);
background:var(--primary);
}

.detailStatus.interested::before{
border:1px solid var(--muted);
background:transparent;
}

.trainingSummary{
padding-top:20px;
}

.summaryHeading{
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
margin-bottom:12px;
}

.summaryHeading span{
font-family:var(--font-mono);
font-size:0.6rem;
color:var(--muted);
}

.summaryComparison{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:1px;
overflow:hidden;
border:1px solid var(--border-soft);
border-radius:0;
background:var(--border-soft);
}

.summaryWindow{
min-width:0;
padding:14px;
background:var(--surface-muted);
}

.summaryWindow h3{
margin-bottom:14px;
font-family:var(--font-mono);
font-size:0.72rem;
line-height:1.35;
color:var(--text);
}

.summaryWindow dl{
display:flex;
flex-direction:column;
gap:10px;
margin:0;
}

.summaryWindow dl > div{
display:flex;
flex-direction:column;
gap:6px;
}

.summaryWindow dt,
.summaryWindow dd{
margin:0;
}

.addRaceForm{
display:flex;
flex-direction:column;
gap:16px;
padding-top:20px;
}

.taperFormRow{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
}

.addRaceForm input,
.addRaceForm select{
border-radius:0;
}

.dateInputShell{
position:relative;
min-width:0;
}

.dateDisplayInput{
padding-right:48px;
cursor:pointer;
}

.dateDisplayInput::placeholder{
color:var(--muted);
opacity:1;
}

.datePickerBtn{
position:absolute;
top:0;
right:0;
z-index:2;
display:inline-flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
margin:0;
border:0;
border-left:1px solid var(--border);
border-radius:0;
background:transparent;
color:var(--text);
font:inherit;
cursor:pointer;
}

.dateDisplayInput:focus-visible,
.dateInputShell:focus-within .dateDisplayInput{
outline:none;
border-color:var(--primary);
box-shadow:0 0 0 1px var(--primary);
}

.datePickerBtn:focus-visible{
outline:none;
color:var(--primary);
}

.nativeDateInput{
position:absolute;
top:0;
right:0;
z-index:3;
width:44px;
height:44px;
padding:0;
border:0;
opacity:0;
cursor:pointer;
}

.formError{
min-height:19px;
font-size:0.75rem;
color:var(--danger);
}

.sheetActions{
display:grid;
grid-template-columns:1fr 1fr;
gap:10px;
}

.sheetActions .btn{
min-height:44px;
border:1px solid var(--border);
border-radius:0;
}

.taperSecondaryBtn{
background:var(--surface-muted);
color:var(--muted-strong);
}

.raceSummaryToolbar{
display:flex;
align-items:center;
justify-content:flex-end;
gap:10px;
padding-top:20px;
}

.raceSummaryToolbar label{
font-family:var(--font-mono);
font-size:0.68rem;
color:var(--muted);
}

.raceSummaryToolbar select{
width:auto;
min-width:126px;
min-height:38px;
border-radius:0;
font-size:0.75rem;
}

.raceSummaryContent{
padding-top:14px;
}

.raceSummaryList{
display:flex;
flex-direction:column;
border:1px solid var(--border-soft);
}

.raceSummaryColumns,
.raceSummaryRow{
display:grid;
grid-template-columns:minmax(110px, 0.8fr) minmax(180px, 1.5fr) minmax(80px, 0.6fr) minmax(110px, 0.8fr);
align-items:center;
gap:14px;
}

.raceSummaryColumns{
padding:9px 14px;
border-bottom:1px solid var(--border-soft);
background:var(--surface-code);
font-family:var(--font-mono);
font-size:0.62rem;
line-height:1.4;
text-transform:uppercase;
color:var(--muted);
}

.raceSummaryRow{
width:100%;
padding:13px 14px;
border:0;
border-bottom:1px solid var(--border-soft);
background:var(--surface-muted);
color:var(--text);
font:inherit;
text-align:left;
cursor:pointer;
transition:background .14s ease, color .14s ease;
}

.raceSummaryRow.isPast{
background:color-mix(in srgb, var(--surface-code) 70%, #000 30%);
color:var(--muted-strong);
}

.raceSummaryRow.isPast .raceSummaryName,
.raceSummaryRow.isPast .raceSummaryDate,
.raceSummaryRow.isPast .raceSummaryDistance,
.raceSummaryRow.isPast .raceSummaryCountdown{
color:var(--muted);
}

.raceSummaryRow:last-child{
border-bottom:0;
}

.raceSummaryRow:hover,
.raceSummaryRow:focus-visible{
outline:none;
background:var(--highlight-soft);
color:var(--primary);
}

.raceSummaryDate,
.raceSummaryDistance,
.raceSummaryCountdown{
font-family:var(--font-mono);
font-size:0.68rem;
line-height:1.4;
}

.raceSummaryDate,
.raceSummaryDistance{
color:var(--muted-strong);
}

.raceSummaryName{
position:relative;
display:block;
min-width:0;
overflow:hidden;
padding-left:15px;
font-size:0.8rem;
line-height:1.4;
text-overflow:ellipsis;
white-space:nowrap;
}

.raceSummaryName::before{
content:"";
position:absolute;
top:0.45em;
left:0;
width:7px;
height:7px;
border-radius:50%;
}

.raceSummaryName.registered::before{
border:1px solid var(--primary);
background:var(--primary);
}

.raceSummaryName.interested::before{
border:1px solid var(--muted);
background:transparent;
}

.raceSummaryFieldLabel{
display:none;
}

.raceSummaryCountdown{
color:var(--muted-strong);
}

.raceSummaryEmpty{
display:flex;
flex-direction:column;
align-items:center;
gap:16px;
padding:36px 20px;
border:1px dashed var(--border-strong);
background:var(--surface-muted);
text-align:center;
}

.raceSummaryEmpty p{
font-size:0.8rem;
line-height:1.6;
color:var(--muted-strong);
}

.raceSummaryEmpty .btn{
min-height:40px;
border:1px solid var(--border);
border-radius:0;
}

.raceDetailActions{
display:flex;
justify-content:flex-end;
gap:10px;
margin-top:20px;
padding-top:20px;
border-top:1px solid var(--border-soft);
}

.raceDetailActions.hidden{
display:none;
}

.raceDetailActions .btn{
min-height:40px;
border:1px solid var(--border);
border-radius:0;
}

.taperDangerBtn{
margin-right:auto;
border-color:var(--danger-border) !important;
background:var(--danger-soft);
color:var(--danger);
}

.taperActions .taperDangerBtn{
margin-right:0;
}

.taperDangerBtn:hover,
.taperDangerBtn:focus-visible{
color:var(--danger-text);
}

body.sheetOpen{
overflow:hidden;
}

@media (min-width:700px){
.taperHeader{
display:grid;
grid-template-columns:minmax(0, 1fr) auto;
align-items:end;
}

.taperActions{
display:flex;
flex-wrap:wrap;
justify-content:flex-end;
}

.taperActions .btn{
width:auto;
min-width:140px;
}

.authNotice{
position:absolute;
right:0;
bottom:-23px;
margin:0;
}

.calendarToolbar{
min-height:112px;
padding:18px 250px 16px;
}

.calendarLegend{
position:absolute;
top:16px;
right:24px;
justify-content:flex-end;
}

.calendarViewport{
overflow-x:visible;
}

.calendarWeekdays,
.calendarGrid{
min-width:0;
}

.calendarDay{
min-height:132px;
padding:10px;
}

.taperModal{
padding:28px;
}
}

@media (max-width:699px){
.calendarPanel{
margin-inline:-12px;
border-radius:0;
}

.calendarViewport{
overflow-x:hidden;
}

.calendarWeekdays,
.calendarGrid{
min-width:0;
width:100%;
}

.calendarWeekdays span{
padding:8px 1px;
font-size:0;
}

.calendarWeekdays span::after{
content:attr(data-short-label);
font-size:0.58rem;
}

.calendarDay{
min-height:112px;
padding:5px 3px;
}

.dayNumber{
width:18px;
height:18px;
margin-bottom:4px;
font-size:0.62rem;
}

.dayEvents{
gap:3px;
}

.raceEvent{
grid-template-columns:6px minmax(0, 1fr);
gap:2px;
padding:2px 1px;
}

.raceEvent .raceDot{
width:5px;
height:5px;
margin-top:3px;
}

.raceName,
.trainingEvent{
font-size:0.5rem;
line-height:1.2;
}

.raceDistance{
display:none;
}

.trainingEvent{
padding:2px 1px;
line-height:1.1;
}

.moreEvents{
overflow:hidden;
max-width:100%;
padding:1px;
font-size:0.48rem;
line-height:1.2;
text-overflow:ellipsis;
white-space:nowrap;
}

.raceSummaryToolbar{
justify-content:space-between;
}

.raceSummaryToolbar select{
flex:1;
max-width:180px;
}

.raceSummaryColumns{
display:none;
}

.raceSummaryRow{
grid-template-columns:minmax(0, 1fr) auto;
gap:8px 10px;
padding:11px 12px;
}

.raceSummaryDateField{
grid-column:1;
grid-row:1;
}

.raceSummaryStatusField{
grid-column:2;
grid-row:1;
justify-self:end;
}

.raceSummaryNameField{
grid-column:1;
grid-row:2;
}

.raceSummaryDistanceField{
grid-column:2;
grid-row:2;
justify-self:end;
}

.raceSummaryField{
min-width:0;
display:flex;
flex-direction:column;
gap:3px;
}

.raceSummaryStatusField,
.raceSummaryDistanceField{
align-items:flex-end;
}

.raceSummaryFieldLabel{
display:block;
font-family:var(--font-mono);
font-size:0.48rem;
line-height:1.2;
text-transform:uppercase;
color:var(--muted);
}
}

@media (max-width:480px){
.taperActions{
grid-template-columns:1fr;
}

.taperFormRow,
.sheetActions{
grid-template-columns:1fr;
}

.raceDetailActions{
display:grid;
grid-template-columns:1fr 1fr;
}

.raceDetailActions .taperDangerBtn{
margin-right:0;
}

.toolFooterText{
white-space:normal;
}
}

@media (prefers-reduced-motion:reduce){
.taperModal,
.sheetBackdrop{
transition:none;
}
}
