.practice-columns,.practice-day {
    display:grid;
    grid-template-columns:minmax(6.5rem, .85fr) minmax(0, 2fr) minmax(8rem, 1fr);
    gap:.85rem;
    align-items:center;
}
.practice-columns {
    margin-top:1.25rem;
    padding:.65rem .9rem;
    color:#295246;
    font-weight:700;
}
.practice-days {display:grid;gap:.55rem;margin:0 0 1.25rem}
.practice-day {padding:.8rem .9rem;border:1px solid #ccdcd5;border-radius:.75rem;background:#f7faf8}
.practice-date small {display:block;color:#496157;font-weight:400}
.practice-day label {margin:0;min-width:0}
.practice-day input,.practice-day select {width:100%;min-width:0;margin-bottom:0}
.practice-activity {overflow-wrap:anywhere}
.practice-time {font-weight:600}
.practice-empty {color:#496157}
@media (min-width:601px) {
    .practice-day label {font-size:0}
    .practice-day input,.practice-day select {font-size:1rem}
}
@media (max-width:600px) {
    .practice-columns {display:none}
    .practice-day {grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .practice-date,.practice-day label,.practice-empty {grid-column:1/-1}
    .practice-date small {display:inline;margin-left:.45rem}
    .practice-time {text-align:right}
}

.practice-categories {display:flex;flex-wrap:wrap;gap:.4rem;border:0;padding:0;margin:0 0 .5rem;min-width:0}
.practice-categories legend {font-size:.875rem;margin-bottom:.35rem}
.practice-day .practice-categories label,.practice-category {
    display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .55rem;
    border:1px solid #ccdcd5;border-radius:.55rem;font-size:.875rem;background:#fff;
}
.practice-day .practice-categories label:has(input:checked) {background:#dcf1e9;border-color:#096553}
.practice-day .practice-categories input {width:auto;margin:0;accent-color:#096553}
.practice-category {margin:0 .25rem .35rem 0}
@media (max-width:600px) {
    .practice-day .practice-activity:has(.practice-categories) {grid-column:1/-1}
}

.practice-week-strip {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:.3rem;
    margin:1rem 0;
}
.practice-week-strip a {
    display:grid;
    justify-items:center;
    gap:.2rem;
    min-height:44px;
    padding:.35rem 0;
    color:#295246;
    background:#f7faf8;
    border:1px solid #ccdcd5;
    border-radius:.5rem;
    text-decoration:none;
}
.practice-week-strip a.is-logged {background:#dcf1e9;border-color:#096553}
.practice-week-strip small {font-size:.65rem}
.practice-day:target {outline:2px solid #096553;scroll-margin-top:1rem}

.practice-tasks {border:0;padding:0;margin:0 0 .65rem;min-width:0}
.practice-tasks legend {font-size:.875rem;font-weight:700}
.practice-day .practice-tasks label {
    display:flex;align-items:center;gap:.5rem;min-height:44px;
    padding:.25rem .4rem;font-size:.875rem;overflow-wrap:anywhere;
}
.practice-day .practice-tasks input {width:auto;margin:0;accent-color:#096553}
.practice-completed-tasks {margin:.35rem 0;padding-left:1.25rem}
