:root{--tb-purple:#867cac;--tb-purple-deep:#6d6390;--tb-purple-tint:#ddd8ea;--tb-mint:#c2e5de;--tb-mint-ink:#2c6a5c;--tb-blush:#ecbab9;--tb-blush-ink:#9c4a48;--tb-yellow:#fff4c4;--tb-yellow-ink:#8a6d1a;--tb-blue:#accde0;--tb-ink:#2b2740;--tb-bg:#faf9fc;--tb-card:#fff;--tb-border:#e4e0ee;--tb-muted:#6b6680}*{box-sizing:border-box}body{margin:0;font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--tb-bg);color:var(--tb-ink)}a{color:var(--tb-purple)}.container{max-width:720px;margin:0 auto;padding:16px}.top-bar{background:var(--tb-purple);color:#fff;padding:16px;font-weight:700;display:flex;justify-content:space-between;align-items:center}.top-bar a{color:#fff;font-size:14px;font-weight:500;text-decoration:none}.card{background:var(--tb-card);border:1px solid var(--tb-border);border-radius:12px;padding:16px;margin-bottom:12px}a.card:hover{border-color:var(--tb-purple)}.badge{display:inline-block;background:var(--tb-mint);color:var(--tb-mint-ink);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.badge-blush{background:var(--tb-blush);color:var(--tb-blush-ink)}.badge-yellow{background:var(--tb-yellow);color:var(--tb-yellow-ink)}.badge-region-vic{background:var(--tb-purple-tint);color:var(--tb-purple-deep)}.badge-region-nsw{background:var(--tb-blue);color:#2c5878}.badge-rank-support{background:var(--tb-yellow);color:var(--tb-yellow-ink)}.badge-rank-independent{background:var(--tb-mint);color:var(--tb-mint-ink)}.badge-rank-lead{background:var(--tb-purple-tint);color:var(--tb-purple-deep)}.btn,button{font-family:inherit;font-weight:700;border:none;border-radius:999px;padding:12px 20px;font-size:15px;line-height:1.2;cursor:pointer;background:var(--tb-purple);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;text-align:center;transition:filter .12s ease}.btn:hover,button:hover{filter:brightness(.96)}button:disabled{background:#cfcbe0;cursor:not-allowed;filter:none}.btn.secondary,button.secondary{background:#fff;color:var(--tb-purple);border:1.5px solid var(--tb-purple)}.eyebrow{display:block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tb-purple);margin-bottom:4px}.tag{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--tb-border);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600;color:var(--tb-ink)}.icon{display:inline-block;vertical-align:-.15em;flex:none}.field{margin-bottom:18px}.field-label{display:block;font-weight:600;font-size:14px;margin-bottom:8px}.field input[type=text],.field textarea{display:block;width:100%;padding:12px;border-radius:8px;border:1px solid var(--tb-border);font-size:15px;font-family:inherit;background:#fff;color:var(--tb-ink)}.field textarea{min-height:120px;resize:vertical}.radio-row{display:flex;gap:20px}.radio-row label{display:flex;align-items:center;gap:6px;font-weight:500}.radio-row input[type=radio]{width:18px;height:18px;accent-color:var(--tb-purple)}.availability-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--tb-border);flex-wrap:wrap}.availability-row:last-child{border-bottom:none}.availability-day-label{display:flex;align-items:center;gap:8px;font-weight:600;min-width:90px}.availability-day-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--tb-purple)}.availability-time-inputs{display:flex;align-items:center;gap:6px}.availability-time-inputs input[type=time]{font-family:inherit;font-size:13px;padding:6px 8px;border-radius:8px;border:1px solid var(--tb-border);background:#fff;color:var(--tb-ink)}.warning-banner{background:var(--tb-yellow);border:1px solid #e8d98a;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.facilitator-list{display:grid;grid-gap:8px;gap:8px}.session-row{border-top:1px solid var(--tb-border);padding:10px 0}.session-row:first-child{border-top:none}.muted{color:#6b6680;font-size:13px}h1,h2,h3{font-family:Montserrat,sans-serif}.calendar-weekday-header{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px}.calendar-weekday-header span{background:var(--tb-purple);color:#fff;padding:6px 4px;text-align:center;font-weight:700;font-size:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:var(--tb-border);border:1px solid var(--tb-border);border-radius:0 0 12px 12px;overflow:hidden;margin-bottom:28px}.calendar-day-cell{background:var(--tb-card);min-height:96px;padding:5px;font-size:11.5px}.calendar-day-cell.empty{background:var(--tb-bg)}.calendar-day-number{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:3px}.calendar-day-number a{color:inherit;text-decoration:none;padding:1px 5px;margin:-1px -5px;border-radius:5px}.calendar-day-number a:hover{background:var(--tb-border)}.view-toggle{display:inline-flex;border:1.5px solid var(--tb-purple);border-radius:999px;overflow:hidden}.view-toggle a,.view-toggle span{padding:6px 16px;font-size:13px;font-weight:700;text-decoration:none;color:var(--tb-purple)}.view-toggle-active{background:var(--tb-purple);color:#fff!important}.calendar-day-badges{display:flex;align-items:center;gap:3px}.calendar-available-badge{display:inline-flex;align-items:center;gap:2px;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--tb-blue);color:#2c5878}.calendar-available-badge.none{background:var(--tb-border);color:var(--tb-muted)}.calendar-cap-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--tb-mint);color:var(--tb-mint-ink)}.calendar-cap-badge.over{background:var(--tb-blush);color:var(--tb-blush-ink)}.calendar-fill-track{height:3px;border-radius:999px;background:var(--tb-border);overflow:hidden;margin-bottom:5px}.calendar-fill-bar{height:100%;background:var(--tb-mint-ink);border-radius:999px}.calendar-fill-bar.over{background:var(--tb-blush-ink)}.calendar-shift-entry{display:block;background:var(--tb-mint);border-radius:6px;padding:2px 5px;margin-bottom:3px;line-height:1.35;color:inherit;text-decoration:none;cursor:pointer}.calendar-shift-entry:hover{filter:brightness(.96)}.calendar-shift-entry .time{display:inline-flex;align-items:center;gap:3px;font-weight:700}.calendar-shift-entry .school{display:block}.calendar-shift-entry .location{display:block;color:#55506b}.calendar-staffing-badge{display:inline-block;margin-left:5px;font-weight:700;font-size:10px;padding:0 5px;border-radius:999px;background:hsla(0,0%,100%,.6)}.calendar-staffing-badge.short{color:var(--tb-blush-ink)}.calendar-facilitator-names{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.facilitator-pill{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;line-height:1.5;white-space:nowrap}:where(.facilitator-pill){background:var(--tb-border);color:var(--tb-muted)}.calendar-hold-entry{display:block;background:var(--tb-yellow);border:1px dashed var(--tb-yellow-ink);border-radius:6px;padding:2px 5px;margin-bottom:3px;line-height:1.35}.calendar-hold-entry .time{display:inline-flex;align-items:center;gap:3px;font-weight:700;margin-left:4px}.calendar-hold-entry .school{display:block}.calendar-hold-entry .location{display:block;color:#6b5c1f}.calendar-hold-label{display:inline-block;font-weight:700;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--tb-yellow-ink)}.calendar-check-panel{margin:16px 0 24px;border:1px solid var(--tb-border);border-radius:12px;background:var(--tb-card);overflow:hidden}.calendar-check-panel summary{cursor:pointer;list-style:none;padding:12px 16px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px;color:var(--tb-purple-deep)}.calendar-check-panel summary::-webkit-details-marker{display:none}.calendar-check-panel[open] summary{border-bottom:1px solid var(--tb-border)}.calendar-check-panel[open] summary .icon{transform:rotate(90deg)}.calendar-check-panel .action-body{padding:16px}.calendar-summary-strip{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.calendar-summary-stat{flex:1 1;min-width:140px;background:var(--tb-card);border:1px solid var(--tb-border);border-radius:12px;padding:10px 14px}.calendar-summary-stat strong{display:block;font-size:22px;line-height:1.1}.calendar-summary-stat strong.over{color:var(--tb-blush-ink)}.calendar-summary-stat strong.warn{color:var(--tb-yellow-ink)}.calendar-summary-stat span{font-size:12px;color:var(--tb-muted)}.workshop-content-group{padding:12px 0;border-top:1px solid var(--tb-border)}.workshop-content-group:first-child{border-top:none;padding-top:0}.workshop-content-title{margin-bottom:8px}.workshop-content-links{display:flex;flex-direction:column;gap:6px}.section-heading{display:flex;align-items:center;gap:7px;margin:0 0 10px;color:var(--tb-purple-deep)}.shift-detail-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:13.5px;font-weight:600;color:var(--tb-muted);margin-bottom:8px}.shift-detail-address,.shift-detail-meta span{display:inline-flex;align-items:center;gap:5px}.shift-detail-address{font-size:13.5px;text-decoration:none}.shift-detail-travel-pay{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--tb-mint-ink);margin-top:6px}.shift-card-link{display:block;text-decoration:none;color:inherit}.shift-card{background:var(--tb-card);border:1px solid var(--tb-border);border-radius:16px;padding:14px 16px;transition:border-color .12s ease,transform .12s ease}.shift-card-link:active .shift-card{transform:scale(.99)}.shift-card.active{background:var(--tb-mint);border-color:transparent}.shift-card.done{opacity:.65}.shift-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.shift-date-badge{font-size:12px;font-weight:700;color:var(--tb-purple-deep);background:var(--tb-border);border-radius:999px;padding:2px 10px}.shift-card.active .shift-date-badge{background:hsla(0,0%,100%,.65)}.shift-time{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--tb-muted)}.shift-school{display:block;font-size:16px;margin-bottom:2px}.shift-location{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--tb-muted)}.shift-card .badge{display:inline-flex;align-items:center;gap:4px}.session-row:target{background:var(--tb-yellow);border-radius:8px;padding-left:8px;padding-right:8px;margin-left:-8px;margin-right:-8px}.roster-shift{border:1px solid var(--tb-border);border-radius:12px;padding:14px 16px;margin:12px 0;background:var(--tb-bg)}.roster-shift:target{border-color:var(--tb-purple);box-shadow:0 0 0 2px var(--tb-purple-tint)}.roster-shift-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-weight:700;font-size:15px;margin-bottom:4px}.roster-shift-header .time{color:var(--tb-purple-deep)}.roster-shift-header .time,.roster-shift-header>span{display:inline-flex;align-items:center;gap:5px}.roster-section-label{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--tb-muted);margin:14px 0 6px}.roster-workshop-row{padding:8px 0;border-top:1px solid var(--tb-border);font-size:13.5px}.roster-workshop-row:first-child{border-top:none}.roster-workshop-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;font-size:12.5px;color:var(--tb-purple-deep);margin-top:3px}.roster-workshop-contact strong{color:var(--tb-ink)}.workshop-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;font-weight:700;font-size:14px;margin:2px 0}.workshop-pill-primary{background:var(--tb-mint);color:var(--tb-mint-ink)}.workshop-pill-secondary{background:var(--tb-blush);color:var(--tb-blush-ink)}.workshop-pill-other{background:var(--tb-border);color:var(--tb-ink)}.roster-workshop-facilitators{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:5px}.roster-assignment-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;font-size:13.5px}.roster-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.roster-actions details{flex:none}.roster-actions summary{cursor:pointer;list-style:none;padding:6px 12px;border:1px solid var(--tb-border);border-radius:999px;font-size:12.5px;font-weight:600;color:var(--tb-purple-deep);background:var(--tb-card);display:inline-flex;align-items:center;gap:4px}.roster-actions summary::-webkit-details-marker{display:none}.roster-actions summary:hover{background:var(--tb-bg)}.roster-actions details[open] summary{background:var(--tb-purple);color:#fff;border-color:var(--tb-purple)}.roster-actions details[open] summary .icon{transform:rotate(90deg)}.roster-actions .action-body{margin-top:8px;padding:12px;background:var(--tb-card);border:1px solid var(--tb-border);border-radius:8px}