:root{--ink:#243e35;--muted:#738078;--paper:#f5f5ef;--white:#fff;--line:#e2e6de;--green:#315b49;--gold:#c49a43;--sidebar:#244b40;--radius:16px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #cfaa60;outline-offset:3px}a{color:inherit}button{border:0;background:none;color:inherit}svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}h1,h2,h3,p{margin:0}h1{font:normal clamp(29px,3.8vw,42px)/1.15 Georgia,serif;letter-spacing:-1.2px}h2{font-size:17px;letter-spacing:-.3px}h3{font-size:14px}p{line-height:1.6}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;font-size:10px;font-weight:700;color:var(--muted)}.serif{font-family:Georgia,serif}.skip{position:absolute;left:15px;top:-80px;background:white;z-index:100;padding:12px}.skip:focus{top:15px}.app-shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:var(--sidebar);color:#f3f3e9;display:flex;flex-direction:column;padding:31px 18px;z-index:15}.brand{display:flex;align-items:center;gap:12px;padding:0 12px 34px}.brand-mark{width:34px;height:40px;color:#dfce9d}.brand-text{font:21px/.95 Georgia,serif;letter-spacing:-.5px}.brand-text small{display:block;font:10px/1.7 ui-sans-serif,sans-serif;letter-spacing:2.2px;margin-top:5px;color:#b7c6b7}.side-label{font-size:9px;letter-spacing:1.9px;color:#a3baac;padding:12px 14px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:13px 15px;border-radius:9px;font-size:13px;color:#c7d5ca}.nav button:hover{background:#ffffff0a}.nav button.active{background:#edf0dc;color:#244b40;font-weight:650}.nav button.active svg{color:#335c46}.cycle-side{margin:26px 7px 0;border-top:1px solid #ffffff20;padding:24px 7px}.cycle-dot{width:7px;height:7px;border-radius:50%;background:#d4b665;display:inline-block;margin-right:8px}.side-bottom{margin-top:auto;border-top:1px solid #ffffff20;padding:20px 10px 0;font-size:11px;color:#b6c9bb}.avatar-row{display:flex;align-items:center;gap:10px;margin-top:18px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#ffffff16;color:#e9e7cf;font-size:11px}.content{grid-column:2;min-width:0}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 42px;background:#fafaf6;gap:15px}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:12px;min-width:0}.breadcrumb>span:first-child{font-weight:600}.breadcrumb svg{width:13px;opacity:.5}.save-label{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);white-space:nowrap}.save-label svg{width:14px}.top-actions{display:flex;gap:12px;align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff}.icon-btn:hover{background:#edf0e8}.page{max-width:1450px;margin:0 auto;padding:34px 42px 42px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:27px}.page-head p{color:var(--muted);font-size:13px;margin-top:10px}.page-head .eyebrow{margin-bottom:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:10px 15px;border-radius:8px;font-size:12px;font-weight:600;background:#fff;border:1px solid #d9dfd3;text-decoration:none;white-space:nowrap}.button:hover{background:#f0f3eb}.button.primary{background:var(--green);color:white;border-color:var(--green)}.button.primary:hover{background:#244b40}.button.quiet{background:transparent}.button.danger{color:#a34535;border-color:#e4b8ac}.button svg{width:15px;height:15px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:5px;background:#edf1e8;color:#4d6a54;border-radius:6px;padding:5px 8px;font-size:10px;font-weight:600;line-height:1.3}.badge.gold{background:#f3eddd;color:#8b6b28}.badge.blue{background:#e9eef2;color:#526d83}.badge.rose{background:#f5e9e3;color:#995e4c}.badge.gray{background:#eceee8;color:#7d867e}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{padding:21px 22px;background:white;border:1px solid var(--line);border-radius:var(--radius);position:relative;min-height:128px}.stat-head{display:flex;align-items:center;justify-content:space-between}.stat-head svg{width:17px;color:#849183}.stat-value{font-size:31px;letter-spacing:-1px;margin:12px 0 6px;font-weight:550;line-height:1}.stat-unit{font:12px ui-sans-serif,sans-serif;letter-spacing:0;color:var(--muted);margin-left:4px}.stat .small{font-size:11px}.main-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:22px;align-items:start}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-pad{padding:24px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.card-head p{margin-top:5px;font-size:12px;color:var(--muted)}.text-button{font-size:11px;font-weight:600;color:var(--green);display:flex;align-items:center;gap:6px;white-space:nowrap}.text-button svg{width:13px}.allocation-bar{display:flex;height:20px;border-radius:5px;overflow:hidden;gap:3px;margin:24px 0 9px}.allocation-bar span{min-width:2px}.bar-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-bottom:22px;letter-spacing:.3px}.work-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-top:1px solid #edf0e9}.work-left{display:flex;gap:12px;align-items:center}.work-number{display:grid;place-items:center;width:35px;height:39px;border-radius:7px;background:#f2f4ee;font-size:11px;color:var(--muted)}.color-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.work-name{font-size:13px;font-weight:600}.work-composer{font-size:10px;color:var(--muted);margin-top:4px}.work-right{text-align:right}.work-minutes{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.work-percent{font-size:10px;color:var(--muted);margin-top:4px}.info-strip{font-size:11px;line-height:1.6;padding:12px 14px;border-radius:8px;background:#f2f4ed;color:#657760;margin-top:16px;display:flex;align-items:flex-start;gap:9px}.info-strip svg{width:15px;height:15px;margin-top:2px}.milestone{display:grid;grid-template-columns:40px 1fr;gap:12px;position:relative;padding-bottom:23px}.milestone:last-child{padding-bottom:0}.milestone:not(:last-child):after{content:'';position:absolute;width:1px;background:#e2e7db;left:18px;top:36px;bottom:4px}.milestone-symbol{width:36px;height:36px;border:1px solid #e1e5da;border-radius:50%;background:#f8f9f4;display:grid;place-items:center}.milestone-symbol svg{width:16px;color:#698567}.milestone:last-child .milestone-symbol{background:#315b49;color:white;border-color:#315b49}.milestone:last-child svg{color:white}.milestone-date{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.milestone-title{font-size:12px;font-weight:650}.milestone-note{font-size:10px;color:var(--muted);line-height:1.6;margin-top:5px}.goal-card{margin-top:22px;background:#ecf0e5}.goal-card p{font:17px/1.65 Georgia,serif;color:#466047;margin-top:13px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:31px 0 16px}.section-heading p{font-size:11px;color:var(--muted);margin-top:5px}.weeks-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.week-card{border:1px solid var(--line);background:white;border-radius:12px;padding:17px;text-align:left;min-height:145px;transition:transform .15s,box-shadow .15s}.week-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #244b400b}.week-title{font-size:12px;font-weight:650;margin:9px 0 5px}.week-card p{font-size:10px;color:var(--muted);line-height:1.6}.mini-bars{display:flex;gap:3px;margin-top:16px;height:5px;border-radius:3px;overflow:hidden}.week-card .week-footer{margin-top:10px;font-size:10px;color:#6c7f6e}.week-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:15px}.week-nav .center{text-align:center}.week-nav h2{font:25px Georgia,serif}.weekday-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}.day-tile{border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden;min-height:290px;display:flex;flex-direction:column}.day-tile.closed{background:#eeefe8;border-style:dashed;min-height:180px}.tile-top{padding:17px;border-bottom:1px solid #edf0e8;display:flex;align-items:center;justify-content:space-between;gap:7px}.tile-day{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.tile-date{font-size:22px;margin-top:5px;font-family:Georgia,serif}.tile-body{padding:14px;flex:1}.tile-block{border-left:3px solid var(--color);padding:8px 9px;background:color-mix(in srgb,var(--color) 7%,white);border-radius:0 5px 5px 0;margin-bottom:8px;font-size:11px;line-height:1.5}.tile-block strong{font-size:10px;display:block}.tile-block .time{font-size:10px;color:#637269}.tile-goal{font-size:10px;color:var(--muted);margin-top:10px;line-height:1.7}.tile-footer{padding:10px 14px;border-top:1px solid var(--line);text-align:right}.tile-footer button{font-size:10px;font-weight:600;color:var(--green)}.week-goal{margin-bottom:20px;display:flex;justify-content:space-between;gap:20px;align-items:center}.day-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:22px;align-items:start}.day-select{padding:9px 12px;border:1px solid var(--line);background:white;border-radius:8px;max-width:220px}.lesson-block{display:flex;gap:16px;padding:22px;border-bottom:1px solid var(--line)}.lesson-block:last-child{border-bottom:0}.lesson-index{width:32px;height:32px;border-radius:50%;background:#f1f4ec;display:grid;place-items:center;flex:none;font-size:11px;color:#70836b}.lesson-block.warmup{background:#f3f5ed}.lesson-body{flex:1;min-width:0}.lesson-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.lesson-title h3{font-size:14px}.time-label{font-size:12px;font-weight:650;white-space:nowrap}.lesson-meta{font-size:10px;color:var(--muted);margin-top:5px}.section-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}.section-chip{font-size:9px;border:1px solid #e4e8de;border-radius:5px;padding:5px 7px;background:#fafbf7;display:flex;align-items:center;gap:5px;line-height:1.3}.section-chip input{accent-color:#315b49;width:11px;height:11px;margin:0}.lesson-note{font-size:11px;color:#657466;margin-top:11px;line-height:1.6}.goal-text{font-size:13px;line-height:1.8;white-space:pre-wrap;margin-top:15px;color:#536a58}.notes-text{font-size:12px;line-height:1.8;white-space:pre-wrap;color:#6d796d;margin-top:12px}.day-summary{display:flex;justify-content:space-between;font-size:11px;padding:12px 0;border-bottom:1px solid var(--line)}.day-summary:last-child{border-bottom:0}.repertoire-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.score-card{padding:24px}.score-head{display:flex;justify-content:space-between;gap:16px}.score-head h2{font-family:Georgia,serif;font-size:25px;font-weight:normal}.score-meta{display:flex;gap:20px;flex-wrap:wrap;margin:18px 0;font-size:11px;color:var(--muted)}details.movement{border-top:1px solid var(--line)}details.movement summary{padding:15px 0;cursor:pointer;font-size:12px;display:flex;justify-content:space-between;gap:12px;list-style:none}details.movement summary:before{content:'+';margin-right:7px;color:var(--muted)}details[open].movement summary:before{content:'−'}.movement-title{flex:1;font-weight:600}.section-list{padding-bottom:16px}.section-line{display:flex;gap:12px;font-size:11px;line-height:1.7;margin:9px 0}.section-range{width:67px;flex:none;color:var(--muted);font-variant-numeric:tabular-nums}.section-line strong{font-weight:600}.section-line p{font-size:10px;color:var(--muted);margin-top:2px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:600}.field .help{font-size:10px;line-height:1.6;color:var(--muted)}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #d9dfd2;border-radius:7px;background:#fff;color:var(--ink);font-size:12px;min-width:0}input[type=range]{padding:0;accent-color:var(--green)}input[type=checkbox]{width:auto;accent-color:var(--green)}textarea{resize:vertical;min-height:90px;line-height:1.7}.range-label{display:flex;justify-content:space-between;align-items:center}.range-label output{font:30px Georgia,serif;color:var(--green)}.form-section{padding:24px;margin-bottom:20px}.form-section h2{margin-bottom:20px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.setup-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,1fr);gap:22px;align-items:start}.warning{background:#fbf1e4;color:#83622d;border:1px solid #e9d8b7;border-radius:10px;font-size:12px;line-height:1.7;padding:13px 16px;margin-bottom:20px}.warning strong{font-weight:650}.warning ul{padding-left:17px;margin:8px 0}.empty{text-align:center;padding:50px 25px;color:var(--muted)}.empty svg{width:28px;height:28px;margin-bottom:15px}.empty h2{color:var(--ink);margin-bottom:12px}.footer-note{font-size:10px;line-height:1.8;color:var(--muted);margin-top:25px}.no-wrap{white-space:nowrap}.print-only{display:none}dialog{width:min(620px,calc(100vw - 30px));max-height:88vh;padding:28px;border:1px solid var(--line);border-radius:18px;color:var(--ink);box-shadow:0 24px 100px #17312630;background:#fcfdf8}dialog::backdrop{background:#142b2560;backdrop-filter:blur(2px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:23px}.dialog-head h2{font:27px Georgia,serif;font-weight:normal}.dialog-head p{font-size:11px;color:var(--muted);margin-top:8px}.dialog-head .icon-btn{flex:none}.dialog-error{font-size:12px;color:#a44633;line-height:1.7;margin-top:15px}.block-edit{display:grid;grid-template-columns:1fr 85px 30px;gap:8px;margin-bottom:10px;align-items:center}.block-edit .icon-btn{width:29px;height:31px}.section-edit{display:grid;grid-template-columns:1fr 60px 60px;gap:7px;margin-bottom:8px}.section-edit .section-focus{grid-column:1/-1}.form-label{font-size:11px;font-weight:600;margin:20px 0 12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:25px}#toast{position:fixed;bottom:25px;left:calc(50% + 112px);transform:translate(-50%,15px);padding:12px 18px;background:#244b40;color:#fff;border-radius:9px;box-shadow:0 8px 30px #244b4030;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.mobile-menu{display:none}.menu-overlay{display:none}.file-label{cursor:pointer}.inline-stat{display:flex;gap:18px;font-size:11px;flex-wrap:wrap;margin:18px 0}.inline-stat b{color:var(--ink);font-weight:600}.notes-indicator{font-size:10px;color:var(--muted);display:flex;gap:5px;align-items:center}.hidden{display:none!important}
@media(min-width:1600px){.page{padding-top:42px}.stats{gap:22px}.main-grid{gap:26px}}
@media(max-width:1150px){.sidebar{width:190px;padding-left:12px;padding-right:12px}.app-shell{grid-template-columns:190px 1fr}.topbar{padding:0 26px}.page{padding:28px 26px}.main-grid{grid-template-columns:1.2fr 1fr;gap:16px}.stats{gap:10px}.stat{padding:18px 16px}.weeks-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.week-card{padding:13px}.weekday-grid{gap:8px}.tile-top{padding:12px}.tile-body{padding:10px}.day-layout{grid-template-columns:1.45fr 1fr}.card-pad{padding:20px}#toast{left:calc(50% + 95px)}}
@media(max-width:900px){.main-grid,.day-layout,.setup-layout{grid-template-columns:1fr}.weeks-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main-grid>.right-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}.goal-card{margin-top:0}.weekday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-tile{min-height:240px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.repertoire-grid{grid-template-columns:1fr}.page-head{align-items:flex-start}.page-head .actions{justify-content:flex-end}.day-layout>.right-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}.day-layout>.right-column>.card{margin:0!important}}
@media(max-width:650px){.app-shell{display:block}.content{width:100%}.sidebar{transform:translateX(-100%);transition:transform .2s;width:224px}.sidebar.open{transform:translateX(0)}.menu-overlay.show{display:block;position:fixed;inset:0;background:#102a3550;z-index:14}.topbar{height:62px;padding:0 17px;gap:9px}.mobile-menu{display:inline-flex;border:0;background:none;width:25px}.breadcrumb{gap:7px;font-size:10px}.breadcrumb .cycle-name{display:none}.top-actions{gap:5px}.save-label{font-size:9px}.save-label span{display:none}.page{padding:25px 17px}.page-head{flex-direction:column;gap:18px;margin-bottom:22px}.page-head p{font-size:12px}.page-head>.actions{justify-content:flex-start;width:100%}h1{font-size:33px}.stats{gap:10px}.stat{padding:16px;min-height:116px}.stat-value{font-size:28px}.stat .eyebrow{font-size:8px}.main-grid>.right-column,.day-layout>.right-column{display:block}.goal-card{margin-top:18px}.day-layout>.right-column>.card{margin-top:18px!important}.card-pad{padding:19px}.weekday-grid{grid-template-columns:1fr}.day-tile{min-height:0}.day-tile.closed{min-height:0}.tile-top{padding:14px 17px}.tile-day{font-size:10px}.tile-date{font-size:20px}.tile-body{padding:14px 17px}.tile-footer{padding:10px 17px}.tile-block{padding:10px 12px}.tile-block strong{font-size:12px}.tile-goal{font-size:11px}.week-nav h2{font-size:21px}.week-goal{align-items:flex-start}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-section{padding:20px}.form-actions{justify-content:stretch}.form-actions>.button{flex:1}.score-card{padding:20px}.score-head h2{font-size:24px}.lesson-block{padding:18px;gap:12px}.lesson-index{width:28px;height:28px}.lesson-title h3{font-size:12px}.lesson-note{font-size:10px}.day-select{width:100%;max-width:none}dialog{padding:22px}.week-card{min-height:139px}.section-heading h2{font-size:16px}.section-heading .text-button{font-size:10px}#toast{left:50%;width:max-content}.section-edit{grid-template-columns:1fr 50px 50px}}
@media print{.sidebar,.topbar,.actions,.button,.icon-btn,.text-button,.nav,.tile-footer,.footer-note,.skip,.menu-overlay,#toast,dialog{display:none!important}.app-shell{display:block}.content{display:block}.page{padding:0;max-width:none}.card,.stat,.day-tile{break-inside:avoid;border-color:#ccc;box-shadow:none}.main-grid,.day-layout,.setup-layout{display:block}.right-column{margin-top:20px}.stats{grid-template-columns:repeat(4,1fr)}.weekday-grid{grid-template-columns:repeat(5,1fr)}.week-card{break-inside:avoid}.page-head{margin-bottom:20px}body{background:white}.print-only{display:block}h1{font-size:29px}.info-strip{background:#eee}details.movement>.section-list{display:block}.weeks-grid{grid-template-columns:repeat(4,1fr)}.allocation-bar span,.mini-bars span{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* Section priorities, precise daily passages, and reflection. */
.section-priority-list{margin:16px 0;border-top:1px solid var(--line)}.priority-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #edf0e8}.priority-row strong{font-size:11px}.priority-row .button{font-size:10px;min-height:34px;padding:8px 10px;flex:none}.priority-row p{font-size:9px;line-height:1.7;margin-top:7px}.priority-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.priority-badges span{font-size:9px;color:#687967;background:#f1f3eb;border-radius:4px;padding:4px 6px}.focus-panel{padding:22px;margin-bottom:22px}.focus-panel .card-head{align-items:flex-start}.focus-panel .card-head p{max-width:520px;line-height:1.7}.focus-entry{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:17px 0}.focus-entry-main{flex:1;min-width:0}.focus-entry h3{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:9px 0;font-size:13px}.focus-entry p{font-size:12px;color:#617561;line-height:1.7}.focus-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.focus-empty{background:#f6f8f0;border:1px dashed #dce2d3;padding:17px;border-radius:9px;font-size:12px;color:#71816c;line-height:1.7}.focus-empty .text-button{margin-top:12px}.checkin-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding-top:18px;margin-top:15px}.checkin-summary p{font-size:12px;line-height:1.7;margin-top:6px}.check-label{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.7;cursor:pointer}.check-label input{margin:3px 0 0;flex:none}.checkin-row{padding:18px 0;border-bottom:1px solid var(--line)}.checkin-row h3{margin:8px 0;font-size:13px;line-height:1.6}.outcome-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.outcome-option{position:relative;cursor:pointer}.outcome-option input{position:absolute;opacity:0;width:1px;height:1px}.outcome-option span{display:flex;align-items:center;justify-content:center;min-height:45px;border:1px solid #dce2d3;border-radius:8px;font-size:11px;background:white;text-align:center;padding:9px}.outcome-option input:checked+span{background:#e4eddd;border-color:#5a7b55;color:#2f563c;font-weight:600}.outcome-option input:focus-visible+span{outline:3px solid #cfaa60;outline-offset:2px}.followup-fields{margin-top:16px;padding:17px;background:#f1f4e9;border-radius:9px}.followup-fields label{font-size:10px}.proposal-adjustments{padding:16px;background:#f1f4e9;border-radius:10px;margin-bottom:20px}.proposal-request{padding:10px 0 16px;margin-bottom:12px;border-bottom:1px solid #dde4d3}.proposal-request strong{font-size:12px;line-height:1.6}.proposal-summary{font-size:11px;font-weight:600;margin:22px 0 15px;color:#5d745c}.proposal-change{border:1px solid var(--line);border-radius:10px;margin:14px 0;overflow:hidden}.proposal-change h3{padding:15px;background:#f5f7ef;border-bottom:1px solid var(--line);font-size:13px}.proposal-comparison{display:grid;grid-template-columns:1fr 1fr}.proposal-comparison>div{padding:15px;min-width:0}.proposal-comparison>div+div{border-left:1px solid var(--line);background:#fafcf6}.proposal-unit{font-size:10px;border-bottom:1px solid #e9ede3;padding:11px 0;line-height:1.7}.proposal-unit strong{font-size:11px;font-weight:600}.proposal-unit p{font-size:10px;margin-top:5px}.proposal-goal{font-size:9px!important;color:#7c8875;margin-top:12px;line-height:1.7}.proposal-reasons{padding:13px 20px 15px 28px;font-size:10px;line-height:1.8;color:#61735b;background:#f4f7ee;border-top:1px solid var(--line);margin:0}.proposal-actions{position:sticky;bottom:-28px;background:#fcfdf8;padding:15px 0 3px;border-top:1px solid var(--line);flex-wrap:wrap}.checkin-actions{flex-wrap:wrap}.section-priority-list .button{min-width:78px}
@media(max-width:650px){.focus-panel{padding:18px}.focus-panel .card-head{flex-direction:column;gap:15px}.focus-panel .card-head .button{width:100%}.focus-entry{gap:9px}.focus-entry>.actions{flex-direction:column;gap:7px}.focus-entry>.actions .icon-btn{width:38px;height:38px}.focus-entry h3{flex-wrap:wrap;font-size:12px}.focus-entry .eyebrow{font-size:8px;line-height:1.7}.checkin-summary{align-items:flex-start;flex-direction:column}.checkin-summary .actions{width:100%}.checkin-summary .button{flex:1;min-height:44px}.priority-row{flex-direction:column;gap:10px}.priority-row .button{min-height:40px}.checkin-actions .button{flex:1;min-height:46px;white-space:normal}.proposal-comparison{grid-template-columns:1fr}.proposal-comparison>div+div{border-left:0;border-top:1px solid var(--line)}.proposal-actions{bottom:-22px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.proposal-actions .button{min-height:45px;padding:10px;white-space:normal}.proposal-actions>.button.quiet{grid-column:1/-1}.followup-fields{padding:14px}}

/* Director-confirmed actual work. */
.actual-fields{margin-top:16px;padding:16px;background:#f5f6f0;border:1px solid var(--line);border-radius:10px}.actual-fields>.check-label{min-height:44px;align-items:center;font-weight:600}.actual-fields>.check-label input{width:20px;height:20px}.actual-fields>.form-grid{margin-top:14px}.actual-overview{padding:14px;background:#f2f5ed;border-radius:10px;margin:18px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}.actual-overview .button{min-height:44px}.measure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:5px;margin-top:14px}.measure-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:42px;border:1px solid #d9dfd4;border-radius:5px;font-size:11px}.measure-cell small{font-size:9px}.count-0{background:#f4f4ef;color:#7b8476}.count-1{background:#e1e9d9}.count-2{background:#a6c4a4}.count-3{background:#315b49;color:white}.measure-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:10px;margin-top:16px;color:var(--muted)}.actual-history-table{overflow:auto}.actual-history-table table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.actual-history-table th,.actual-history-table td{padding:11px 8px;border-bottom:1px solid var(--line)}.actual-observation{padding:14px 0;border-bottom:1px solid var(--line)}.actual-observation p{font-size:12px;margin-top:6px}.actual-fields input,.actual-fields select{min-height:44px}@media(max-width:650px){.actual-overview{align-items:flex-start;flex-direction:column}.actual-overview .button{width:100%}}

.additional-work{margin:14px 0;border:1px solid var(--line);border-radius:8px;padding:0 14px}.additional-work>summary{cursor:pointer;min-height:44px;padding:14px 0;font-size:12px}.additional-work>.checkin-row{border:0}

.actual-optional summary{min-height:44px;padding:12px 0;font-size:11px;cursor:pointer}.actual-optional>.form-grid{margin-top:8px}

.cycle-switch{display:flex;align-items:center;gap:8px;background:#ffffff15;color:#eef1e6;border:1px solid #ffffff35;border-radius:7px;padding:10px 12px;margin-top:14px;width:100%;cursor:pointer;font:inherit;font-size:12px}.cycle-switch svg{width:14px;height:14px}.cycle-picker-list{display:grid;gap:12px;margin-top:12px}.blank-cycle{max-width:880px}.blank-cycle h2{margin:16px 0}.blank-cycle>p{line-height:1.7;margin:18px 0;max-width:680px}.setup-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:30px 0}.setup-steps strong,.setup-steps span{display:block}.setup-steps span{font-size:13px;line-height:1.6;color:#657267;margin-top:10px}.meeting-days{border:0;padding:20px 0 0;display:flex;gap:16px;flex-wrap:wrap}.meeting-days legend{font-size:13px;padding-top:20px}.meeting-days label{display:flex;align-items:center;gap:7px;font-size:13px}.custom-setup{max-width:940px}.cycle-picker-list .button{justify-content:flex-start}@media(max-width:700px){.setup-steps{grid-template-columns:1fr;gap:18px}.meeting-days{gap:14px}.blank-cycle{padding:22px}.cycle-side{display:block}}

.structure-copy{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.structure-copy p{margin-top:10px;max-width:650px;line-height:1.7}
.structure-copy .button{flex-shrink:0}
.structure-summary{margin:22px 0;border-top:1px solid var(--border,#e4e7de)}
.structure-summary>div{display:grid;grid-template-columns:minmax(125px,1fr) 2fr;gap:20px;padding:11px 0;border-bottom:1px solid var(--border,#e4e7de);font-size:13px;line-height:1.6}
.structure-summary dt{font-weight:600}.structure-summary dd{margin:0;overflow-wrap:anywhere;color:var(--muted,#68776c)}
.copy-calendar{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;margin:20px 0}.copy-calendar input{width:auto;flex-shrink:0;margin-top:4px}
@media(max-width:700px){.structure-copy{align-items:flex-start;flex-direction:column;gap:16px}.structure-summary>div{grid-template-columns:1fr;gap:4px}}

/* Clickable dates for school calendar exceptions. */
.exception-intro{margin:13px 0 20px;line-height:1.8;max-width:620px}
.exception-calendar{max-width:620px;margin-top:18px}.exception-month-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.exception-month-nav h3{font-family:Georgia,serif;font-size:21px;font-weight:400}.exception-month-nav .icon-btn{height:42px;width:42px}.exception-month{table-layout:fixed;border-collapse:separate;border-spacing:4px;width:100%;margin:0 -4px;width:calc(100% + 8px)}.exception-month th{padding:0 0 10px;font-size:10px;font-weight:500;color:var(--muted);text-align:center;letter-spacing:.05em}.exception-month abbr{text-decoration:none}.exception-month td{padding:0;vertical-align:middle}.exception-day{border:1px solid #dce3d8;background:#fff;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:57px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer;transition:background .12s,border-color .12s}.exception-day small{min-height:12px;font-size:9px;font-weight:600;line-height:1}.exception-day:not(:disabled):hover{background:#eaf0e4;border-color:var(--green)}.exception-day.is-excluded{background:#865046;border-color:#865046;color:#fff}.exception-day.is-excluded:not(:disabled):hover{background:#704137;color:#fff;border-color:#704137}.exception-day.is-unavailable{background:#f2f3ee;border-color:transparent;color:#afb6ac;cursor:default}.exception-day.is-recorded{background:#edf0df;border-color:#cbd3b6;color:#4a5d3e;cursor:default}.exception-day.is-recorded small{color:#5b7845}.exception-day.is-today>span{text-decoration:underline;text-underline-offset:4px}.exception-day:focus-visible,.exception-chip:focus-visible,.exception-selected summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.exception-legend{display:flex;flex-wrap:wrap;gap:12px 16px;margin:18px 0;font-size:10px;color:#627063}.exception-legend>span{display:inline-flex;align-items:center;gap:6px}.exception-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;border:1px solid #dce3d8}.legend-class{background:white}.legend-excluded{background:#865046;border-color:#865046!important}.legend-unavailable{background:#eeefe9}.exception-status{font-size:11px;color:#627063;line-height:1.7;margin:14px 0}.exception-selected{border-top:1px solid var(--line);margin-top:17px;padding-top:6px}.exception-selected summary{cursor:pointer;font-size:12px;padding:13px 0;min-height:42px}.exception-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}.exception-chip{display:inline-flex;gap:10px;align-items:center;justify-content:space-between;background:#f8f0ec;color:#795044;border:1px solid #e7d6cd;border-radius:7px;padding:10px 11px;min-height:42px;font:inherit;font-size:11px;cursor:pointer}.exception-chip:not(:disabled):hover{border-color:#865046;background:#f0e1d9}.exception-chip>span+span{font-size:16px;line-height:1}.exception-chip:disabled{opacity:.6;cursor:default}
@media(max-width:650px){.exception-day{min-height:48px;border-radius:7px;font-size:12px}.exception-day small{font-size:8px;min-height:9px}.exception-month{border-spacing:3px}.exception-legend{gap:10px;font-size:9px}.exception-month-nav h3{font-size:20px}}
@media print{.exception-month button{-webkit-print-color-adjust:exact;print-color-adjust:exact}.exception-chips{gap:5px}.exception-chip{font-size:10px}}

.administration-entry{border:1px solid var(--line);border-radius:10px;background:#f5f7ef;padding:0 16px;margin:18px 0 8px}.administration-entry>summary{cursor:pointer;padding:16px 0;font-size:13px;line-height:1.6;font-weight:600;min-height:48px}.administration-entry>p{font-size:11px;line-height:1.8;margin:0 0 15px}.administration-entry>.form-grid{margin:16px 0}.administration-entry input,.administration-entry select{min-height:44px}.administration-entry textarea{min-height:70px}.administration-summary{padding:12px 14px;border:1px solid #dfe5d6;border-radius:8px;background:#f1f5e9;margin-top:12px}.administration-summary .eyebrow{font-size:9px}.administration-summary p{line-height:1.7;margin-top:7px}.administration-entry summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(max-width:650px){.administration-entry{padding:0 13px}.administration-entry .form-grid{grid-template-columns:1fr}}

.repertoire-resources{margin:18px 0 22px;padding:16px;background:#f5f7f0;border:1px solid var(--line);border-radius:10px}.resource-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.resource-heading h3{font-size:12px}.resource-heading .text-button{min-height:36px;flex:none}.resource-list{list-style:none;padding:0;margin:0;display:grid;gap:7px}.resource-list a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 12px;min-height:48px;background:white;border:1px solid var(--line);border-radius:7px;text-decoration:none;overflow-wrap:anywhere}.resource-list a:hover{border-color:#4f7966;background:#fbfcf8}.resource-list small{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.resource-list strong{font-size:12px;font-weight:600}.resource-edit{border:1px solid var(--line);border-radius:9px;padding:16px;margin:18px 0}.resource-edit legend{padding:0 6px;font-size:11px;font-weight:600}.resource-edit .text-button{min-height:44px;margin-top:8px}.resource-edit input,.resource-edit select{min-height:44px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:650px){.resource-heading{align-items:flex-start;flex-direction:column;gap:2px}.repertoire-resources{padding:13px}.resource-edit{padding:13px}}

.daily-teaching-goals>h2{margin-bottom:6px}.daily-piece-goal{padding:15px 0;border-bottom:1px solid var(--line)}.daily-goal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.daily-goal-heading h3{font-size:12px;line-height:1.6}.daily-goal-heading .icon-btn{flex:none;width:36px;height:36px}.daily-goal-text{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.daily-piece-goal>.small{line-height:1.7}.previous-rehearsal-goal{margin-top:14px}.previous-rehearsal-goal>summary{cursor:pointer;font-size:11px;color:var(--muted);padding:10px 0;min-height:38px}.previous-rehearsal-goal>p{margin-top:5px}.previous-rehearsal-goal>summary:focus-visible{outline:3px solid #cfaa60;outline-offset:3px}.daily-goal-reflection{margin-top:22px}#daily-teaching-goal{min-height:140px;resize:vertical}.tile-goal{white-space:pre-line}@media(max-width:650px){.daily-goal-heading .icon-btn{width:44px;height:44px}.daily-piece-goal{padding:12px 0}}@media print{.previous-rehearsal-goal>p{display:block}.daily-piece-goal{break-inside:avoid}}

.planned-goal-sections{padding:9px 11px;margin:0 0 11px;background:#f2f5ed;border-left:3px solid #a6b79a;border-radius:4px;overflow-wrap:anywhere}.planned-goal-sections .eyebrow{font-size:8px;letter-spacing:1px}.planned-goal-sections ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:5px}.planned-goal-sections li{font-size:11px;line-height:1.7}.planned-goal-sections+ .field{margin-top:18px}

.specific-focus{margin-top:16px;padding-top:13px;border-top:1px dashed var(--line)}.specific-focus>.eyebrow{font-size:9px;letter-spacing:1px}.specific-focus-entry{margin-top:10px;padding:12px;background:#f6f7f2;border:1px solid var(--line);border-radius:7px;overflow-wrap:anywhere}.specific-focus-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;font-size:11px;line-height:1.7}.specific-focus-heading span{white-space:nowrap;color:var(--muted);flex:none}.specific-focus-entry>p{font-size:12px;line-height:1.7;margin-top:7px;white-space:pre-wrap}.specific-focus-entry .focus-tags{gap:5px;flex-wrap:wrap;margin-top:9px}.specific-focus-entry .badge{font-size:9px}.specific-focus-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:6px}.specific-focus-actions .text-button,.add-specific-focus{min-height:40px;font-size:11px}.add-specific-focus{margin-top:8px}.specific-focus-budget,.specific-focus-hint{font-size:10px!important;line-height:1.7;margin-top:10px}.rehearsal-checkin{margin-top:22px}.rehearsal-checkin>.checkin-summary{margin-top:14px;padding:0;border:0;background:transparent}#focus-piece-name{background:#f5f7f0}@media(max-width:650px){.specific-focus-actions .text-button,.add-specific-focus{min-height:44px}}@media print{.specific-focus-entry{break-inside:avoid}}

.library-current-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.library-entry h3{font:23px/1.3 Georgia,serif;margin:10px 0}.library-entry>.actions{margin-top:18px;justify-content:flex-start;gap:8px;flex-wrap:wrap}.library-entry>p{line-height:1.8}.piece-library-control{margin:-8px 0 18px}.piece-library-control>.text-button{min-height:40px;font-size:11px}.library-detail-list>section{padding:16px 0;border-bottom:1px solid var(--line)}.library-detail-list p{margin-top:8px}.library-detail-list ul{font-size:11px;line-height:1.9;padding-left:20px}.library-detail-list a{overflow-wrap:anywhere}@media(max-width:900px){.library-grid{grid-template-columns:1fr}}@media(max-width:650px){.library-current-actions{flex-direction:column}.library-entry>.actions .button{min-height:44px}}

.score-study-fields{grid-column:1/-1;border:1px solid var(--line);border-radius:8px;padding:0 12px;margin:5px 0 14px;background:#fafbf7}.score-study-fields>summary{padding:13px 0;cursor:pointer;font-size:11px;font-weight:600;line-height:1.7}.score-study-fields>summary>span{font-size:9px;color:var(--muted);margin-left:6px;font-weight:400}.score-study-fields>.form-grid{padding:8px 0 14px}.score-study-fields>.field{margin:12px 0 15px}.score-study-fields .field input,.score-study-fields select{min-height:42px}.score-study-fields textarea{min-height:65px}.study-choice>.study-custom{margin-top:8px}.percussion-picker{border-top:1px solid var(--line);padding:7px 0}.percussion-picker>summary{font-size:11px;line-height:1.7;padding:8px 0;cursor:pointer}.percussion-picker fieldset{padding:8px 0;border:0;margin:0}.percussion-picker legend{font-size:10px;color:var(--muted)}.percussion-options{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:10px}.percussion-options label{display:flex;align-items:center;gap:8px;font-size:11px;min-height:38px;line-height:1.5}.percussion-options input{width:17px!important;height:17px;min-height:17px!important;flex:none}.score-study-summary{margin:9px 0 3px;line-height:1.7}.study-tags{display:flex;flex-wrap:wrap;gap:5px}.study-tags>span{font-size:10px;background:#edf2e7;border-radius:4px;padding:3px 6px;color:#345644}.score-study-summary>p{font-size:11px!important;margin-top:5px!important;line-height:1.7!important;white-space:pre-wrap;overflow-wrap:anywhere}.score-study-summary .study-character{font-style:italic}.score-study-summary>details>summary{font-size:10px;color:var(--muted);cursor:pointer;padding:7px 0}.score-study-summary>details p{font-size:11px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.planned-goal-sections .score-study-summary{padding-top:2px;margin-bottom:8px}.score-study-fields summary:focus-visible,.score-study-summary summary:focus-visible{outline:3px solid #cfaa60;outline-offset:3px}@media(max-width:650px){.percussion-options{grid-template-columns:1fr}.score-study-fields{padding:0 10px}.percussion-options label{min-height:44px}.score-study-fields .form-grid{grid-template-columns:1fr}}@media print{.score-study-summary details>p{display:block}}

.score-study-summary>details>summary{display:list-item;list-style:disclosure-closed}.score-study-summary>details[open]>summary{list-style:disclosure-open}details.movement .score-study-summary>details>summary:before{content:none}

.dialog-dismiss-check{border:1px solid #dbc999;background:#faf4e6;border-radius:10px;padding:18px;margin-top:20px}.dialog-dismiss-check h3{font-size:14px}.dialog-dismiss-check p{font-size:12px;margin:8px 0 15px}.dialog-dismiss-check .actions{gap:10px}

.repertoire-percussion{border:1px solid var(--line);border-radius:10px;background:#f9faf5;padding:16px;margin:16px 0}.repertoire-percussion .resource-heading{margin-bottom:12px}.percussion-parts-list{padding:0;list-style:none;margin:12px 0 0}.percussion-parts-list>li{padding:10px 0;border-top:1px solid var(--line);font-size:11px;line-height:1.7;overflow-wrap:anywhere}.percussion-parts-list strong,.percussion-parts-list span{display:block}.percussion-parts-list span,.percussion-parts-list p{color:var(--muted);font-size:11px;white-space:pre-wrap}.percussion-part-edit{margin:22px 0;padding:16px;border:1px solid var(--line);border-radius:10px;min-width:0}.percussion-part-edit>legend{font-weight:600;font-size:13px;padding:0 7px}.percussion-part-edit>.field{margin-bottom:14px}.percussion-part-edit .percussion-picker{margin:15px 0}.percussion-part-edit textarea{min-height:65px}.parts-count-button{margin:14px 0}.percussion-part-edit summary:focus-visible{outline:3px solid #cfaa60;outline-offset:3px}


input::placeholder,textarea::placeholder{color:#737d6d;opacity:1;font-style:normal}

.character-library{margin-top:24px}.character-library h2{margin-bottom:10px}.character-library-list{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:16px 0 0}.character-library-list li{font-size:11px;line-height:1.5;background:#edf2e7;color:#345644;padding:7px 10px;border-radius:6px;overflow-wrap:anywhere;max-width:100%}

.study-considerations,.study-previous-notes{border-top:1px solid var(--line);padding:4px 0 12px}.study-considerations>summary,.study-previous-notes>summary{font-size:11px;font-weight:600;line-height:1.7;padding:12px 0;cursor:pointer}.consideration-count{color:var(--muted);font-size:10px;font-weight:400;margin-left:5px}.consideration-edit{border:1px solid var(--line);border-radius:8px;padding:12px;margin:18px 0;min-width:0}.consideration-edit>legend{font-size:11px;font-weight:600;padding:0 6px}.consideration-grid{display:grid;grid-template-columns:100px 100px minmax(0,1fr);gap:10px;margin-bottom:14px}.consideration-edit textarea{min-height:85px}.consideration-edit>.text-button{margin-top:12px}.consideration-add{padding:10px 0}.study-previous-notes>.field{padding-bottom:10px}.considerations-summary ul{margin:2px 0 12px;padding-left:18px}.considerations-summary li{font-size:11px;margin:12px 0;line-height:1.7;overflow-wrap:anywhere}.considerations-summary li p{white-space:pre-wrap;line-height:1.7}.considerations-summary .consideration-players{color:var(--muted);font-weight:600}.score-study-fields details>summary:focus-visible{outline:3px solid #cfaa60;outline-offset:3px}@media(max-width:650px){.consideration-grid{grid-template-columns:1fr 1fr}.consideration-players-field{grid-column:1/-1}}@media print{.considerations-summary>ul{display:block}}

fieldset.actual-fields{border:0;padding:14px 0;margin-left:0;margin-right:0;min-width:0}.actual-range-group{padding:0;margin:0;border:0;min-width:0}.actual-range-group>legend{padding:0;font-size:11px;font-weight:600;margin-bottom:4px}.actual-range-rows{display:flex;flex-direction:column;gap:12px}.actual-range-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}.actual-range-row .actual-range-remove{min-height:39px}.actual-range-add{margin:7px 0}.actual-range-group>.help{line-height:1.7}@media(max-width:500px){.actual-range-row{grid-template-columns:1fr 1fr}.actual-range-row>.actual-range-remove{grid-column:1/-1;justify-self:end;min-height:44px}}

.planned-work-summary{margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#f1f4e9}.planned-work-summary ul{margin:8px 0 0;padding-left:18px;font-size:12px;line-height:1.8}.planned-work-summary p{margin-top:8px;line-height:1.7}.planned-work-focus{margin-top:10px;font-size:11px}.planned-work-focus ul{margin-top:4px}

.warmup-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.warmup-material h2{font-size:20px}.warmup-material>p{line-height:1.7;margin:12px 0}.warmup-exercises{list-style:none;padding:0;margin:15px 0}.warmup-exercises li{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-top:1px solid var(--line);font-size:12px}.warmup-exercises span{display:block;color:var(--muted);margin-top:5px}.warmup-exercises p{white-space:pre-wrap;margin-top:6px;line-height:1.7}.warmup-plan-row{min-width:0;border:1px solid var(--line);padding:16px;margin:18px 0;border-radius:10px}.warmup-plan-row legend{font-size:12px;font-weight:600}.daily-warmup-list{list-style:none;margin:14px 0;padding:0;font-size:12px}.daily-warmup-list li{padding:10px 0;border-top:1px solid var(--line);line-height:1.7}.daily-warmup-list span{display:block}.daily-warmup-list p{white-space:pre-wrap;color:var(--muted);margin-top:5px}.warmup .actions{margin-top:15px;gap:18px}.exit-teaching-goal{margin-top:12px;padding:14px;border-left:3px solid #65825a;background:#f5f7ef}.exit-teaching-goal p,.exit-passage-goal p{white-space:pre-wrap;font-size:13px;line-height:1.8;margin-top:8px}.exit-passage-goal{margin-top:14px;font-size:12px}.goal-reflection-field{margin-top:18px}.exit-goal-reflections{margin-top:14px}.exit-goal-reflections summary{font-size:12px;cursor:pointer}.exit-goal-reflections>div{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px}.exit-goal-reflections p{white-space:pre-wrap}@media(max-width:750px){.warmup-library-grid{grid-template-columns:1fr}}

.warmup-credits span{display:block;margin-top:5px}.warmup-credits strong{font-weight:600}

.warmup-library-target{margin:0 0 22px}.warmup-library-target>.field{max-width:520px}.warmup-library-target>p{margin-top:12px;line-height:1.8}.warmup-library-target>.text-button{margin-top:10px}.warmup-exercise-actions{display:flex;align-items:flex-start;flex-direction:column;gap:8px;flex:none}.warmup-material>.actions{margin-top:16px;gap:18px}.warmup-material button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.warmup-exercises li{flex-direction:column}.warmup-exercise-actions{flex-direction:row;flex-wrap:wrap;gap:18px}}

.warmup-selection-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;top:10px;z-index:3;background:#fcfdf8;border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin-bottom:20px;box-shadow:0 3px 12px #223d2d10}.warmup-selection-bar>span{font-size:12px;font-weight:600}.warmup-library-pick{display:flex;align-items:center;gap:9px;min-height:44px;cursor:pointer;font-size:12px;color:#315b49}.warmup-library-pick input{width:19px;height:19px;flex:none;accent-color:#315b49}.warmup-library-pick:has(input:checked){font-weight:600}.warmup-library-pick:has(input:disabled){opacity:.5;cursor:not-allowed}@media(max-width:650px){.warmup-selection-bar{align-items:flex-start;flex-direction:column}.warmup-selection-bar .actions{width:100%;display:flex;flex-wrap:wrap}.warmup-selection-bar .primary{flex:1}}

#day-form .block-edit{grid-template-columns:minmax(0,1fr) 85px;gap:8px;padding:12px;border:1px solid var(--line);border-radius:9px}#day-form .block-order-actions{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end}#day-form .block-order-actions .button{font-size:11px;padding:7px 12px;min-height:38px}#day-form .block-order-actions .icon-btn{width:38px;height:38px}#day-time-budget{font-size:12px;line-height:1.7;margin:18px 0}#day-time-budget.over-budget{background:#fff2e4;color:#80511c}@media(max-width:500px){#day-form .block-edit{grid-template-columns:minmax(0,1fr) 70px}}

/* Concert cycles contain independent ensemble workspaces. */
.sidebar{overflow-y:auto;overscroll-behavior:contain;width:256px;padding-top:24px}.app-shell{grid-template-columns:256px minmax(0,1fr)}.sidebar>*{flex-shrink:0}.sidebar .brand{padding-bottom:24px}.concert-sidebar{padding:0 9px 18px;border-bottom:1px solid #ffffff26;margin-bottom:8px}.concert-context{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 10px;margin-bottom:9px}.concert-context .side-label{padding:0;letter-spacing:1.3px}.concert-dates{font-size:10px;color:#c4d3c7;line-height:1.7}.concert-select{display:block;width:100%;min-width:0;min-height:44px;padding:10px 8px;border:1px solid #ffffff50;border-radius:8px;background:#315b49;color:#f4f5e9;font-size:16px;font-family:Georgia,serif;white-space:normal}.concert-select option{background:#fff;color:#243e35}.ensemble-label{padding:18px 2px 8px;letter-spacing:1.3px}.ensemble-list{display:flex;flex-direction:column;gap:6px}.ensemble-option{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;border-radius:7px;padding:11px 12px;width:100%;min-height:44px;font-size:13px;line-height:1.5;color:#d8e3d7;overflow-wrap:anywhere}.ensemble-option span{min-width:0}.ensemble-option:hover{background:#ffffff10}.ensemble-option.active{background:#edf0dc;color:#244b40;font-weight:600}.ensemble-option svg{width:16px;height:16px}.add-ensemble,.concert-manage{display:flex;align-items:center;gap:8px;min-height:44px;width:100%;text-align:left;font-size:12px;padding:10px 8px;color:#d8e3d7;line-height:1.5}.add-ensemble{margin-top:7px}.concert-manage{color:#c6d5c8;font-size:11px;border-top:1px solid #ffffff20;margin-top:6px;padding-top:12px}.add-ensemble svg,.concert-manage svg{width:14px;height:14px}.workspace-label{padding-top:10px}.sidebar .side-bottom{margin-top:24px}.sidebar .nav button{min-height:44px;padding-top:10px;padding-bottom:10px}.concert-ensemble-summary{display:block;font-size:11px;font-weight:400;margin-top:5px;white-space:normal;line-height:1.6}.cycle-picker-list>.button{justify-content:flex-start;text-align:left;white-space:normal}.breadcrumb{flex-wrap:wrap;overflow-wrap:anywhere}.breadcrumb span{min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1150px){.sidebar{width:230px}.app-shell{grid-template-columns:230px minmax(0,1fr)}}
@media(max-width:650px){.sidebar{width:256px}.app-shell{grid-template-columns:1fr}.content{grid-column:1}.topbar{height:auto;min-height:76px;padding-top:12px;padding-bottom:12px}.breadcrumb{gap:7px}}
@media print{.sidebar{display:none}.app-shell{display:block}.content{grid-column:auto}}

.workspace-backup-panel{margin:22px 0}.workspace-backup-panel>p{margin-top:12px;font-size:12px;line-height:1.8}.workspace-backup-panel>.actions{margin-top:18px}.workspace-restore-list{padding-left:20px;margin:18px 0}.workspace-restore-list li{margin:14px 0;font-size:13px;line-height:1.8}.workspace-restore-list span{display:block;color:var(--muted);font-size:12px}
/* Confirmed teaching history and weekly planning. */
.teaching-filters,.teaching-piece,.planning-shortlist{margin-top:22px}
.teaching-filters .actions{margin-top:18px}
.teaching-piece details{margin:16px 0}.teaching-piece summary{cursor:pointer;line-height:1.6;color:#244b40}
.teaching-piece summary span{display:block;font-size:12px;color:#63776b}
.teaching-table-scroll{overflow-x:auto}.teaching-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}
.teaching-table th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;padding:14px 10px;color:#63776b;border-bottom:1px solid #dce2d8}
.teaching-table td{padding:14px 10px;vertical-align:top;border-bottom:1px solid #e8ece4}
.teaching-table td:first-child{min-width:220px}.teaching-table td .badge{display:block;margin-top:7px;white-space:normal}
.teaching-heatmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:4px;margin:16px 0}
.teaching-heatmap button{border:1px solid #cfdace;border-radius:5px;min-height:45px;padding:4px;cursor:pointer;color:#173d31;background:#f4f5ee;font:inherit}
.teaching-heatmap span,.teaching-heatmap b{display:block;font-size:10px}.teaching-heatmap b{font-size:13px;margin-top:3px}
.teaching-heatmap .heat-level-1{background:#e3ead7}.teaching-heatmap .heat-level-2{background:#b7cfb2}.teaching-heatmap .heat-level-3{background:#799f85;color:white}.teaching-heatmap .heat-level-4{background:#315c4a;color:white}
.teaching-events{max-width:560px}.teaching-events article{padding:12px 0;border-bottom:1px solid #e0e6dc}.teaching-events p{font-size:12px;margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.shortlist-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid #e0e6dc}.shortlist-row p{font-size:12px;margin-top:6px}
.workspace-backup-panel>p{margin:14px 0;overflow-wrap:anywhere}
#goal-settings-form .check-label{display:flex;gap:10px;margin:18px 0;align-items:center}#goal-settings-form button{margin-top:16px}
@media(max-width:700px){.shortlist-row{align-items:flex-start;flex-direction:column}.teaching-table{font-size:12px}.teaching-table th,.teaching-table td{padding:10px 7px}.teaching-table .button{padding:8px;font-size:11px}.teaching-heatmap{grid-template-columns:repeat(auto-fill,minmax(33px,1fr))}}
.placement-budget{display:block;margin:20px 0}.placement-budget strong{font-size:14px}.placement-budget p{margin-top:7px}.placement-budget.over-budget{background:#fff4e5;color:#875822}
.placement-passage-fields,.placement-work-editor,.placement-review{margin-top:24px}.placement-passage-fields h3{margin-bottom:14px}.placement-work-editor>summary,.placement-passage-moves>summary{font-weight:650;cursor:pointer;line-height:1.6;color:var(--green)}
.placement-work-editor>p,.placement-review p{margin:12px 0}.placement-block-row{display:grid;grid-template-columns:minmax(140px,1fr) 120px minmax(150px,1fr);gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.placement-block-row .field label,.placement-passage-row .field label{font-size:11px}.placement-block-row .field,.placement-passage-row .field{min-width:0}.placement-block-row input,.placement-block-row select,.placement-passage-row select{width:100%;min-height:40px}
.placement-block-row input:disabled,.placement-block-row select:disabled,.placement-passage-row select:disabled{opacity:.6}.placement-passage-moves{margin:20px 0}.placement-passage-row{display:grid;grid-template-columns:1fr minmax(160px,1fr);gap:15px;padding:15px 0;border-bottom:1px solid var(--line)}.placement-passage-row p{font-size:12px;margin-top:5px}.placement-review{font-size:12px;background:#f2f4ed;border-radius:10px;padding:16px}.placement-review:empty{display:none}.placement-review li{margin:8px 0}
@media(max-width:650px){.placement-block-row{grid-template-columns:1fr 1fr}.placement-block-row>div:first-child{grid-column:1/-1}.placement-passage-row{grid-template-columns:1fr}.placement-block-row select{font-size:12px}}
.dialog-head-actions{display:flex;align-items:center;gap:8px;flex:none}.warmup-save-top{white-space:nowrap}
@media(max-width:600px){.dialog-head:has(.warmup-save-top){flex-wrap:wrap;gap:12px}.dialog-head:has(.warmup-save-top)>.dialog-head-actions{margin-left:auto}}

/* Cycle calendar distinguishes recovery reserves from known lost class time. */
.calendar-planning-controls{margin:18px 0;padding:16px;background:#f3f5ee;border:1px solid var(--line);border-radius:8px}.calendar-planning-controls select,.calendar-planning-controls input{width:100%;min-height:42px}.calendar-planning-controls>.field{margin-bottom:14px}.calendar-auto-reserves{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.calendar-auto-reserves>.field{flex:1;min-width:150px;margin:0}.calendar-auto-reserves>.button{min-height:42px}.calendar-auto-reserves>p{width:100%;line-height:1.7}.calendar-planning-controls [hidden]{display:none!important}.exception-day.is-reserve:not(.is-unavailable){background:#f6e9bd;color:#614917;border-color:#c8a54d}.exception-day.is-shortened:not(.is-unavailable){box-shadow:inset 0 -4px #607f9c}.exception-day small{font-size:9px;line-height:1.2}.legend-reserve{background:#f6e9bd;border:1px solid #c8a54d}.legend-shortened{background:#dce9f3;border:1px solid #607f9c}.calendar-plan-review{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.calendar-plan-review h4{font-size:12px;margin:0 0 10px}.calendar-plan-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;padding:7px 0;border-bottom:1px solid var(--line)}.calendar-plan-row>span{line-height:1.7;overflow-wrap:anywhere}.calendar-plan-row>.text-button{flex:none;min-height:40px}.calendar-save-error{color:#a63825;font-size:12px;line-height:1.8;margin:12px 0}.calendar-save-error:empty{display:none}@media(max-width:600px){.calendar-auto-reserves>.button{width:100%;justify-content:center}.calendar-plan-row{align-items:flex-start}.exception-day small{font-size:8px}}

.daily-warmup-list .warmup-day-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.warmup-entry-details{min-width:0;overflow-wrap:anywhere}.warmup-order-controls{display:flex;flex:none;gap:5px}.warmup-order-button{border:1px solid var(--line);background:#fff;border-radius:6px;width:34px;height:34px;padding:0;color:var(--ink);font-size:17px;line-height:1}.warmup-order-button:hover:not(:disabled){background:#edf2e7;border-color:#9baa98}.warmup-order-button:disabled{opacity:.32}@media(max-width:650px){.warmup-order-button{width:44px;height:44px}}@media print{.warmup-order-controls{display:none}}

.teaching-piece>summary.card-head{flex-direction:row;align-items:center;margin-bottom:0;list-style:none}.teaching-piece>summary::-webkit-details-marker{display:none}.teaching-piece>summary.card-head::after{content:"";width:8px;height:8px;flex:none;margin:0 4px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(-45deg)}.teaching-piece[open]>summary.card-head::after{transform:rotate(45deg)}.teaching-piece>summary:focus-visible{outline:3px solid #cfaa60;outline-offset:4px}

.agenda-default-time{flex-basis:100%;font-size:13px;color:#e2e9df}.agenda-default-time summary{cursor:pointer;min-height:32px;padding:6px 0}.agenda-default-time summary:focus-visible{outline:3px solid #e3bb71;outline-offset:3px}.agenda-default-time-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border:1px solid #527462;border-radius:7px}.agenda-settings .agenda-default-time-controls input{font:inherit;width:150px;height:38px;color:#173e33;background:#f4f4e8;border:1px solid #749487;border-radius:5px;padding:6px}.agenda-default-time-controls small,.agenda-time-status{flex-basis:100%;font-size:12px}.agenda-default-time-controls small{color:#c5d6cd}.agenda-time-status{color:#ffddba}.agenda-time-status:empty{display:none}
