:root{--ink:#183340;--muted:#637981;--brand:#087fa3;--pale:#e7f4f5;--line:#dce7ea;--bs-primary:#087fa3;--bs-primary-rgb:8,127,163;--bs-body-color:#183340;--bs-body-font-family:'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:#f5f8f9;color:var(--ink);font-family:'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--brand)}button,a,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c47720;outline-offset:3px}.skip-link{position:absolute;top:-80px;background:white;padding:12px;z-index:2000}.skip-link:focus{top:0}.app-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:18px 30px;gap:16px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:23px;font-weight:750;letter-spacing:-.8px}.brand img{width:48px;height:48px;object-fit:contain}.brand small{display:block;font-size:9px;letter-spacing:1.5px;font-weight:600;color:var(--muted);margin-top:3px}.user-menu{display:flex;align-items:center;gap:10px;background:white;border:0;border-radius:12px;min-height:44px;color:var(--ink);font-size:14px}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--pale);font-weight:700;color:var(--brand)}.dropdown-menu{padding:8px;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 35px #18334014}.dropdown-item{padding:12px;border-radius:8px}.app-nav{max-width:1220px;margin:auto;display:flex;gap:26px;padding:0 8px;border-bottom:1px solid var(--line)}.app-nav a{display:flex;align-items:center;gap:8px;min-height:57px;text-decoration:none;color:var(--muted);font-size:14px;font-weight:600;border-bottom:3px solid transparent}.app-nav a[aria-current=page]{color:var(--brand);border-color:var(--brand)}.content-container{max-width:1240px;padding:24px 20px 35px;margin:auto}.demo-label{display:flex;align-items:center;gap:7px;color:#657d83;font-size:11px;margin-bottom:22px}.demo-label span{width:6px;height:6px;background:#1b987f;border-radius:50%}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:750;color:var(--brand);margin:0 0 10px}h1{font-weight:750;font-size:clamp(27px,3vw,38px);letter-spacing:-1.3px;line-height:1.15;margin-bottom:12px}.page-heading p:not(.eyebrow){color:var(--muted);font-size:14px;margin:0}.btn{min-height:44px;padding:11px 17px;font-size:14px;font-weight:600;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{--bs-btn-bg:#087fa3;--bs-btn-border-color:#087fa3;--bs-btn-hover-bg:#086981;--bs-btn-hover-border-color:#086981;--bs-btn-active-bg:#065d75;--bs-btn-active-border-color:#065d75;--bs-btn-disabled-bg:#7897a0;--bs-btn-disabled-border-color:#7897a0}.btn-outline-primary{--bs-btn-color:#087fa3;--bs-btn-border-color:#aacdd7;--bs-btn-hover-bg:#087fa3;--bs-btn-hover-border-color:#087fa3}.btn-light{background:#edf3f5;border:1px solid #edf3f5;color:var(--ink)}.surface{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 18px #18334003}.agenda-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;align-items:start}.agenda-main{min-width:0;overflow:hidden}.agenda-filters{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}.room-field{width:240px;max-width:100%}.room-field label{font-size:10px;letter-spacing:1.3px;font-weight:750;display:block;margin-bottom:8px;color:var(--muted)}.form-select,.form-control{min-height:46px;font-size:16px;border:1px solid #cddde2;border-radius:9px;color:var(--ink)}.form-label{font-size:13px;font-weight:650;margin-bottom:7px}.legend{display:flex;gap:16px;font-size:11px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}.dot{width:8px;height:8px;border-radius:3px;display:inline-block}.lesson{background:#6870a4}.booking{background:#168c9c}.agenda-navigation{padding:20px 22px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.agenda-navigation h2{margin:0;font-size:17px;letter-spacing:-.3px;font-weight:700}.date-controls{display:flex;align-items:center;gap:3px}.date-controls .btn{font-size:12px;padding:9px 13px}.icon-button{width:44px;height:44px;background:white;border:1px solid var(--line);border-radius:10px;color:var(--ink)}.view-switch{display:flex;background:#eff4f5;padding:4px;border-radius:10px}.view-switch button{border:0;background:transparent;color:var(--muted);padding:8px 10px;font-size:12px;min-height:36px;border-radius:7px}.view-switch button[aria-pressed=true]{background:white;color:var(--brand);font-weight:700;box-shadow:0 2px 5px #1833400a}.jump-date{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);padding:0 24px 17px}.jump-date input{border:0;background:#f5f8f9;padding:7px;border-radius:7px;color:var(--ink);font-size:13px;min-height:36px}.calendar-status{padding:12px 24px;color:var(--brand);font-size:13px}#calendar{padding:0 18px 16px;--fc-border-color:#e6edef;--fc-today-bg-color:#f0f8f9;--fc-page-bg-color:white;--fc-list-event-hover-bg-color:#f3f9fa}.fc{font-size:12px}.fc a{color:var(--muted);text-decoration:none}.fc .fc-col-header-cell-cushion{padding:13px 4px}.fc-theme-standard .fc-scrollgrid{border-radius:8px}.fc-timegrid-slot{height:30px}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{font-size:10px;color:var(--muted)}.fc .fc-event{border:0;border-radius:5px;cursor:pointer}.fc .fc-timegrid-event{padding:3px}.fc .fc-event-title{font-weight:600}.fc .fc-list{border:0}.fc .fc-list-day-cushion{background:#f1f6f7;border-radius:8px;padding:10px 14px}.fc .fc-list-event td{padding:20px 12px;border-color:var(--line)}.fc .fc-list-event-time{font-weight:650;color:var(--ink);white-space:nowrap}.fc .fc-list-event-title{font-size:14px}.fc .fc-list-empty{background:#f7fafb;min-height:220px;border-radius:12px;color:var(--muted)}.fc .fc-list-event-dot{border-radius:3px}.calendar-footnote{padding:16px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.reserve-tip{background:#e5f1f3;border:1px solid #d4e6e9;border-radius:18px;padding:24px;margin-bottom:20px}.tip-icon{width:44px;height:44px;background:white;border-radius:13px;display:grid;place-items:center;color:var(--brand);font-size:21px;margin-bottom:24px}.reserve-tip h2{font-size:23px;font-weight:700;letter-spacing:-.6px;max-width:180px;line-height:1.2;margin-bottom:12px}.reserve-tip p{font-size:13px;color:#54717b;line-height:1.7;margin-bottom:20px}.reserve-tip .btn{font-size:12px;background:#ffffff80}.notices{padding:23px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-title h2{font-size:14px;font-weight:700;margin:0}.section-title h2 i{margin-right:6px;color:var(--brand)}.section-title>span{font-size:11px;background:#edf3f5;border-radius:20px;padding:3px 7px}.notice+.notice{border-top:1px solid var(--line);padding-top:17px;margin-top:18px}.notice time{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.notice h3{font-size:13px;font-weight:700;margin:7px 0}.notice p{font-size:12px;line-height:1.7;color:var(--muted);margin:0;overflow-wrap:anywhere}.notice img{width:100%;border-radius:9px}.app-footer{padding:20px;text-align:center;font-size:11px;color:#7f9198}.mobile-reserve{display:none}.modal-content{border:1px solid var(--line);border-radius:19px;overflow:hidden}.modal-header,.modal-footer{padding:20px 24px;border-color:var(--line)}.modal-title{font-size:23px;font-weight:700;letter-spacing:-.5px}.modal-body{padding:22px 24px}.modal-dialog-scrollable .modal-content>form{display:flex;flex-direction:column;max-height:100%;min-height:0;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-header,.modal-footer{flex-shrink:0}.field-help{font-size:12px;line-height:1.6;color:var(--muted);margin-bottom:18px}.event-kind{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--brand);letter-spacing:1px;display:block;margin-bottom:10px}#event-name{font-size:25px;letter-spacing:-.7px;font-weight:700;margin-bottom:25px}.event-details{display:grid;grid-template-columns:80px 1fr;gap:15px;font-size:14px}.event-details dt{color:var(--muted);font-weight:400}.event-details dd{margin:0;font-weight:600}.login-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;max-width:970px;margin:55px auto}.login-intro h1{font-size:46px;margin:18px 0;line-height:1.15}.login-intro>p:not(.eyebrow){line-height:1.8;color:var(--muted)}.login-card{padding:38px}.login-card h2{font-size:25px;font-weight:700;letter-spacing:-.6px}.login-card>p{font-size:14px;margin-bottom:30px}.login-card a{font-size:13px}.dance-lines{display:flex;gap:13px;height:140px;margin-top:30px;align-items:center;overflow:hidden}.dance-lines span{width:72px;height:125px;background:#d3e9ed;border-radius:70% 30% 65% 35%;transform:rotate(30deg)}.dance-lines span:nth-child(2){height:100px;background:#bad9e0}.dance-lines span:nth-child(3){height:76px;background:#90c4d0}.table{font-size:14px}.card{box-shadow:none!important;border:1px solid var(--line)!important}.text-info{color:var(--brand)!important}
@media(max-width:1050px){.agenda-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.agenda-navigation h2{order:-1;width:100%}.content-container{padding:22px 18px}.app-nav{margin:0 18px}.reserve-tip{padding:20px}.legend{gap:9px}}
@media(max-width:767px){.header-inner{padding:14px 18px}.brand{font-size:20px;gap:8px}.brand img{width:37px;height:37px}.brand small{font-size:7px;letter-spacing:1px}.user-name{display:none}.app-nav{gap:0;justify-content:space-between;margin:0;padding:0 18px;background:white}.app-nav a{font-size:12px;min-height:50px;gap:6px}.content-container{padding:18px 14px 90px}.demo-label{font-size:10px;margin-bottom:22px}.page-heading{margin-bottom:22px}.page-heading h1{font-size:29px;letter-spacing:-1px;margin-bottom:10px}.page-heading p:not(.eyebrow){font-size:13px;line-height:1.6;max-width:320px}.desktop-reserve{display:none}.agenda-layout{display:flex;flex-direction:column;gap:22px}.agenda-main,.agenda-aside{width:100%}.agenda-filters{padding:18px 16px;gap:12px}.room-field{width:180px}.room-field .form-select{font-size:15px}.legend{flex-direction:column;font-size:10px;gap:7px}.agenda-navigation{padding:16px 14px 10px;gap:12px}.agenda-navigation h2{order:-1;width:100%;font-size:19px;text-transform:capitalize}.view-switch button{min-height:38px;font-size:12px;padding:8px 10px}.jump-date{padding:0 16px 15px}.jump-date input{font-size:14px;min-height:40px}.reserve-tip{display:none}#calendar{padding:0 8px 12px}.fc .fc-list-event td{padding:18px 7px}.fc .fc-list-event-time{font-size:11px}.fc .fc-list-event-title{font-size:13px}.fc .fc-list-event-graphic{padding-left:1px;padding-right:1px}.fc .fc-list-day-cushion{font-size:11px}.calendar-footnote{font-size:10px;padding:15px}.mobile-reserve{display:flex;position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:20px;right:20px;z-index:1020;min-height:52px;box-shadow:0 6px 24px #07526c40;border-radius:14px;font-size:15px}.app-footer{padding-bottom:90px}.notices{padding:21px}.notice p{font-size:13px}.modal-dialog{margin:12px}.modal-header,.modal-body,.modal-footer{padding:20px}.modal-title{font-size:23px}.modal-footer{padding-bottom:max(20px,env(safe-area-inset-bottom));background:white}.modal-footer .btn-primary{flex:1}.login-layout{display:flex;flex-direction:column;gap:24px;margin:15px auto;max-width:430px;align-items:stretch}.login-intro h1{font-size:32px;margin:10px 0}.login-intro>p:not(.eyebrow),.dance-lines{display:none}.login-card{padding:26px 22px}.login-card h2{font-size:23px}.content-container>.container{padding:0!important}.content-container>.container>.d-flex,.content-container>.d-flex{flex-wrap:wrap;gap:14px}.content-container h3{font-size:23px}.table-responsive{overflow:visible;box-shadow:none!important}.table-responsive table,.table-responsive tbody{display:block;background:transparent}.table-responsive thead{display:none}.table-responsive tbody tr{display:block;background:white;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:12px}.table-responsive td{display:flex;justify-content:space-between;gap:12px;text-align:right;border:0!important;padding:9px 4px;flex-wrap:wrap}.table-responsive td:before{content:attr(data-label);font-weight:600;color:var(--muted);text-align:left}.table-responsive td[colspan]:before{display:none}.table-responsive td form{display:inline-block}.list-group-item{gap:10px}.list-group-item>div:first-child{min-width:0;overflow-wrap:anywhere}.list-group-item .btn{padding:9px}.fc-header-toolbar{flex-wrap:wrap;gap:10px}.fc-toolbar-title{font-size:18px!important}.fc .fc-button{min-height:44px}.p-4{padding:20px!important}}
@media(max-width:359px){.brand small{display:none}.agenda-navigation{padding-left:10px;padding-right:10px}.date-controls .icon-button{width:38px}.view-switch button{padding:8px}.app-nav a{font-size:11px}.modal-body{padding:18px 14px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:575px){.modal-dialog.modal-fullscreen-sm-down{margin:0;width:100%;max-width:none;height:100%;}.modal-fullscreen-sm-down .modal-content{border:0;border-radius:0}.modal-fullscreen-sm-down .modal-body{flex:1}.modal-fullscreen-sm-down .modal-content>form{height:100%}}

.free-windows{background:#f3f8f9;border:1px solid var(--line);padding:15px;border-radius:12px;margin:16px 0 22px}.free-windows h3{font-size:13px;font-weight:700}.free-windows .field-help{font-size:11px;margin-bottom:10px}#free-ranges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.free-range{background:white;color:#356672;border:1px solid #d8e9ed;border-radius:7px;padding:7px 9px;font-size:12px;font-weight:600}.event-details{grid-template-columns:100px 1fr}.event-details dd{overflow-wrap:anywhere}
.grade-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.grade-overview>div{display:flex;align-items:center;gap:16px;background:white;border:1px solid var(--line);border-radius:14px;padding:20px 24px}.overview-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:#eaf4f6;color:var(--brand);font-size:22px}.grade-overview strong{font-size:26px;line-height:1.2;font-weight:700;display:block;letter-spacing:-.7px}.grade-overview div>div>span{font-size:12px;color:var(--muted)}.grade-workspace{overflow:hidden}.grade-filterbar{display:flex;align-items:end;gap:18px;padding:24px;border-bottom:1px solid var(--line)}.grade-filterbar>div{width:260px;max-width:100%}.grade-filterbar>div>label{display:block;font-size:10px;font-weight:750;letter-spacing:1.2px;color:var(--muted);margin-bottom:8px}.inactive-toggle{display:flex;gap:8px;align-items:center;margin:0 0 13px auto;font-size:12px;color:var(--muted);white-space:nowrap}.inactive-toggle input{width:17px;height:17px;accent-color:var(--brand)}.grade-days{display:grid;grid-template-columns:1.4fr repeat(7,1fr);gap:8px;padding:20px 24px;background:#f9fbfc;border-bottom:1px solid var(--line)}.grade-days button{border:1px solid transparent;border-radius:11px;min-height:72px;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:600}.grade-days button>span{font-size:11px;background:#e9f0f2;padding:2px 8px;border-radius:20px;font-weight:500}.grade-days button[aria-pressed=true]{background:white;color:var(--brand);border-color:#bddbe2;box-shadow:0 3px 8px #18334006}.grade-days button[aria-pressed=true]>span{background:var(--brand);color:white}.grade-list-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 26px 22px}.grade-list-heading .eyebrow{font-size:9px;margin-bottom:6px}.grade-list-heading h2{font-size:25px;font-weight:700;letter-spacing:-.65px;margin:0}.grade-list-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}.grade-results{padding:0 26px 26px}.grade-day-group+.grade-day-group{margin-top:30px}.grade-group-title{font-size:15px;color:var(--muted);font-weight:650;margin:0 0 14px}.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.class-card{border:1px solid var(--line);border-top:3px solid #72b6c5;border-radius:13px;padding:18px 18px 0;background:white;min-width:0}.class-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:19px}.class-clock{display:flex;align-items:center;gap:7px;font-size:18px;font-variant-numeric:tabular-nums}.class-clock strong{font-weight:700;letter-spacing:-.6px}.class-clock>span{font-size:12px;color:#95a8af}.class-status{background:#ecf6f0;color:#33714d;font-size:9px;border-radius:20px;padding:4px 7px;white-space:nowrap}.class-status.inactive{color:#7b7370;background:#f1efed}.class-name{font-size:16px;line-height:1.4;font-weight:700;margin:0 0 9px;overflow-wrap:anywhere;letter-spacing:-.2px}.class-teacher{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-bottom:22px}.class-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #e9eff1;padding:8px 0}.class-room{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);min-width:0}.class-edit{border:0;background:transparent;color:var(--brand);font-size:12px;font-weight:650;min-height:44px;padding:7px 9px;border-radius:8px}.class-edit:hover{background:var(--pale)}.class-card.is-inactive{background:#fafafa;border-top-color:#bbb}.grade-bottom-note{font-size:12px;color:var(--muted);padding:18px 26px;border-top:1px solid var(--line);display:flex;gap:9px;align-items:center}.grade-empty{text-align:center;padding:45px 20px 55px}.grade-empty>i{display:block;font-size:36px;color:#78aebd;margin-bottom:18px}.grade-empty h3{font-size:22px;letter-spacing:-.5px;font-weight:700}.grade-empty p{font-size:13px;color:var(--muted);max-width:330px;margin:12px auto 23px;line-height:1.7}.weekday-picker{display:flex;gap:6px;flex-wrap:wrap}.weekday-picker label{position:relative}.weekday-picker input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.weekday-picker span{display:grid;place-items:center;min-width:42px;min-height:44px;border:1px solid var(--line);border-radius:9px;font-size:12px;color:var(--muted);font-weight:600}.weekday-picker input:checked+span{background:var(--brand);border-color:var(--brand);color:white}.weekday-picker input:focus-visible+span{outline:3px solid #c47720;outline-offset:2px}.class-manage{border-top:1px solid var(--line);margin-top:25px;padding-top:18px}.class-manage .btn{font-size:12px}.alternative-group{background:#f4f8f9;padding:12px;border-radius:10px;margin-bottom:16px}.alternative-group .btn{margin:3px;font-size:12px}
@media(max-width:1100px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-days{gap:3px;padding:16px}.grade-days button{font-size:11px}.grade-overview>div{padding:18px;gap:12px}}
@media(max-width:767px){.grade-heading{align-items:start;gap:12px;flex-wrap:wrap}.grade-heading h1{font-size:29px}.grade-heading>.btn{width:100%;margin-top:2px}.grade-overview{gap:8px;margin-bottom:20px}.grade-overview>div{padding:13px 10px;display:block}.overview-icon{width:30px;height:30px;font-size:16px;border-radius:8px;margin-bottom:10px}.grade-overview strong{font-size:23px}.grade-overview div>div>span{font-size:10px;line-height:1.3;display:block}.grade-filterbar{padding:18px 16px;display:grid;grid-template-columns:1fr;gap:14px}.grade-filterbar>div{width:100%;min-width:0}.grade-filterbar .form-select{font-size:15px}.inactive-toggle{margin:0;min-height:32px;font-size:12px}.grade-days{display:flex;overflow-x:auto;gap:6px;padding:12px;scrollbar-width:thin;scroll-padding:12px}.grade-days button{flex:0 0 66px;font-size:11px;min-height:68px}.grade-days button:first-child{flex-basis:98px}.grade-list-heading{padding:23px 18px 18px;gap:12px}.grade-list-heading h2{font-size:24px}.grade-list-heading>span{font-size:11px}.grade-results{padding:0 16px 20px}.class-grid{grid-template-columns:1fr;gap:13px}.class-card{padding:18px 18px 0}.class-clock{font-size:21px}.class-topline{margin-bottom:15px}.class-name{font-size:17px}.class-teacher{font-size:13px;margin-bottom:17px}.class-room{font-size:11px}.class-status{font-size:10px}.grade-bottom-note{font-size:11px;line-height:1.7;padding:16px 18px;align-items:start}.grade-bottom-note i{margin-top:3px}.grade-group-title{font-size:14px}.grade-empty{padding:30px 20px 40px}}
.production-tools{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:25px;flex-wrap:wrap}.subtle-link{font-size:12px;color:var(--muted)}.production-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.production-card{padding:24px;min-width:0}.production-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:10px}.production-symbol{display:grid;place-items:center;background:#ecf1fc;color:#6273a7;border-radius:14px;width:48px;height:48px;font-size:25px}.production-card h2{font-size:22px;letter-spacing:-.6px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.production-card h2 a{text-decoration:none;color:var(--ink)}.production-card>p{font-size:13px;line-height:1.7;color:var(--muted);margin:14px 0;overflow-wrap:anywhere}.production-dates{font-size:11px;line-height:1.6;color:var(--muted)}.production-dates>i{margin-right:8px}.production-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:17px;margin-top:23px}.production-card-footer>span{font-size:11px;color:var(--muted)}.production-card-footer .icon-button{display:grid;place-items:center;text-decoration:none;flex-shrink:0}.production-card-footer .btn{font-size:12px}.back-link{display:inline-flex;gap:8px;align-items:center;font-size:12px;margin-bottom:24px;text-decoration:none;color:var(--muted);min-height:30px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.section-heading h2{font-size:23px;letter-spacing:-.5px;font-weight:700;margin:0}.section-heading>span{font-size:12px;color:var(--muted)}.spaced{margin-top:35px}.empty-production{padding:45px 30px;text-align:center;grid-column:1/-1}.empty-production>i{font-size:36px;display:block;color:#83acb6;margin-bottom:20px}.empty-production h2{font-size:25px;font-weight:700}.empty-production p,.empty-copy{font-size:14px;color:var(--muted);line-height:1.7}.empty-production p{max-width:430px;margin:10px auto}.empty-production.compact{padding:28px}.empty-production.compact i{font-size:26px;margin-bottom:10px}.rehearsal-list{display:grid;gap:12px}.rehearsal-card{display:flex;align-items:center;gap:20px;padding:20px 24px}.rehearsal-date{min-width:52px;text-align:center;border-right:1px solid var(--line);padding-right:20px}.rehearsal-date strong{display:block;font-size:26px;font-weight:700;line-height:1.15}.rehearsal-date span{text-transform:uppercase;font-size:10px;color:var(--muted);letter-spacing:1px}.rehearsal-info{flex:1;min-width:0}.rehearsal-info h3{font-size:16px;margin:0 0 7px;font-weight:700}.rehearsal-info p{font-size:12px;color:var(--muted);margin:0}.rehearsal-info .schedule-warning{color:#896323;background:#fff5dd;padding:9px 12px;border-radius:8px;margin-top:10px;font-size:11px}.production-form{max-width:680px;padding:30px}.production-form-field{margin-bottom:22px}.production-form-field>label{font-size:13px;font-weight:650;display:block;margin-bottom:8px}.production-form-field input[type=checkbox]{width:18px;height:18px;margin-right:8px;accent-color:var(--brand)}.production-form-field #id_teachers{display:grid;gap:8px;background:#f6f9fa;border:1px solid var(--line);padding:15px;border-radius:10px}.production-form-field #id_teachers label{font-size:14px;min-height:35px;display:flex;align-items:center}.production-form-footer{display:flex;justify-content:end;gap:12px;padding-top:20px;border-top:1px solid var(--line)}.field-errors{color:#a13737;font-size:13px;margin-top:8px}.field-errors ul{padding-left:18px}.heading-actions{display:flex;gap:10px;flex-wrap:wrap}.production-note{border-left:3px solid #8fc3cf;background:#eaf4f6;padding:18px 20px;border-radius:0 12px 12px 0;font-size:14px;line-height:1.7;margin-bottom:25px}.roster-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.roster-section,.roster-add{padding:26px}.roster-add h2{font-size:24px;font-weight:700;letter-spacing:-.5px;margin-bottom:25px}.roster-section .section-heading{margin-bottom:10px}.student-row{display:flex;gap:12px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.student-info{min-width:0;flex:1}.student-info h3{font-size:15px;font-weight:650;margin:0 0 6px;overflow-wrap:anywhere}.student-info a{font-size:13px;text-decoration:none;color:var(--muted)}.student-row .avatar{flex-shrink:0}.student-row .icon-button{color:#927069}.existing-students{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:22px}.existing-students summary{font-size:13px;color:var(--brand);font-weight:600;cursor:pointer;min-height:30px}.existing-students form{margin-top:15px}.participant-search{display:flex;gap:12px;padding:18px;margin-bottom:25px}.student-choreographies{display:flex;flex-direction:column;gap:8px;margin:20px 0;font-size:12px;line-height:1.5}.student-choreographies a{background:#edf5f6;padding:9px;border-radius:8px;text-decoration:none}
@media(max-width:1050px){.production-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:767px){.app-nav{gap:15px;overflow-x:auto;justify-content:flex-start}.app-nav a{white-space:nowrap;font-size:11px;flex-shrink:0}.production-grid{grid-template-columns:1fr;gap:15px}.production-card{padding:22px}.page-heading{flex-wrap:wrap}.production-tools{gap:14px}.section-heading{flex-wrap:wrap;gap:8px}.section-heading h2{font-size:22px}.section-heading>span{font-size:11px}.rehearsal-card{gap:14px;padding:18px;flex-wrap:wrap}.rehearsal-date{min-width:46px;padding-right:12px}.rehearsal-info{flex-basis:calc(100% - 65px)}.rehearsal-info p{line-height:1.6}.rehearsal-card>.btn{margin-left:60px;font-size:12px}.production-form{padding:22px}.roster-layout{grid-template-columns:1fr;gap:18px}.roster-section,.roster-add{padding:22px}.heading-actions{width:100%}.heading-actions>.btn-primary{flex:1}.student-row .icon-button{width:40px}.back-link{font-size:11px}.participant-search{padding:14px;gap:8px}}
.management-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:24px}.management-tabs>button{border:0;background:transparent;min-height:54px;padding:0 3px;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px;font-weight:600;border-bottom:3px solid transparent}.management-tabs>button[aria-selected=true]{color:var(--brand);border-color:var(--brand)}.management-panel{overflow:hidden}.management-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px}.management-panel-heading h2{font-size:25px;font-weight:700;letter-spacing:-.7px;margin-bottom:8px}.management-panel-heading p{font-size:13px;color:var(--muted);margin:0}.team-filters{padding:0 28px 25px;display:flex;gap:15px}.search-field{position:relative;flex:1}.search-field>i{position:absolute;left:14px;top:14px;font-size:15px;color:var(--muted)}.search-field>input{padding-left:40px}.team-filters>.form-select{width:230px}.team-list{padding:0 28px}.team-row{display:flex;gap:17px;align-items:center;padding:22px 0;border-top:1px solid var(--line)}.team-row[hidden]{display:none}.team-row>.avatar{width:43px;height:43px;font-size:17px;flex-shrink:0}.team-person{flex:1;min-width:0}.team-person h3{font-size:16px;font-weight:650;margin:0 0 7px}.team-person p{font-size:12px;color:var(--muted);margin:0;overflow-wrap:anywhere}.team-labels{display:flex;flex-direction:column;gap:7px;align-items:start;margin-right:20px;min-width:110px}.role-badge{font-size:10px;color:#526b8d;background:#edf1f8;padding:5px 9px;border-radius:7px;font-weight:650;white-space:nowrap}.role-admin{background:#f0eef9;color:#6c5b96}.role-secretario{background:#fff3e2;color:#916823}.role-professor{background:#e8f4f1;color:#477969}.access-status{font-size:10px;color:#668676;display:flex;align-items:center;gap:5px}.access-status:before{content:'';width:5px;height:5px;background:#599174;border-radius:50%}.access-status.inactive{color:#9d7d73}.access-status.inactive:before{background:#b49186}.team-edit{font-size:12px}.notice-grid{padding:0 28px 28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.managed-notice{border:1px solid var(--line);border-radius:14px;padding:23px;min-width:0}.managed-notice-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.managed-notice-top time{font-size:11px;color:var(--muted)}.managed-notice h3{font-size:20px;font-weight:700;letter-spacing:-.4px;line-height:1.4;margin-bottom:14px;overflow-wrap:anywhere}.managed-notice>p{font-size:14px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere}.managed-notice>img{max-width:100%;border-radius:10px}.managed-notice-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.managed-notice-footer>span{font-size:11px;color:var(--muted)}.subtle-button{border:0;background:transparent;color:#947269;font-size:11px;min-height:35px}.access-toggle{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:650;min-height:44px}.access-toggle input{accent-color:var(--brand);width:19px;height:19px}
@media(max-width:767px){.management-tabs{gap:20px;margin-bottom:18px}.management-tabs>button{font-size:12px;gap:7px}.management-panel-heading{padding:22px 18px;flex-wrap:wrap;gap:16px}.management-panel-heading h2{font-size:23px}.management-panel-heading>.btn{width:100%}.team-filters{padding:0 18px 20px;flex-direction:column;gap:10px}.team-filters>.form-select{width:100%}.team-list{padding:0 18px}.team-row{flex-wrap:wrap;gap:12px;padding:20px 0}.team-person{flex-basis:calc(100% - 62px)}.team-person h3{font-size:15px}.team-labels{flex-direction:row;align-items:center;gap:10px;margin-right:auto;margin-left:55px;min-width:0;flex-wrap:wrap}.team-edit{padding:7px 10px;min-height:38px;font-size:11px}.notice-grid{grid-template-columns:1fr;padding:0 18px 20px}.managed-notice{padding:20px}.managed-notice h3{font-size:20px}.managed-notice-footer{flex-wrap:wrap}}
@media(max-width:767px){.grade-heading+.grade-overview .overview-icon{display:none}.grade-heading+.grade-overview>div{padding:12px 10px}.grade-filterbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.grade-filterbar .inactive-toggle{grid-column:1/-1;min-height:22px}.grade-days button{min-height:54px;gap:4px}.grade-list-heading .eyebrow{display:none}}
