body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.is-generating-pdf .field-blank{display:none!important;height:0!important;margin:0!important;padding:0!important;border-color:transparent!important}.is-generating-pdf .print\:hidden,.is-generating-pdf [class*="print:hidden"],.is-generating-pdf .no-pdf{display:none!important;height:0!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}.is-generating-pdf .pdf-only{display:block!important}.is-generating-pdf .shadow-lg,.is-generating-pdf .shadow-xl,.is-generating-pdf .shadow-sm{box-shadow:none!important}.kicker{font-size:10px;font-weight:800;letter-spacing:.11em;line-height:1.2;text-transform:uppercase}.bevel{border-bottom-width:3px;transition:transform .08s ease,border-bottom-width .08s ease}.bevel:active:not(:disabled){border-bottom-width:0;transform:translateY(3px)}.bevel:disabled{border-bottom-width:0;transform:translateY(3px)}.ble-console,.ble-console *,.ble-console *:before,.ble-console *:after{box-sizing:border-box}.ble-console{height:100%;min-height:0;background:var(--app-bg);color:var(--app-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--type-body-size);font-weight:var(--type-body-weight);line-height:var(--type-body-leading);-webkit-font-smoothing:antialiased;text-align:left}.ble-console button{font:inherit;cursor:pointer}.ble-console input,.ble-console textarea,.ble-console select{font:inherit}.ble-console .shell{display:grid;grid-template-columns:var(--s206) 1fr;height:100%}.ble-console .rail{background:var(--app-navy);display:flex;flex-direction:column;gap:var(--s4);padding:var(--s18) var(--s12)}.ble-console .rail-brand{padding:var(--s4) var(--s10) var(--s18)}.ble-console .rail-kicker{color:var(--app-green-on-navy);font-size:var(--type-kicker-size);font-weight:var(--type-kicker-weight);letter-spacing:var(--type-kicker-tracking);line-height:var(--type-kicker-leading);text-transform:uppercase}.ble-console .rail-title{color:var(--white);font-size:var(--type-sub-screen-title-size);font-weight:var(--type-sub-screen-title-weight);letter-spacing:var(--type-sub-screen-title-tracking);line-height:var(--type-sub-screen-title-leading);margin-top:var(--s3)}.ble-console .rail-who{color:#a9bee4;font-size:var(--type-caption-size);font-weight:var(--type-caption-weight);line-height:var(--type-caption-leading);margin-top:var(--s2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ble-console .rail-tab{align-items:center;background:transparent;border:0;border-radius:var(--s11);color:#b9cbe8;display:flex;font-size:var(--type-card-title-size);font-weight:var(--type-card-title-weight);gap:var(--s9);justify-content:space-between;line-height:var(--type-card-title-leading);padding:var(--s10) var(--s12);text-align:left;transition:background .12s ease,color .12s ease;width:100%}.ble-console .rail-tab:hover{background:#ffffff14;color:var(--white)}.ble-console .rail-tab[aria-current=page]{background:#ffffff24;color:var(--white)}.ble-console .rail-badge{background:var(--app-green-on-navy);border-radius:999px;color:var(--app-navy);font-size:var(--type-caption-size);font-variant-numeric:tabular-nums;font-weight:800;min-width:var(--s19);padding:var(--s1_5) var(--s6);text-align:center}.ble-console .rail-foot{display:flex;flex-direction:column;gap:var(--s6);margin-top:auto}.ble-console .rail-foot-button{background:#ffffff1a;border:0;border-radius:var(--s11);color:var(--white);font-size:var(--type-label-size);font-weight:var(--type-label-weight);padding:var(--s9) var(--s12);text-align:left}.ble-console .rail-foot-button:hover{background:#ffffff2e}.ble-console .page{background:var(--app-bg);overflow-y:auto;padding:var(--s20) var(--s24) var(--s48)}.ble-console .column{margin:0 auto;max-width:1100px}.ble-console .columns{align-items:start;display:grid;gap:var(--s20);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:1100px){.ble-console .columns{grid-template-columns:minmax(0,1fr)}.ble-console .shell{grid-template-columns:var(--s132) 1fr}}.ble-console .card{background:var(--app-card);border:var(--s1) solid var(--app-line);border-radius:var(--s16);box-shadow:0 var(--s4) var(--s14) #0a2a660d;padding:var(--s13)}.ble-console .card+.card{margin-top:var(--s10)}.ble-console button.card{display:block;text-align:left;width:100%}.ble-console button.card:hover{background:var(--app-sunken)}.ble-console .card-note{background:var(--app-book-blue);border-color:var(--app-book-blue-deep)}.ble-console .section-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--s10);margin-top:var(--s4)}.ble-console .section-title-row{align-items:center;display:flex;gap:var(--s7)}.ble-console .section-title{color:var(--app-navy);font-size:var(--type-section-title-size);font-weight:var(--type-section-title-weight);line-height:var(--type-section-title-leading);margin:0}.ble-console .count-chip{background:var(--app-sunken);border-radius:999px;color:var(--app-muted);font-size:var(--type-caption-size);font-variant-numeric:tabular-nums;font-weight:700;min-width:var(--s19);padding:var(--s1_5) var(--s6);text-align:center}.ble-console .head-action{background:transparent;border:var(--s1) solid var(--app-line-strong);border-radius:999px;color:var(--app-navy);font-size:var(--type-label-size);font-weight:var(--type-label-weight);padding:var(--s5) var(--s11)}.ble-console .head-action:hover{background:var(--app-sunken)}.ble-console .group-label{margin-bottom:var(--s9);margin-top:var(--s16)}.ble-console .group-label-text{color:var(--app-navy);font-size:var(--type-kicker-size);font-weight:var(--type-kicker-weight);letter-spacing:var(--type-kicker-tracking);line-height:var(--type-kicker-leading);text-transform:uppercase}.ble-console .group-label-green .group-label-text{color:var(--app-green-ink)}.ble-console .group-rule{background:#b9cfe9;border-radius:999px;height:var(--s2_5);margin-top:var(--s6);width:var(--s24)}.ble-console .group-label-green .group-rule{background:#8fcfaa}.ble-console .btn{align-items:center;border:0;border-radius:var(--s11);display:inline-flex;font-size:var(--type-card-title-size);font-weight:var(--type-card-title-weight);justify-content:center;line-height:var(--type-card-title-leading);min-height:var(--s40);padding:0 var(--s15);white-space:nowrap}.ble-console .btn-small{border-radius:var(--s9);font-size:var(--type-label-size);font-weight:var(--type-label-weight);min-height:var(--s30);padding:0 var(--s11)}.ble-console .btn-full{width:100%}.ble-console .btn:hover{opacity:.86}.ble-console .btn:disabled{cursor:default;opacity:.45}.ble-console .btn-primary{background:var(--app-navy);color:var(--white)}.ble-console .btn-success{background:var(--app-green);color:var(--white)}.ble-console .btn-quiet{background:var(--app-sunken);border:var(--s1) solid var(--app-line);color:var(--app-navy)}.ble-console .btn-danger{background:var(--danger-soft);border:var(--s1) solid #ebcfcb;color:var(--danger)}.ble-console .btn-row{display:flex;gap:var(--s8);margin-top:var(--s12)}.ble-console .btn-row>*{flex:1}.ble-console .field{margin-bottom:var(--s12)}.ble-console .field-label{color:var(--app-muted);display:block;font-size:var(--type-kicker-size);font-weight:var(--type-kicker-weight);letter-spacing:var(--type-kicker-tracking);line-height:var(--type-kicker-leading);margin-bottom:var(--s6);text-transform:uppercase}.ble-console .field-input{background:var(--app-sunken);border:var(--s1) solid var(--app-line);border-radius:var(--s11);color:var(--app-ink);display:block;font-size:var(--type-body-size);font-weight:var(--type-body-weight);line-height:var(--type-body-leading);padding:var(--s10) var(--s12);width:100%}.ble-console .field-input:focus{border-color:var(--app-blue);outline:none}.ble-console textarea.field-input{min-height:var(--s74);resize:vertical}.ble-console .field-hint{color:var(--app-faint);font-size:var(--type-caption-size);line-height:var(--type-caption-leading);margin-top:var(--s5)}.ble-console .field-warning{color:var(--danger);font-size:var(--type-caption-size);line-height:var(--type-caption-leading);margin-top:var(--s5)}.ble-console .field-pair{display:grid;gap:var(--s10);grid-template-columns:1fr 1fr}.ble-console .choice-row{background:var(--app-sunken);border-radius:var(--s11);display:flex;gap:var(--s3);padding:var(--s3)}.ble-console .choice{background:transparent;border:0;border-radius:var(--s9);color:var(--app-muted);flex:1;font-size:var(--type-label-size);font-weight:var(--type-label-weight);padding:var(--s8) var(--s4)}.ble-console .choice[aria-pressed=true]{background:var(--app-card);box-shadow:0 var(--s1) var(--s3) #0a2a661a;color:var(--app-navy)}.ble-console .chip-wrap{display:flex;flex-wrap:wrap;gap:var(--s7)}.ble-console .chip{align-items:center;background:transparent;border:var(--s1) solid var(--app-line-strong);border-radius:999px;color:var(--app-body);display:inline-flex;font-size:var(--type-label-size);font-weight:var(--type-label-weight);gap:var(--s5);padding:var(--s7) var(--s12)}.ble-console .chip[aria-pressed=true]{background:var(--app-navy);border-color:var(--app-navy);color:var(--white)}.ble-console .search{align-items:center;background:var(--app-sunken);border:var(--s1) solid var(--app-line);border-radius:var(--s11);display:flex;gap:var(--s8);padding:0 var(--s11)}.ble-console .search input{background:transparent;border:0;color:var(--app-ink);flex:1;font-size:var(--type-body-size);font-weight:var(--type-body-weight);outline:none;padding:var(--s9) 0}.ble-console .pill{align-self:flex-start;border-radius:999px;display:inline-block;font-size:var(--type-caption-size);font-weight:700;line-height:var(--type-caption-leading);padding:var(--s2_5) var(--s8);white-space:nowrap}.ble-console .pill-green{background:var(--app-green-soft);color:var(--app-green-ink)}.ble-console .pill-navy{background:var(--app-book-blue);color:var(--app-blue)}.ble-console .pill-amber{background:var(--app-streak-soft);color:var(--app-streak)}.ble-console .pill-danger{background:var(--danger-soft);color:var(--danger)}.ble-console .pill-grey{background:var(--app-sunken);color:var(--app-muted)}.ble-console .stats{border-bottom:var(--s1) solid var(--app-line);display:flex;gap:var(--s10);padding-bottom:var(--s16);padding-top:var(--s12)}.ble-console .stat{flex:1}.ble-console .stat-value{color:var(--app-navy);font-size:var(--type-screen-title-size);font-variant-numeric:tabular-nums;font-weight:var(--type-screen-title-weight);letter-spacing:var(--type-screen-title-tracking);line-height:var(--type-screen-title-leading)}.ble-console .stat-value-green{color:var(--app-green-ink)}.ble-console .stat-value-amber{color:var(--app-streak)}.ble-console .stat-label{color:var(--app-muted);font-size:var(--type-caption-size);line-height:var(--type-caption-leading);margin-top:var(--s2)}.ble-console .empty{background:var(--app-card);border:var(--s1) solid var(--app-line);border-radius:var(--s16);padding:var(--s22) var(--s18);text-align:center}.ble-console .empty-title{color:var(--app-navy);font-size:var(--type-card-title-size);font-weight:var(--type-card-title-weight)}.ble-console .empty-note{color:var(--app-muted);font-size:var(--type-caption-size);line-height:var(--type-caption-leading);margin-top:var(--s5)}.ble-console .t-kicker{color:var(--app-muted);font-size:var(--type-kicker-size);font-weight:var(--type-kicker-weight);letter-spacing:var(--type-kicker-tracking);text-transform:uppercase}.ble-console .t-card-title{color:var(--app-navy);font-size:var(--type-card-title-size);font-weight:var(--type-card-title-weight);line-height:var(--type-card-title-leading)}.ble-console .t-body{color:var(--app-ink);font-size:var(--type-body-size);font-weight:var(--type-body-weight);line-height:var(--type-body-leading)}.ble-console .t-caption{color:var(--app-muted);font-size:var(--type-caption-size);line-height:var(--type-caption-leading)}.ble-console .t-faint{color:var(--app-faint);font-size:var(--type-caption-size);line-height:var(--type-caption-leading)}.ble-console p.t-caption,.ble-console p.t-body,.ble-console p.t-faint{margin:var(--s6) 0 0}.ble-console .row-between{align-items:flex-start;display:flex;gap:var(--s10);justify-content:space-between}.ble-console .row-centre{align-items:center;display:flex;gap:var(--s10)}.ble-console .shrink{flex-shrink:1;min-width:0}.ble-console .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ble-console .divided-row{align-items:center;border-top:var(--s1) solid var(--app-line);display:flex;gap:var(--s10);justify-content:space-between;margin-top:var(--s9);padding-top:var(--s9)}.ble-console .key-value{border-top:var(--s1) solid var(--app-line);display:flex;gap:var(--s12);padding:var(--s9) 0}.ble-console .key-value dt{color:var(--app-muted);font-size:var(--type-caption-size);line-height:var(--type-caption-leading);margin:0;width:var(--s88)}.ble-console .key-value dd{color:var(--app-ink);flex:1;font-size:var(--type-body-size);line-height:var(--type-body-leading);margin:0}.ble-console .week{border-bottom:var(--s1) solid var(--app-line);display:flex;gap:var(--s4);margin-bottom:var(--s14);padding-bottom:var(--s12)}.ble-console .day{align-items:center;background:transparent;border:0;border-radius:var(--s11);display:flex;flex:1;flex-direction:column;gap:var(--s2);padding:var(--s7) var(--s2)}.ble-console .day:hover{background:var(--app-sunken)}.ble-console .day[aria-pressed=true]{background:var(--app-navy)}.ble-console .day-label{color:var(--app-muted);font-size:var(--type-caption-size)}.ble-console .day[aria-pressed=true] .day-label{color:var(--app-green-on-navy);font-weight:700}.ble-console .day-number{color:var(--app-body);font-size:var(--type-card-title-size);font-variant-numeric:tabular-nums;font-weight:var(--type-card-title-weight)}.ble-console .day[aria-pressed=true] .day-number{color:var(--white)}.ble-console .day-dot{background:transparent;border-radius:999px;height:var(--s3_5);margin-top:var(--s1);width:var(--s3_5)}.ble-console .day-dot-on{background:var(--app-green)}.ble-console .day[aria-pressed=true] .day-dot-on{background:var(--app-green-on-navy)}.ble-console .teacher-row{display:flex;flex-wrap:wrap;gap:var(--s6);margin-top:var(--s9)}.ble-console .teacher-chip{align-items:center;background:var(--app-sunken);border-radius:999px;display:inline-flex;gap:var(--s6);padding:var(--s4) var(--s9)}.ble-console .teacher-chip-full{background:var(--danger-soft)}.ble-console .teacher-name{color:var(--app-navy);font-size:var(--type-caption-size);font-weight:700}.ble-console .teacher-load{color:var(--app-muted);font-size:var(--type-caption-size);font-variant-numeric:tabular-nums}.ble-console .teacher-chip-full .teacher-name,.ble-console .teacher-chip-full .teacher-load{color:var(--danger)}.ble-console .colour-tag{border-radius:999px;flex:none;height:var(--s9);margin-top:var(--s3);width:var(--s9)}.ble-console .colour-blue{background:var(--app-blue)}.ble-console .colour-green{background:var(--app-green)}.ble-console .reason{border-top:var(--s1) solid var(--app-line);display:flex;gap:var(--s8);margin-top:var(--s9);padding-top:var(--s9)}.ble-console .reason-dot{background:var(--app-faint);border-radius:999px;flex:none;height:var(--s6);margin-top:var(--s4);width:var(--s6)}.ble-console .reason-dot-mid{background:var(--app-streak)}.ble-console .reason-dot-high{background:var(--danger)}.ble-console .scrim{align-items:stretch;background:#0a2a6657;display:flex;top:0;right:0;bottom:0;left:0;justify-content:flex-end;position:fixed;z-index:40}.ble-console .sheet{background:var(--app-bg);box-shadow:-1px 0 var(--s30) #0a2a662e;display:flex;flex-direction:column;max-width:92vw;width:var(--s390)}.ble-console .sheet-head{align-items:flex-start;background:var(--app-card);border-bottom:var(--s1) solid var(--app-line);display:flex;gap:var(--s10);justify-content:space-between;padding:var(--s16)}.ble-console .sheet-title{color:var(--app-navy);font-size:var(--type-sub-screen-title-size);font-weight:var(--type-sub-screen-title-weight);letter-spacing:var(--type-sub-screen-title-tracking);line-height:var(--type-sub-screen-title-leading);margin:0}.ble-console .sheet-close{background:var(--app-sunken);border:0;border-radius:999px;color:var(--app-muted);font-size:var(--type-card-title-size);height:var(--s30);line-height:1;width:var(--s30)}.ble-console .sheet-body{flex:1;overflow-y:auto;padding:var(--s16)}.ble-console .sheet-foot{background:var(--app-card);border-top:var(--s1) solid var(--app-line);display:flex;gap:var(--s8);padding:var(--s12) var(--s16)}.ble-console .sheet-foot>*{flex:1}.ble-console .confirm-scrim{align-items:center;background:#0a2a666b;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:var(--s20);position:fixed;z-index:60}.ble-console .confirm{background:var(--app-card);border-radius:var(--s18);box-shadow:0 var(--s20) var(--s56) #0a2a6647;max-width:var(--s390);padding:var(--s20);width:100%}.ble-console .confirm-title{color:var(--app-navy);font-size:var(--type-section-title-size);font-weight:var(--type-section-title-weight);line-height:var(--type-section-title-leading);margin:0}.ble-console .confirm-body{color:var(--app-body);font-size:var(--type-body-size);line-height:var(--type-body-leading);margin-top:var(--s10)}.ble-console .confirm-consequence{background:var(--danger-soft);border-radius:var(--s11);color:var(--danger);font-size:var(--type-body-size);font-weight:700;line-height:var(--type-body-leading);margin-top:var(--s12);padding:var(--s10) var(--s12)}.ble-console .toast{background:var(--app-navy);border-radius:var(--s14);bottom:var(--s20);box-shadow:0 var(--s10) var(--s30) #0a2a664d;color:var(--white);font-size:var(--type-body-size);left:50%;max-width:var(--s390);padding:var(--s12) var(--s16);position:fixed;transform:translate(-50%);z-index:80}.ble-console .toast-bad{background:var(--danger)}.ble-console .signin{align-items:center;background:var(--page);display:flex;height:100%;justify-content:center;padding:var(--s20)}.ble-console .signin-card{background:var(--white);border:var(--s1) solid var(--line);border-radius:var(--s18);max-width:var(--s390);padding:var(--s26) var(--s22);width:100%}.ble-console .signin-title{color:var(--navy);font-size:var(--type-screen-title-size);font-weight:var(--type-screen-title-weight);margin:var(--s8) 0 0}.ble-console .signin-body{color:var(--app-body);font-size:var(--type-body-size);line-height:var(--type-body-leading);margin-top:var(--s10)}.ble-console .signin-error{background:var(--danger-soft);border-radius:var(--s11);color:var(--danger);font-size:var(--type-caption-size);line-height:var(--type-caption-leading);margin-bottom:var(--s12);padding:var(--s10) var(--s12)}.ble-console .phone-prefix{display:grid;gap:var(--s8);grid-template-columns:var(--s88) 1fr}.ble-console .centre{align-items:center;display:flex;flex-direction:column;gap:var(--s9);justify-content:center;min-height:var(--s300);text-align:center}.ble-console .shell{display:flex;flex-direction:column;height:100%;min-height:0}.ble-console .rail{align-items:center;flex-direction:row;flex-shrink:0;gap:var(--s6);overflow-x:auto;padding:var(--s8) var(--s16)}.ble-console .rail-brand{display:none}.ble-console .rail-tab{border-radius:var(--s10);flex-shrink:0;justify-content:center;padding:var(--s8) var(--s14);width:auto}.ble-console .rail-tab[aria-current=page]{box-shadow:inset 0 -3px 0 0 var(--app-green-on-navy)}.ble-console .rail-foot{flex-direction:row;gap:var(--s6);margin-left:auto;margin-top:0}.ble-console .rail-foot-button{flex-shrink:0;white-space:nowrap}.ble-console .page{flex:1;min-height:0}@media(max-width:1100px){.ble-console .shell{grid-template-columns:none}}
