.db2-app{min-height:78vh;padding:85px 0}.db2-app .section-title{font-size:clamp(2.3rem,5vw,4.4rem)}.db2-panel{background:#fff;border:2px solid #111;padding:clamp(20px,4vw,34px);max-width:790px;box-shadow:9px 9px 0 var(--pink)}.db2-panel h2{margin:5px 0 15px}.db2-panel p{max-width:650px}.db2-auth-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 24px}.db2-auth-field{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;max-width:400px}.db2-auth-field label{font-weight:900}.db2-auth-field input{border:2px solid #111;min-height:50px;padding:12px}.db2-alert{border-left:5px solid var(--pink);padding:12px 15px;background:var(--paper);margin:18px 0}.db2-app button{cursor:pointer}.db2-app button:disabled{opacity:.6;cursor:default}.db2-record{padding:16px 0;border-top:1px solid #bbb}.db2-record strong{display:block}.db2-record small{color:var(--muted)}.db2-app .db2-hide{display:none}.db2-app [role=status]{white-space:pre-wrap}.db2-topline{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.db2-list{list-style:none;padding:0}.db2-list li{border-bottom:1px solid #ccc;padding:12px 0}.db2-small{font-size:.9rem;color:var(--muted)}.db2-app a{font-weight:800}.db2-app .db2-auth-form{max-width:420px}.db2-app .btn.light{box-shadow:3px 3px 0 #111}

/* Accessible public entry to fictional preview; actual protected portal remains unchanged. */
.db2-demo-entry{border:2px solid var(--ink);background:var(--pink2);box-shadow:6px 6px 0 var(--ink);padding:clamp(17px,3vw,25px);margin:22px 0 34px;max-width:790px}
.db2-demo-entry strong{display:block;font-weight:950;font-size:1.12rem;margin-bottom:8px}
.db2-demo-entry p{margin:0 0 14px}
.db2-demo-entry .btn{background:var(--pink);margin-bottom:8px}
.db2-demo-entry .dbd-entry-note{font-size:.83rem;color:#3b332f;margin:10px 0 0}

/* Allow a newly authenticated but not-yet-authorised test user to sign out. */
.db2-account-actions{margin:14px 0 20px}
.db2-account-actions .btn{white-space:normal}


/* Real authenticated staff CRM — read-only Firestore pilot. */
.db2-admin-page .db2-panel{max-width:none;padding:clamp(18px,3vw,32px)}
.db2-admin-page .db2-app{padding-block:clamp(40px,6vw,80px)}
.db2-crm-layout{display:grid;grid-template-columns:minmax(170px,225px) minmax(0,1fr);gap:clamp(15px,2.3vw,28px);align-items:start;margin-top:20px}
.db2-crm-sidebar{display:flex;flex-direction:column;gap:5px;background:#141414;color:#fff;border:2px solid #111;padding:15px;position:sticky;top:100px;min-width:0}
.db2-crm-navbutton{border:0;border-left:4px solid transparent;background:transparent;color:#fff;font:inherit;font-weight:800;min-height:44px;padding:9px 12px;text-align:left;cursor:pointer;white-space:nowrap}
.db2-crm-navbutton[aria-current="page"]{background:#333;border-left-color:var(--pink)}
.db2-crm-navbutton:hover{background:#363636}
.db2-crm-content{min-width:0;max-width:100%;overflow-wrap:anywhere}
.db2-crm-screen-title{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;line-height:1.06;letter-spacing:-.015em;font-size:clamp(1.8rem,4vw,2.75rem);margin:0 0 10px}
.db2-crm-content .db2-crm-dim{color:#615c56;font-size:.93rem;line-height:1.45}
.db2-crm-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.db2-crm-stat{border:2px solid #111;background:#fff8f4;padding:14px 15px;min-width:0;display:flex;flex-direction:column;gap:5px;min-height:100px}
.db2-crm-stat-num{font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(2.1rem,5vw,3.2rem);line-height:1}
.db2-crm-stat-num-small{font-size:clamp(1.4rem,3.4vw,2rem);overflow-wrap:anywhere}
.db2-crm-stat>span:last-child{font-size:.85rem;font-weight:800}
.db2-crm-stat-link{appearance:none;width:100%;position:relative;cursor:pointer;
  font:inherit;color:inherit;text-align:left;line-height:inherit;
  transition:background-color .15s ease,box-shadow .15s ease}
.db2-crm-stat-link:hover{background:#ffe9f0;box-shadow:3px 3px 0 #111}
.db2-crm-stat-link:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.db2-crm-card{border:2px solid #111;background:#fff;padding:clamp(15px,2.2vw,24px);margin:18px 0;min-width:0}
.db2-crm-card h2{font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(1.3rem,2.5vw,1.65rem);text-transform:uppercase;margin:0 0 10px}
.db2-crm-card h3{margin:0 0 9px}
.db2-crm-card p{max-width:none}
.db2-crm-person,.db2-crm-detail-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid #ddd;min-width:0}
.db2-crm-person:first-of-type,.db2-crm-detail-row:first-of-type{border-top:0}
.db2-crm-person>div,.db2-crm-detail-row>div{min-width:0}
.db2-crm-person strong,.db2-crm-person small,.db2-crm-list-entry strong{display:block;overflow-wrap:anywhere}
.db2-crm-detail-row>strong{max-width:65%;text-align:right;overflow-wrap:anywhere}
.db2-crm-list-entry{padding:13px 0;border-top:1px solid #ddd}
.db2-crm-list-entry:first-child{border-top:0}
.db2-crm-list-entry p{margin:7px 0;white-space:pre-wrap}
.db2-crm-button,.db2-crm-textlink{font:inherit;cursor:pointer;color:#111;flex-shrink:0}
.db2-crm-button{font-weight:900;background:var(--pink);border:2px solid #111;box-shadow:3px 3px 0 #111;min-height:43px;padding:8px 12px}
.db2-crm-textlink{border:0;padding:10px 0;background:transparent;text-decoration:underline;text-underline-offset:3px;font-weight:800}
.db2-crm-button:hover{background:var(--pink2)}
.db2-crm-message{background:#fff8ed;border-left:5px solid var(--pink);padding:13px;margin:12px 0;line-height:1.5}
.db2-crm-chip{font-size:.83rem;font-weight:800;padding:6px 10px;background:#e7eefa;border:1px solid #91a8d8;white-space:nowrap}
.db2-crm-calendar-day{padding:13px 0;border-top:1px solid #ddd}
.db2-crm-slots{display:flex;gap:8px;flex-wrap:wrap}
.db2-crm-content button:focus-visible,.db2-crm-sidebar button:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
@media(max-width:850px){
 .db2-crm-layout{grid-template-columns:minmax(0,1fr)}
 .db2-crm-sidebar{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:thin;padding:9px;gap:4px}
 .db2-crm-navbutton{border-left:0;border-bottom:4px solid transparent;padding:9px;white-space:nowrap}
 .db2-crm-navbutton[aria-current="page"]{border-left:0;border-bottom-color:var(--pink)}
}
@media(max-width:560px){
 .db2-admin-page .db2-panel{padding:16px}
 .db2-crm-stats{gap:7px}
 .db2-crm-stat{padding:10px 8px;min-height:90px}
 .db2-crm-stat-num{font-size:1.85rem}
 .db2-crm-stat-num-small{font-size:1.22rem}
 .db2-crm-stat>span:last-child{font-size:.7rem}
 .db2-crm-person{align-items:flex-start;flex-direction:column;gap:8px}
 .db2-crm-card{padding:14px}
 .db2-crm-chip{white-space:normal}
}


/* Entire pupil row is a keyboard-accessible action, including the pupil name. */
.db2-crm-person-button{width:100%;border:0;border-top:1px solid #ddd;background:transparent;text-align:left;font:inherit;cursor:pointer;color:inherit}
.db2-crm-person-button:hover,.db2-crm-person-button:focus-visible{background:var(--pink2)}
.db2-crm-person-button:focus-visible{outline:3px solid var(--pink);outline-offset:2px}
.db2-crm-open{font-size:.88rem;font-weight:900;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media(max-width:560px){.db2-crm-open{align-self:flex-start}}

.db2-crm-person-info{display:flex;flex-direction:column;gap:4px;min-width:0}


/* Secure preview-only CRM editors: accessible, compact on mobile. */
.db2-crm-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:15px;max-width:760px;min-width:0}
.db2-crm-edit-form>button[type="submit"]{justify-self:start;align-self:end}
.db2-crm-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.db2-crm-field label{font-size:.89rem;font-weight:800}
.db2-crm-field :is(input,select,textarea){width:100%;min-width:0;max-width:100%;box-sizing:border-box;border:2px solid #111;background:#fffaf5;border-radius:0;padding:10px;font:inherit;font-size:16px;min-height:44px}
.db2-crm-field textarea{min-height:105px;resize:vertical}
.db2-crm-edit-form .db2-crm-field:has(textarea){grid-column:1/-1}
.db2-crm-lesson-actions{background:#fff7f3;margin:-1px 0 13px;border:1px solid #ddd;padding:13px;display:flex;flex-wrap:wrap;gap:15px;align-items:flex-start}
.db2-crm-lesson-actions>button{background:#fff}
.db2-crm-move{margin:0;flex:1 1 320px;gap:8px}
.db2-crm-button[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}
@media(max-width:640px){
  .db2-crm-edit-form{grid-template-columns:minmax(0,1fr)}
  .db2-crm-move{flex:1 1 100%}
  .db2-crm-edit-form>button[type="submit"]{justify-self:stretch}
}

/* Pupil directory: clearly separate real Firestore records from fictional preview rows. */
.db2-crm-toolbar,.db2-crm-bulk,.db2-crm-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.db2-crm-toolbar{margin:14px 0}
.db2-crm-bulk{padding:13px 0;border-block:1px solid #ddd;margin-bottom:8px}
.db2-crm-selected{font-size:.89rem;margin-right:auto}
.db2-crm-select-label{display:inline-flex;align-items:center;gap:9px;font-size:.89rem;font-weight:800}
.db2-crm-row-check,.db2-crm-select-label input{width:21px;height:21px;flex-shrink:0;accent-color:#db5583;cursor:pointer}
.db2-crm-directory{display:flex;flex-direction:column}
.db2-crm-directory-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px 16px;align-items:center;padding:17px 0;border-bottom:1px solid #ddd}
.db2-crm-directory-row:last-child{border-bottom:0}
.db2-crm-name-button{display:block;text-align:left;background:none;color:#111;border:0;font:inherit;font-size:1rem;font-weight:900;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:4px;max-width:100%;overflow-wrap:anywhere}
.db2-crm-sample,.db2-crm-live{display:inline-block;align-self:flex-start;margin-top:3px;font-size:.67rem;font-weight:900;letter-spacing:.025em;padding:3px 7px}
.db2-crm-sample{background:#ffe2ef;color:#3b1424}
.db2-crm-live{background:#e3f1e7;color:#1c4b2d}
.db2-crm-row-actions{justify-content:flex-end;gap:7px}
.db2-crm-action{font:inherit;font-size:.85rem;font-weight:850;white-space:nowrap;color:#111;cursor:pointer;background:#fff8f4;border:1.5px solid #111;padding:8px 10px;min-height:39px}
.db2-crm-action:hover{background:#ffc6db}
.db2-crm-action-danger,.db2-crm-danger{border-color:#943d50;color:#852338;background:#fff2f3}
.db2-crm-action-danger:hover,.db2-crm-danger:hover{background:#ffd7de}
.db2-crm-button-light{background:#fff8f4;box-shadow:none}
.db2-crm-button-light:hover{background:#ffe0ea}
.db2-crm-directory-row :is(button,input):focus-visible,.db2-crm-bulk :is(button,input):focus-visible{outline:3px solid #ef4e8f;outline-offset:3px}
@media(max-width:950px){.db2-crm-directory-row{grid-template-columns:22px minmax(0,1fr)}.db2-crm-row-actions{grid-column:2;justify-content:flex-start}}
@media(max-width:580px){.db2-crm-bulk{align-items:flex-start}.db2-crm-selected{width:100%}.db2-crm-action{font-size:.8rem}.db2-crm-directory-row{gap:8px 12px}}

/* CRM teaching calendar and no-write holiday preview */
.db2-crm-calendar-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0}
.db2-crm-calendar-date{font-size:1rem;margin:16px 0 3px!important;padding-top:12px;border-top:1px solid #ddd}
.db2-crm-calendar-row{display:grid;grid-template-columns:minmax(120px,.27fr) minmax(0,1fr);gap:16px;align-items:center;border-top:1px solid #e5e0dc;padding:10px 0;font-size:.92rem}
.db2-crm-calendar-row[data-state="crm_recorded"]{background:#eff8f1}
.db2-crm-calendar-row[data-state="conflict"]{background:#ffe0e4;color:#8d2138}
.db2-crm-calendar-row span{overflow-wrap:anywhere}
@media(max-width:560px){.db2-crm-calendar-row{grid-template-columns:1fr;gap:3px}.db2-crm-calendar-row strong{font-size:.92rem}}


/* Staff-only local Netlify Forms preview; all input data stays in the page. */
.db2-crm-request-row{display:grid;grid-template-columns:1fr 1fr;gap:5px 16px;padding:14px 0;border-top:1px solid #dcd4cb;min-width:0}
.db2-crm-request-row strong,.db2-crm-request-row p,.db2-crm-request-row small{grid-column:1/-1;margin:0}
.db2-crm-request-row span{min-width:0;overflow-wrap:anywhere}
.db2-crm-request-row .db2-crm-dim{color:#625b56}
@media(max-width:600px){.db2-crm-request-row{grid-template-columns:1fr;gap:4px}}

/* Staff Requests: draft-only decisions, individually editable lesson proposals. */
.db2-crm-review-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.db2-crm-review-actions button{flex:1 1 170px;white-space:normal}
.db2-crm-review-actions button:disabled{opacity:.45;cursor:not-allowed}
.db2-crm-review-form{display:grid;gap:9px;margin-top:16px}
.db2-crm-review-slot{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1fr);align-items:end;gap:9px;padding:10px;border:1px solid #ddd;background:#fffaf6}
.db2-crm-review-slot>.db2-crm-field{min-width:0}
.db2-crm-review-slot>strong{align-self:center}
.db2-crm-review-form>button{justify-self:start;margin-top:8px}
@media(max-width:650px){
 .db2-crm-review-slot{grid-template-columns:1fr 1fr}
 .db2-crm-review-slot>strong{grid-column:1/-1}
 .db2-crm-review-actions button{flex:1 1 100%}
}

/* Requests are managed in place: no separate draft or audit panels. */
.db2-crm-request-row[data-expanded="true"]{background:#fffaf6;padding:16px;border-left:4px solid var(--pink)}
.db2-crm-request-row>.db2-crm-button{justify-self:start;align-self:start;margin-top:9px}
.db2-crm-request-editor{grid-column:1/-1;min-width:0;margin-top:14px;border-top:2px solid #111;padding:20px 0 4px}
.db2-crm-request-editor>h3{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;font-size:clamp(1.2rem,2.2vw,1.65rem);margin:0 0 8px}
.db2-crm-request-editor .db2-crm-review-details{margin:13px 0;max-width:760px}
.db2-crm-request-editor .db2-crm-review-details .db2-crm-detail-row{padding:8px 0}
.db2-crm-review-saved{background:#eff8f1;color:#194e2e;border-left:4px solid #4c9562;padding:9px 12px;margin:12px 0!important;font-size:.91rem;font-weight:800}
.db2-crm-review-summary{font-weight:850;color:#225d38}
.db2-crm-request-editor>.db2-crm-button-light{margin-top:16px}
.db2-crm-review-backup{margin-top:13px}
.db2-crm-import-options{margin:10px 0;padding:12px 16px;border:1px solid #d5cec8;background:#fffaf6}
.db2-crm-import-options>summary{cursor:pointer;font-weight:800}
.db2-crm-import-panel{padding-top:10px}
@media(max-width:650px){
 .db2-crm-request-row[data-expanded="true"]{padding:12px 8px}
 .db2-crm-request-editor{padding:14px 0 3px}
 .db2-crm-request-editor .db2-crm-detail-row{gap:8px;align-items:flex-start}
 .db2-crm-request-editor .db2-crm-detail-row>strong{max-width:60%}
 .db2-crm-request-editor .db2-crm-edit-form>button[type="submit"],
 .db2-crm-request-editor .db2-crm-review-form>button[type="submit"]{justify-self:stretch}
}

/* Staff-only roster reconciliation; source spreadsheet never uploaded to the server. */
.db2-crm-roster{margin:16px 0 22px}
.db2-crm-roster>summary{font-size:1rem}
.db2-crm-roster-import{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.db2-crm-roster-import input[type=file]{min-width:0;max-width:100%;font:inherit}
.db2-crm-roster-summary{padding:12px 0;border-bottom:1px solid #ddd}
.db2-crm-roster-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:12px 0;border-bottom:1px solid #ddd}
.db2-crm-roster-row>strong{flex:0 1 170px}
.db2-crm-roster-row>div{flex:1 1 195px;min-width:0}
.db2-crm-roster-row>div>strong,.db2-crm-roster-row>div>small{display:block}
.db2-crm-roster-row>span{font-size:.83rem}
.db2-crm-roster-warning{color:#913e1c;font-weight:800}
.db2-crm-roster-match{color:#235b38;font-weight:800}
.db2-crm-roster-row .db2-crm-action{white-space:normal}
.db2-crm-roster-unlisted{padding:10px 0 15px;margin:12px 0;border-top:2px solid #111}
.db2-crm-roster-unlisted>h3{margin:8px 0 4px}
@media(max-width:580px){.db2-crm-roster-import input[type=file]{width:100%}.db2-crm-roster-import .db2-crm-button{width:100%}}


/* Staff sidebar: match approved eight-icon design; no icon fonts or external requests. */
.db2-crm-layout{grid-template-columns:minmax(215px,250px) minmax(0,1fr);gap:clamp(16px,2.3vw,28px)}
.db2-crm-sidebar{
  background:#161616;color:#fff;border:0;border-radius:11px;
  padding:12px;gap:3px;min-width:0;
}
.db2-crm-navbutton{
  display:flex;align-items:center;gap:12px;width:100%;min-height:44px;
  padding:10px 13px;border:0;border-radius:6px;
  font:inherit;font-size:14px;font-weight:600;letter-spacing:-.01em;line-height:1.4;
  text-align:left;color:#fff;background:transparent;white-space:nowrap;
  transition:background-color .14s ease;
}
.db2-crm-navbutton[aria-current="page"]{
  background:#2c2c2c;border:0;box-shadow:inset 3px 0 0 var(--pink)
}
.db2-crm-navbutton:hover{background:#333}
.db2-crm-nav-icon{
  display:inline-block;width:19px;height:19px;flex:0 0 19px;
  background-repeat:no-repeat;background-position:center;background-size:contain;
  opacity:.97;
}
.db2-crm-nav-label{flex:1;min-width:0}
.db2-crm-register-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.db2-crm-icon-overview{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227%22%20height%3D%228%22%20rx%3D%221.1%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%223%22%20width%3D%227%22%20height%3D%225%22%20rx%3D%221.1%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%2212%22%20width%3D%227%22%20height%3D%229%22%20rx%3D%221.1%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2215%22%20width%3D%227%22%20height%3D%226%22%20rx%3D%221.1%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-users{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M3%2020v-2c0-3.2%202.5-5.2%206-5.2s6%202%206%205.2v2M16%205.2a3%203%200%200%201%200%205.6M17.5%2013.3c2.2.6%203.5%202.3%203.5%204.7V20%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-calendar{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%203v4m8-4v4M3%2010h18%22%2F%3E%3Cpath%20d%3D%22M8%2014h2m4%200h2m-8%204h2m4%200h2%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-messages{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204h11a2%202%200%200%201%202%202v8a2%202%200%200%201-2%202H9l-5%204V6a2%202%200%200%201%202-2z%22%2F%3E%3Cpath%20d%3D%22M19%209h1a2%202%200%200%201%202%202v9l-4-3h-3%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-mail{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222.5%22%20y%3D%225%22%20width%3D%2219%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m3.5%207%208.5%206%208.5-6%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-payments{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M2%2010h20M6%2015h4%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-clock{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3.5%202%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-calendar-off{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%203v4m8-4v4M3%2010h18M7%2021H5a2%202%200%200%201-2-2V7a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202v9%22%2F%3E%3Cpath%20d%3D%22m3%203%2018%2018%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-settings{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10.7%202.9h2.6l.55%202.3c.55.2%201.1.45%201.6.78l2.15-.85%201.85%201.85-.85%202.15c.32.5.58%201.05.78%201.6l2.32.55v2.6l-2.32.55a7.7%207.7%200%200%201-.78%201.6l.85%202.15-1.85%201.85-2.15-.85a7.7%207.7%200%200%201-1.6.78l-.55%202.3h-2.6l-.55-2.3a7.7%207.7%200%200%201-1.6-.78l-2.15.85-1.85-1.85.85-2.15a7.7%207.7%200%200%201-.78-1.6l-2.32-.55v-2.6l2.32-.55c.2-.55.45-1.1.78-1.6L4.3%206.98l1.85-1.85%202.15.85a7.7%207.7%200%200%201%201.6-.78z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212.5%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E")}
@media(max-width:850px){
  .db2-crm-layout{grid-template-columns:minmax(0,1fr)}
  .db2-crm-sidebar{
    position:static;flex-direction:row;overflow-x:auto;
    border-radius:9px;padding:8px;gap:3px;
  }
  .db2-crm-navbutton{width:auto;flex:0 0 auto;min-height:42px;padding:9px 12px;border:0;border-radius:6px}
  .db2-crm-navbutton[aria-current="page"]{
    border:0;box-shadow:inset 0 -3px 0 var(--pink)
  }
}

/* Register: put the operational pupil list first; utilities are secondary. */
.db2-crm-add-pupil{margin-top:14px}
.db2-crm-add-pupil>summary,.db2-crm-roster>summary{
  padding:6px 2px;cursor:pointer;font-weight:800
}
.db2-crm-add-pupil[open]>.db2-crm-edit-form{margin-top:12px}
.db2-crm-roster{margin-top:20px}
/* Calendar: honest read-only CRM records, not a live availability promise. */
.db2-crm-calendar-warning{border-left:4px solid var(--pink);padding:12px 16px;background:#fff6ee;margin:14px 0}
.db2-crm-calendar-card{padding:12px!important;overflow:hidden}
.db2-crm-period-controls{gap:10px}
.db2-crm-period-label{font-weight:900;font-size:1rem;min-width:170px;text-align:center}
.db2-crm-week-scroll{overflow-x:auto;max-width:100%}
.db2-crm-week-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:780px;text-align:left}
.db2-crm-week-grid :is(th,td){border-right:1px solid #ddd;border-bottom:1px solid #ddd;padding:8px 6px;vertical-align:top;overflow-wrap:anywhere}
.db2-crm-week-grid thead th{background:#f5f0eb;border-top:1px solid #ddd;font-size:.81rem}
.db2-crm-week-grid tr>:first-child{border-left:1px solid #ddd}
.db2-crm-week-grid th span,.db2-crm-week-grid th small{display:block}
.db2-crm-week-grid th small{font-weight:500;color:#615d5a}
.db2-crm-time-label{width:108px;min-width:108px;background:#faf7f2;font-size:.74rem;white-space:nowrap}
.db2-crm-week-cell{height:64px;min-width:95px;font-size:.77rem}
.db2-crm-empty-cell{color:#b3ada9;font-weight:400}
.db2-crm-week-cell[data-state="recorded"]{background:#f0f7f2}
.db2-crm-week-cell[data-state="conflict"]{background:#fee5e6}
.db2-crm-cell-record{margin-bottom:5px}
.db2-crm-cell-record strong,.db2-crm-cell-record small{display:block;font-size:.75rem}
.db2-crm-cell-record small{color:#555}
.db2-crm-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#ddd;border:1px solid #ddd}
.db2-crm-month-day{text-align:center;padding:10px 2px;background:#f5f0eb;font-size:.8rem}
.db2-crm-month-cell{min-width:0;min-height:96px;background:#fff;padding:9px 6px;overflow-wrap:anywhere}
.db2-crm-month-cell[data-outside="true"]{background:#f8f5f2;color:#807a76}
.db2-crm-month-date{display:block;margin-bottom:7px;font-size:.9rem}
.db2-crm-month-entry{border-left:3px solid var(--pink);padding:3px 5px;margin-bottom:5px;background:#f5f2ee;font-size:.72rem}
.db2-crm-month-entry strong,.db2-crm-month-entry small{display:block;font-size:inherit}
/* Phone month view: all seven equal columns fit the available width.
   Full source counts remain in the accessible daily-drilldown button. */
.db2-crm-month-total-short{display:none}
@media(max-width:690px){
 .db2-admin-page .db2-crm-calendar-card[data-calendar-view="monthly"]{
  box-sizing:border-box;min-width:0;width:100%;padding:6px!important;
  overflow-x:hidden
 }
 .db2-admin-page .db2-crm-month-grid{
  box-sizing:border-box;width:100%;min-width:0;max-width:100%;
  grid-template-columns:repeat(7,minmax(0,1fr));gap:1px
 }
 .db2-admin-page .db2-crm-month-day{
  box-sizing:border-box;min-width:0;padding:8px 0;font-size:.65rem
 }
 .db2-admin-page .db2-crm-month-cell{
  box-sizing:border-box;min-width:0;min-height:69px;
  padding:6px 1px;text-align:center;overflow:hidden
 }
 .db2-admin-page .db2-crm-month-date{
  font-size:.76rem;line-height:1.2;margin-bottom:5px
 }
 .db2-admin-page .db2-crm-month-total-long,
 .db2-admin-page .db2-crm-month-count{display:none}
 .db2-admin-page .db2-crm-month-total-short{display:block}
 .db2-admin-page .db2-crm-month-summary{
  box-sizing:border-box;display:flex;align-items:center;justify-content:center;
  width:29px;max-width:100%;min-height:28px;margin:0 auto;
  padding:3px 1px;background:#f7b3cc;border:1px solid #171717;
  border-radius:5px;text-align:center;text-decoration:none;
  font-size:.79rem;line-height:1.1;font-weight:850
 }
 .db2-admin-page .db2-crm-month-summary:focus-visible{
  outline:2px solid #111;outline-offset:1px
 }
 .db2-admin-page .db2-crm-month-cell .db2-crm-empty-cell{
  display:block;font-size:.68rem;line-height:1.2
 }
 .db2-admin-page .db2-crm-period-controls{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;margin:12px 0;min-width:0
 }
 .db2-admin-page .db2-crm-period-controls .db2-crm-period-label{
  grid-column:1/-1;grid-row:1;min-width:0;text-align:center;
  font-size:1.04rem
 }
 .db2-admin-page .db2-crm-period-controls > button{
  box-sizing:border-box;max-width:100%;min-width:0;width:100%;
  min-height:44px;padding:9px 6px;font-size:.81rem;line-height:1.25;
  white-space:normal
 }
 .db2-admin-page .db2-crm-period-controls > button:nth-of-type(1){grid-column:1;grid-row:2}
 .db2-admin-page .db2-crm-period-controls > button:nth-of-type(2){grid-column:2;grid-row:2}
 .db2-admin-page .db2-crm-period-controls > button:nth-of-type(3){grid-column:1;grid-row:3}
 .db2-admin-page .db2-crm-period-controls > button:nth-of-type(4){grid-column:2;grid-row:3}
}

/* Goals and draft-only staffing/product planning. No active availability changes. */
.db2-crm-icon-goals{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%225.5%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%203v3m0%2012v3M3%2012h3m12%200h3%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-manual-enquiry{margin:10px 0 18px}
.db2-crm-manual-enquiry>summary{padding:7px 2px}
.db2-crm-manual-enquiry form{margin-top:14px}
.db2-crm-schedule-day{border-top:1px solid #e0d9d3;padding:12px 0}
.db2-crm-schedule-day-header{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:8px}
.db2-crm-slot-choices{display:flex;gap:7px;flex-wrap:wrap}
.db2-crm-slot-choices .db2-crm-action{padding:9px 11px}
.db2-crm-draft-selected{background:#f8d9e6!important;border-color:#cf3379!important}
.db2-crm-planned-package{border-top:1px solid #ddd;padding:12px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center}
.db2-crm-planned-package small{grid-column:1 / -1}
.db2-crm-expansion-panel,.db2-crm-future-programmes{margin-block:14px}
@media(max-width:620px){
 .db2-crm-planned-package{grid-template-columns:1fr}
 .db2-crm-schedule-day-header{flex-wrap:wrap}
}

/* Goals uses observed CRM evidence only; never styles empty cells as free slots. */
.db2-crm-occupancy-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.db2-crm-occupancy-metric{border:1px solid #ddd3cb;background:#faf7f3;padding:12px;display:flex;flex-direction:column;gap:4px}
.db2-crm-occupancy-metric strong{font-size:1.6rem;line-height:1.15}
.db2-crm-occupancy-metric span{font-size:.77rem;color:#605b56}
.db2-crm-occupancy-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.83rem}
.db2-crm-occupancy-table th,.db2-crm-occupancy-table td{padding:12px 8px;text-align:left;border-bottom:1px solid #ddd5d0;vertical-align:top}
.db2-crm-occupancy-table thead th{background:#f5f0eb;font-weight:750}
.db2-crm-occupancy-table tbody th{white-space:nowrap}
.db2-crm-occupancy-table td strong,.db2-crm-occupancy-table td small{display:block}
.db2-crm-occupancy-table td small{margin-top:5px}
@media(max-width:700px){
 .db2-crm-occupancy-summary{grid-template-columns:1fr}
 .db2-crm-occupancy-table thead{display:none}
 .db2-crm-occupancy-table tbody tr{display:grid;border:1px solid #ddd5d0;margin-bottom:10px}
 .db2-crm-occupancy-table tbody th,.db2-crm-occupancy-table tbody td{border:0;padding:7px 10px;white-space:normal}
}

/* Active Register: two-column real contact layout without the removed sample checkbox.
   The former 22px first track forced names such as Jamie to display vertically. */
.db2-crm-directory > .db2-crm-directory-row {
  grid-template-columns: minmax(0,1fr) auto;
  width:100%;
  min-width:0;
  align-items:center;
  gap:12px 18px;
}
.db2-crm-directory > .db2-crm-directory-row > .db2-crm-person-info {
  min-width:0; width:auto; overflow-wrap:normal; word-break:normal;
}
.db2-crm-directory > .db2-crm-directory-row > .db2-crm-row-actions {
  grid-column:auto;justify-content:flex-end;
}
.db2-crm-roster-actual {width:100%;min-width:680px;border-collapse:collapse;text-align:left;font-size:.88rem}
.db2-crm-roster-actual th {background:#f5f0eb;font-size:.8rem;text-transform:none;white-space:nowrap}
.db2-crm-roster-actual :is(th,td){padding:12px 9px;border-bottom:1px solid #ddd4cc;vertical-align:middle}
.db2-crm-roster-actual td:nth-child(3){min-width:155px;font-weight:750}
.db2-crm-roster-actual td:nth-child(n+4):nth-child(-n+6){text-align:center;font-variant-numeric:tabular-nums}
.db2-crm-roster-occupied{font-weight:800;background:#f8e4e9}
.db2-crm-roster-available{font-weight:800;background:#dff3e5;color:#20693d}
.db2-crm-roster-reference{margin:12px 0;font-weight:750}
@media(max-width:900px){
 .db2-crm-directory > .db2-crm-directory-row{grid-template-columns:minmax(0,1fr);align-items:start}
 .db2-crm-directory > .db2-crm-directory-row > .db2-crm-row-actions{
   grid-column:1;justify-content:flex-start
 }
}

/* Weekly overview: only publicly offered starts, not a claim of live availability. */
.db2-crm-public-week .db2-crm-week-cell[data-state="closed"]{background:#f2eee9;color:#777}
.db2-crm-public-week .db2-crm-week-cell[data-state="roster"]{background:#fff1e8}
.db2-crm-public-week .db2-crm-week-cell[data-state="unverified"]{background:#fff}
.db2-crm-public-week .db2-crm-week-cell{height:83px}
/* Staff schedule design: one clear published-hours panel and a responsive 7 x 12 matrix. */
.db2-crm-published-schedule{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}
.db2-crm-published-day{display:flex;flex-direction:column;gap:5px;border:1px solid #ddd2cb;background:#faf7f4;padding:14px 18px;flex:1 1 180px}
.db2-crm-capacity-scroll{overflow-x:auto;width:100%;margin:15px 0}
.db2-crm-capacity-matrix{width:100%;min-width:680px;border-collapse:collapse;table-layout:fixed}
.db2-crm-capacity-matrix :is(th,td){border:1px solid #ddd4ce;text-align:center;padding:5px;vertical-align:middle}
.db2-crm-capacity-matrix th{font-size:.76rem;background:#f6f1eb}
.db2-crm-capacity-matrix thead th:first-child,.db2-crm-capacity-matrix tbody th{width:113px;text-align:left;white-space:nowrap}
.db2-crm-matrix-cell{display:block;border:1.5px solid #c8bdb6;background:#fff9f5;color:#111;width:100%;min-height:35px;font:inherit;font-size:.91rem;font-weight:800;cursor:pointer}
.db2-crm-matrix-cell:hover:not(:disabled){border-color:#111;background:#ffe1ed}
.db2-crm-matrix-cell.db2-crm-matrix-live{border-color:#428664;background:#d9f0e2;color:#175c39;opacity:1;cursor:default}
.db2-crm-matrix-cell.db2-crm-matrix-draft{border-color:#bb3977;background:#ffd3e5;color:#7d1b51}
.db2-crm-capacity-totals{display:flex;gap:11px 20px;align-items:center;flex-wrap:wrap;margin:12px 0 18px}
.db2-crm-capacity-totals span{font-size:.9rem;color:#645f5c}
/* Programme catalogue: active/inactive status and publication control visible per row. */
.db2-crm-programme-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px 18px;align-items:center;padding:16px 0;border-bottom:1px solid #ded6d0}
.db2-crm-programme-row:last-of-type{border-bottom:0}
.db2-crm-programme-info{display:flex;flex-direction:column;gap:4px;min-width:0}
.db2-crm-programme-info strong{font-size:1rem}
.db2-crm-status-active{color:#187044;font-size:.85rem}
.db2-crm-status-inactive{color:#a02c49;font-size:.85rem}
.db2-crm-programme-row button:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:680px){
 .db2-crm-programme-row{grid-template-columns:1fr auto}
 .db2-crm-programme-row .db2-crm-programme-info{grid-column:1/-1}
}

/* One-time inline pupil-register setup, accessible without uploading files. */
.db2-crm-first-setup{margin:16px 0}
.db2-crm-roster-setup-form{display:grid;gap:10px;margin:15px 0}
.db2-crm-roster-setup-row{display:grid;grid-template-columns:138px minmax(140px,1.8fr) repeat(3,minmax(66px,.65fr));gap:12px;align-items:end;border-bottom:1px solid #e5dfd9;padding:10px 0}
.db2-crm-roster-setup-row>strong{align-self:center;font-size:.85rem}
.db2-crm-roster-setup-row .db2-crm-field :is(input,select){min-height:40px;padding:7px;font-size:.86rem}
.db2-crm-roster-setup-row .db2-crm-field label{font-size:.73rem}
.db2-crm-roster-setup-form>.db2-crm-button{justify-self:start}
@media(max-width:920px){
 .db2-crm-roster-setup-row{grid-template-columns:repeat(3,minmax(0,1fr))}
 .db2-crm-roster-setup-row>strong,.db2-crm-roster-setup-row>.db2-crm-field:nth-child(2){grid-column:1/-1}
}

.db2-crm-roster-paste{grid-column:1/-1;border:1px solid #ddd4cc;background:#fbf6f1;padding:12px}
.db2-crm-roster-paste>summary{cursor:pointer;font-weight:800}
.db2-crm-paste-box{display:block;box-sizing:border-box;width:100%;margin:12px 0;padding:10px;border:2px solid #111;background:#fff;font:inherit;font-size:.9rem;min-height:120px;resize:vertical}

/* Compact staff-only header and dashboard: same shared header height, no public-nav changes. */
.db2-admin-page .db2-nav{gap:clamp(10px,1.7vw,22px)}
.db2-admin-page .db2-admin-header-title{
  margin:0;min-width:0;line-height:1.18;letter-spacing:0;text-transform:none;
  font-family:Inter,Arial,Helvetica,sans-serif;font-size:.70rem;font-weight:700;
}
.db2-admin-page .db2-admin-header-title span,
.db2-admin-page .db2-admin-header-title strong{display:block}
.db2-admin-page .db2-admin-header-title span{color:#655c56}
.db2-admin-page .db2-admin-header-title strong{font-size:.96rem;color:#111;margin-top:2px}
.db2-admin-page .db2-admin-header-controls{
  display:flex;align-items:center;gap:clamp(9px,1.5vw,20px);
  margin-left:auto;flex-shrink:0;
}
.db2-admin-page #staff-header-label{font-size:.80rem;font-weight:800;white-space:nowrap}
.db2-admin-page #staff-header-auth{
  font-size:.84rem;min-height:40px;padding:0 14px;white-space:nowrap;
  box-shadow:3px 3px 0 #111;
}
.db2-admin-page #staff-header-auth:focus-visible{outline:3px solid var(--pink);outline-offset:4px}
.db2-admin-page .db2-app{padding:12px 0 28px}
.db2-admin-page .db2-panel{padding:clamp(12px,1.8vw,22px)}
.db2-admin-page .db2-crm-layout{margin-top:0}
/* Older in-panel sign-out controls remain wired for compatibility but are hidden
   in staff view: the authenticated, working sign-out is now in the header. */
.db2-admin-page .db2-account-actions,
.db2-admin-page .db2-topline{display:none}

/* Overview: distinguish the pupil from the much smaller, secondary roster note. */
.db2-admin-page .db2-crm-public-week .db2-crm-week-cell[data-state="roster"]>strong{
  display:block;line-height:1.3;margin-bottom:4px;overflow-wrap:break-word;
}
.db2-admin-page .db2-crm-public-week .db2-crm-week-cell[data-state="roster"]>small.db2-crm-dim{
  display:block;font-size:.50rem;line-height:1.3;font-weight:500;
  overflow-wrap:normal;word-break:normal;
}
@media(max-width:650px){
  .db2-admin-page .db2-nav{gap:8px}
  .db2-admin-page .db2-admin-header-title{font-size:.61rem}
  .db2-admin-page .db2-admin-header-title strong{font-size:.76rem}
  .db2-admin-page #staff-header-label{display:none}
  .db2-admin-page #staff-header-auth{min-height:38px;padding:0 10px}
  .db2-admin-page .db2-app{padding-top:8px}
}


/* Staff programme activation: keep status and button usable on mobile. */
.db2-crm-programme-row button:not(:disabled){cursor:pointer}
.db2-crm-programme-row .db2-crm-programme-info{overflow-wrap:anywhere}

/* Staff review moderation and unread notifications. */
.db2-crm-icon-star{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%221.7%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%202.7%202.9%205.9%206.5%201-4.7%204.6%201.1%206.5-5.8-3.1-5.8%203.1%201.1-6.5-4.7-4.6%206.5-1z%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-review-count{border-radius:20px;background:var(--pink);color:#111;padding:1px 7px;font-size:.68rem;font-weight:900}
.db2-crm-review-entry{border:1px solid #ddd3cb;background:#fffaf6;padding:15px 16px;margin-top:15px}
.db2-crm-review-entry>strong:first-child{display:block;letter-spacing:.02em;margin-bottom:5px}
.db2-crm-review-entry>span{display:inline-block;font-weight:800;font-size:.82rem}
.db2-crm-review-entry>p{white-space:pre-wrap;overflow-wrap:anywhere}
.db2-crm-new-review{background:#ffe1ed;display:inline-block;margin-left:10px;padding:2px 7px;font-size:.75rem}

/* Linked weekly pupils: keyboard-accessible record links in the overview. */
.db2-crm-calendar-pupil{display:block;width:100%;border:0;background:transparent;padding:0;text-align:left;color:inherit;font:inherit;font-weight:800;font-size:.77rem;line-height:1.3;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}
.db2-crm-calendar-pupil:hover{color:#aa2357}
.db2-crm-calendar-pupil:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.db2-crm-public-week .db2-crm-week-cell[data-state="no-lesson"]{background:#fff;color:#615c56}
.db2-crm-public-week .db2-crm-week-cell[data-state="no-lesson"] .db2-crm-empty-cell{color:#615c56}
.db2-crm-all-records{min-width:750px}
.db2-crm-all-records td:nth-child(n){text-align:left;font-weight:400}
.db2-crm-all-records td:first-child{font-weight:750}
.db2-crm-all-records td:nth-child(3){overflow-wrap:anywhere}
.db2-crm-all-records td:last-child{text-align:right}
.db2-crm-balance-edit{margin-top:22px;padding-top:15px;border-top:1px solid #ddd;max-width:440px}
.db2-crm-balance-edit input,.db2-crm-balance-edit select{max-width:100%}

/* Grouped staff sidebar: existing routes stay intact; categories are non-interactive. */
.db2-crm-sidebar{gap:12px}
.db2-crm-nav-group{display:flex;flex-direction:column;gap:3px;min-width:0}
.db2-crm-nav-heading{padding:7px 12px 3px;color:#b8b8b8;font-size:11px;font-weight:850;letter-spacing:.09em;line-height:1.3}
.db2-crm-nav-items{display:flex;flex-direction:column;gap:3px;min-width:0}
.db2-crm-icon-mailing-list{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2216%22%20height%3D%2213%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m3.5%207%207.5%206%207.5-6M21%209v10M18%2016h6%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-icon-finances{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%226%22%20width%3D%2218%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18M7%2015h5M8%203h10%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-finance-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0}
.db2-crm-finance-tab{border:1.5px solid #161616;border-radius:5px;background:#fff8f4;color:#161616;font:inherit;font-weight:800;font-size:.88rem;min-height:41px;padding:8px 12px}
.db2-crm-finance-tab[aria-selected="true"]{background:#161616;color:#fff;box-shadow:inset 0 -3px 0 var(--pink)}
.db2-crm-finance-tab:hover{background:#ffe0ea}
.db2-crm-finance-tab[aria-selected="true"]:hover{background:#303030}
@media(max-width:850px){
 .db2-crm-sidebar{gap:16px;align-items:stretch}
 .db2-crm-nav-group{flex:0 0 auto}
 .db2-crm-nav-heading{padding:2px 9px 5px;white-space:nowrap}
 .db2-crm-nav-items{flex-direction:row;align-items:center;gap:3px}
 .db2-crm-navbutton{width:auto}
}
@media(max-width:560px){
 .db2-crm-finance-tab{flex:1 1 calc(50% - 7px)}
}

/* Community moderation lives inside existing Communications navigation. */
.db2-crm-icon-community{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204h15a2%202%200%200%201%202%202v11H9l-5%204V6a2%202%200%200%201%202-2z%22%2F%3E%3Cpath%20d%3D%22m9%2010%202%202%204-4%22%2F%3E%3C%2Fsvg%3E")}

/* Staff-only Studio editor, using the existing approved CRM surfaces. */
.db2-crm-icon-studio{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%2010%209-7%209%207v10H3z%22%2F%3E%3Cpath%20d%3D%22M9%2020v-7h6v7M3%2010h18%22%2F%3E%3C%2Fsvg%3E")}
.db2-crm-studio-form{max-width:860px;margin-top:14px}
.db2-crm-studio-fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;border:2px solid #222;margin:18px 0 26px;padding:20px;min-width:0}
.db2-crm-studio-legend{font-family:Impact,"Arial Narrow",sans-serif;font-size:1.5rem;padding:0 10px}
.db2-crm-studio-field{display:flex;flex-direction:column;gap:6px;font-weight:800;min-width:0}
.db2-crm-studio-field input,.db2-crm-studio-field textarea{width:100%;max-width:100%;min-width:0;border:2px solid #111;padding:11px;background:#fff8f6;font:inherit;font-weight:400;font-size:16px;resize:vertical}
.db2-crm-studio-field:has(textarea){grid-column:1/-1}
@media(max-width:650px){.db2-crm-studio-fieldset{grid-template-columns:1fr;padding:12px}.db2-crm-studio-field:has(textarea){grid-column:1}}

/* Pupil workspace intentionally echoes the CRM without exposing staff-only controls. */
.db2-pupil-page .db2-panel{max-width:none}
.db2-pupil-page .db2-app{padding-block:40px}
.db2-pupil-layout{display:grid;grid-template-columns:minmax(170px,210px) minmax(0,1fr);gap:clamp(16px,2vw,28px);align-items:start;margin:22px 0}
.db2-pupil-nav{background:#151515;padding:18px 12px;display:flex;flex-direction:column;gap:5px;position:sticky;top:100px}
.db2-pupil-nav-title{color:#e3b1c3;font-size:.72rem;letter-spacing:.11em;font-weight:900;padding:8px}
.db2-pupil-button{background:transparent;border:0;border-left:4px solid transparent;color:#fff;font:inherit;font-weight:850;text-align:left;cursor:pointer;padding:11px 12px;min-height:46px}
.db2-pupil-button[aria-current="page"]{background:#363636;border-left-color:var(--pink)}
.db2-pupil-button:hover{background:#333}
.db2-pupil-content{min-width:0;overflow-wrap:anywhere}
.db2-pupil-heading{font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(1.9rem,4vw,2.6rem);margin:0 0 7px}
.db2-pupil-card{background:#fffaf6;border:2px solid #171717;margin:17px 0;padding:clamp(15px,2vw,24px)}
.db2-pupil-card h3{font-size:1.32rem;margin:0 0 12px}
.db2-pupil-card p{max-width:none}
.db2-pupil-muted{font-size:.93rem;color:#5b5550}
.db2-pupil-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}
.db2-pupil-stats .db2-pupil-row{background:#ffe0eb;border:1px solid #dda7ba;display:flex;flex-direction:column;gap:8px;padding:15px}
.db2-pupil-row{display:flex;gap:12px;align-items:baseline;justify-content:space-between;padding:11px 0;border-bottom:1px solid #ddd;flex-wrap:wrap}
.db2-pupil-row strong{text-align:right}
.db2-pupil-request{border-bottom:1px solid #ddd;padding:12px 0}
.db2-pupil-request:last-child{border:0}
.db2-pupil-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:15px}
.db2-pupil-form>button,.db2-pupil-form>.db2-pupil-check{grid-column:1/-1;justify-self:start}
.db2-pupil-field{display:flex;flex-direction:column;gap:6px;font-weight:800;min-width:0}
.db2-pupil-field input,.db2-pupil-field select,.db2-pupil-field textarea{width:100%;max-width:100%;min-height:46px;border:2px solid #141414;background:#fff;padding:10px;font:inherit;font-weight:400}
.db2-pupil-field:has(textarea),.db2-pupil-nexttime{grid-column:1/-1}
.db2-pupil-nexttime{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.db2-pupil-nexttime[hidden]{display:none}
.db2-pupil-action,.db2-pupil-link{display:inline-block;padding:10px 13px;border:2px solid #151515;background:#fff3f7;color:#151515;text-decoration:none;font-weight:800;margin:6px 7px 6px 0;cursor:pointer}
.db2-pupil-feedback{background:#fff1de;border-left:5px solid #eb4188;padding:12px}
.db2-pupil-check{display:flex;align-items:start;gap:10px;font-weight:700}
.db2-pupil-check input{margin-top:6px}
@media(max-width:800px){.db2-pupil-layout{grid-template-columns:1fr}.db2-pupil-nav{position:static;flex-direction:row;flex-wrap:wrap}.db2-pupil-nav-title{flex-basis:100%}.db2-pupil-button{flex:1 1 110px;text-align:center;border-left:0;border-bottom:3px solid transparent}.db2-pupil-button[aria-current="page"]{border-left:0;border-bottom-color:var(--pink)}}
@media(max-width:560px){.db2-pupil-stats,.db2-pupil-form,.db2-pupil-nexttime{grid-template-columns:1fr}.db2-pupil-form>.db2-pupil-field{grid-column:1/-1}}

/* Staff-only example portal, clearly distinguishable from real linked pupil account. */
.db2-pupil-demo-banner{background:#111;color:#fff;border-left:6px solid #f25b91;padding:16px 20px;margin:18px 0 12px;font-weight:800}
.db2-pupil-demo-banner a{color:#ffd8e7;font-weight:900}

/* Full-height desktop menu: all modules use the page scroll, not an
   independently scrolling inner navigation that hides lower categories. */
@media(min-width:851px){
 .db2-admin-page .db2-crm-layout{align-items:start}
 .db2-admin-page .db2-crm-sidebar{
   position:static;top:auto;height:max-content;max-height:none;min-height:0;
   overflow:visible;overscroll-behavior:auto;align-self:start
 }
}
.db2-crm-sidebar:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.db2-crm-settings-tabs,.db2-crm-finance-tabs{margin:16px 0 20px}
.db2-crm-settings-tabs .db2-crm-button,.db2-crm-finance-tabs .db2-crm-button{white-space:normal}
@media(max-width:850px){
 .db2-admin-page .db2-crm-sidebar{
   max-height:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;
 }
}
@media(max-width:560px){
 .db2-crm-settings-tabs .db2-crm-button,.db2-crm-finance-tabs .db2-crm-button{flex:1 1 calc(50% - 8px)}
}

/* The My Lessons title lives alongside the wordmark, not in a separate hero block. */
.db2-pupil-header-title{display:flex;align-items:baseline;gap:6px;white-space:nowrap;
 font-weight:900;font-size:1.04rem;letter-spacing:-.018em}
.db2-pupil-header-title strong{font:inherit}
.db2-pupil-header-title>span:last-child{font-weight:700;color:#635b56}
.db2-pupil-page.db2-app{padding:10px 0 30px;min-height:calc(100vh - 130px)}
.db2-pupil-page .db2-panel{box-shadow:6px 6px 0 var(--pink)}
.db2-pupil-screenreader{position:absolute!important;width:1px!important;height:1px!important;
 overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.db2-pupil-page .db2-pupil-layout{margin-top:6px}
@media(max-width:1160px){
 .db2-pupil-header-title{font-size:.95rem}
}
@media(max-width:620px){
 .db2-pupil-header-title{font-size:.82rem;gap:3px;line-height:1.15}
 .db2-pupil-header-title>span:last-child{max-width:58px;white-space:normal}
 .db2-pupil-page.db2-app{padding-top:8px}
}


/* Staff Build checklist — isolated from all customer and financial data. */
.db2-crm-build-summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0 8px}
.db2-crm-build-summary strong{font-size:1.12rem;font-weight:900}
.db2-crm-build-meter{display:block;width:100%;height:16px;accent-color:#ed4387;margin:0 0 18px}
.db2-crm-build-group{margin:13px 0;border:2px solid #272323;background:#fff}
.db2-crm-build-group[open]{box-shadow:5px 5px 0 #f2abc7;margin-bottom:20px}
.db2-crm-build-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;cursor:pointer;background:#faf3f5;list-style-position:inside}
.db2-crm-build-heading:focus-visible{outline:3px solid #ec4386;outline-offset:1px}
.db2-crm-build-heading strong{font-weight:900;flex:1}
.db2-crm-build-meta{font-size:.8rem;white-space:nowrap;color:#62575b;font-weight:800}
.db2-crm-build-list{padding:5px 13px 10px}
.db2-crm-build-item{display:flex;align-items:flex-start;gap:13px;padding:12px 6px;border-bottom:1px solid #e9e1e4;line-height:1.45}
.db2-crm-build-item:last-child{border-bottom:0}
.db2-crm-build-indicator{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;border:2px solid #776b71;border-radius:50%;font-size:18px;font-weight:900;line-height:1;color:#776b71;user-select:none}
.db2-crm-build-indicator-done{background:#f9dcea;border-color:#8e2856;color:#772747;font-size:15px}
.db2-crm-build-item-content{display:flex;flex-direction:column;gap:3px}
.db2-crm-build-item-content>span{overflow-wrap:anywhere}
.db2-crm-build-item-content small{font-size:.75rem}
.db2-crm-build-done .db2-crm-build-item-content>span{color:#665b60;text-decoration:line-through}
@media(max-width:650px){
 .db2-crm-build-heading{align-items:flex-start;flex-direction:column;padding:13px}
 .db2-crm-build-list{padding:4px 8px 10px}
 .db2-crm-build-item{gap:10px;padding:12px 3px}
 .db2-crm-build-meta{white-space:normal}
}

/* Mobile Firebase popup sign-in can fail when launched inside an in-app browser.
 * Offer an external-browser workaround without changing identity permissions. */
.db2-auth-browser-tip{margin:14px 0 18px;padding:13px 15px;background:#fff4f7;border-left:4px solid #a83065;border-radius:2px;line-height:1.5;color:#33282e;font-size:.94rem}
.db2-auth-browser-tip strong{display:block;margin-bottom:3px}
.db2-auth-browser-tip .db2-inline-btn{display:inline;padding:0 2px;font-weight:800;text-decoration:underline;cursor:pointer}
#copy-login-feedback{display:block;font-size:.85rem;overflow-wrap:anywhere;margin-top:4px}
@media(min-width:850px){.db2-auth-browser-tip{max-width:640px}}

/* Factual sign-in/payment reassurance, not a certification or an auth gate. */
.db2-login-trust{border-top:1px solid #bbb;margin-top:25px;padding-top:15px;color:#3c3937;font-size:.86rem;line-height:1.5}
.db2-login-trust p{margin:0 0 10px}
.db2-login-trust strong{color:var(--ink,#111)}
.db2-login-payments{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.db2-login-payments>span{max-width:440px}
.db2-login-payments>a{display:inline-flex;min-height:44px;align-items:center;padding:4px 0}
.db2-login-payments img{display:block;max-width:135px;height:auto}
.db2-login-payments>a:focus-visible{outline:3px solid var(--pink,#f57);outline-offset:3px}
@media(max-width:450px){.db2-login-payments{align-items:flex-start;flex-direction:column}.db2-login-trust{font-size:.83rem}}


/* Editable staff lesson programme. Never reuse the checkbox directory grid. */
.db2-crm-plan-prep-row{
 display:grid;grid-template-columns:minmax(0,1fr) auto;
 gap:12px 16px;align-items:center;min-width:0;
 padding:14px 0;border-bottom:1px solid #ded8d2
}
.db2-crm-plan-prep-label{min-width:0;overflow-wrap:normal;word-break:normal;line-height:1.45}
.db2-crm-plan-prep-row>.db2-crm-action{white-space:normal;max-width:100%}
.db2-crm-lesson-editor{min-width:0;max-width:100%}
.db2-crm-lesson-editor>summary{font-size:1rem;font-weight:900;cursor:pointer}
.db2-crm-plan-editor-body{min-width:0;width:100%}
.db2-crm-plan-count{font-weight:850;margin:16px 0}
.db2-crm-plan-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:12px;margin:18px 0}
.db2-crm-plan-field{display:flex;flex-direction:column;gap:6px;min-width:0;font-weight:750;font-size:.9rem}
.db2-crm-plan-field input,.db2-crm-plan-field select{
 display:block;width:100%;box-sizing:border-box;min-width:0;min-height:44px;
 font:inherit;font-size:16px;background:#fffaf5;border:2px solid #111;padding:8px
}
.db2-crm-plan-controls>.db2-crm-action{white-space:normal}
.db2-crm-plan-rows{max-height:none;overflow:visible;border:1px solid #e3ddd7}
.db2-crm-plan-row{
 display:grid;grid-template-columns:minmax(105px,.65fr) minmax(150px,1fr) minmax(120px,.65fr) minmax(210px,1.2fr);
 gap:12px;align-items:center;min-width:0;padding:12px 13px;
 border-bottom:1px solid #e3ddd7;background:#fff
}
.db2-crm-plan-row:last-child{border-bottom:0}
.db2-crm-plan-row[data-unverified="yes"]{background:#fffaf4}
.db2-crm-plan-row[data-clash="yes"]{background:#fff1f3;border-left:5px solid #d43366;padding-left:8px}
.db2-crm-plan-identity{display:flex;flex-direction:column;gap:5px;min-width:0}
.db2-crm-plan-identity small{line-height:1.35}
.db2-crm-plan-status{font-size:.85rem;line-height:1.4;overflow-wrap:normal;min-width:0;margin:0}
.db2-crm-plan-warning{color:#86263d;font-size:.85rem;font-weight:800;margin:0}
.db2-crm-plan-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0 8px}
.db2-crm-plan-actions button{white-space:normal}
@media(max-width:980px){
 .db2-crm-plan-row{grid-template-columns:minmax(100px,.7fr) repeat(2,minmax(115px,1fr))}
 .db2-crm-plan-status{grid-column:1/-1}
 .db2-crm-plan-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
 .db2-crm-plan-controls>.db2-crm-action{grid-column:1/-1;justify-self:start}
}
@media(max-width:610px){
 .db2-crm-plan-prep-row{grid-template-columns:minmax(0,1fr)}
 .db2-crm-plan-prep-row>.db2-crm-action{justify-self:start}
 .db2-crm-plan-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
 .db2-crm-plan-identity{grid-column:1/-1}
 .db2-crm-plan-controls{grid-template-columns:minmax(0,1fr)}
 .db2-crm-plan-controls>.db2-crm-action{grid-column:1}
 .db2-crm-plan-status{grid-column:1/-1}
 .db2-crm-plan-actions button{width:100%}
}

/* Staff pupil-record cards collapse independently. */
.db2-crm-collapsible{min-width:0}
.db2-crm-collapsible>.db2-crm-fold-title{
 display:list-item;list-style:disclosure-closed;cursor:pointer;
 font-size:clamp(1.08rem,2vw,1.3rem);font-weight:900;
 padding:3px 4px;outline-offset:4px
}
.db2-crm-collapsible[open]>.db2-crm-fold-title{list-style:disclosure-open;margin-bottom:15px}
.db2-crm-collapsible>.db2-crm-fold-title:focus-visible{outline:3px solid var(--pink)}
/* Lesson statuses use the same compact accessible control in every CRM view. */
.db2-crm-status-menu{display:flex;min-width:0;max-width:100%;margin:5px 0}
.db2-crm-status-menu>select{
 box-sizing:border-box;max-width:100%;width:100%;min-width:0;
 padding:6px;font:inherit;font-size:.81rem;background:#fffaf6;
 border:1.5px solid #202020;border-radius:0
}
.db2-crm-status-menu>select:disabled{background:#f2eee9;color:#777}
.db2-crm-plan-row{grid-template-columns:minmax(95px,.6fr) minmax(125px,1fr) minmax(100px,.7fr) minmax(130px,.85fr) minmax(140px,1fr)}
.db2-crm-plan-identity{min-width:0}
.db2-crm-lesson-editor>.db2-crm-dim:empty,
.db2-crm-plan-editor-body>.db2-crm-dim:empty,
.db2-crm-plan-status:empty{display:none}
@media(max-width:1100px){.db2-crm-plan-row{grid-template-columns:repeat(3,minmax(0,1fr))}.db2-crm-plan-identity,.db2-crm-plan-status{grid-column:1/-1}}
@media(max-width:610px){.db2-crm-plan-row{grid-template-columns:repeat(2,minmax(0,1fr))}.db2-crm-plan-row>.db2-crm-plan-field:nth-child(4){grid-column:1/-1}}

/* Unified readable lesson cards across Overview, Weekly, Monthly and Daily. */
.db2-crm-cell-record,
.db2-crm-roster-card,
.db2-crm-month-entry {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
  min-width:0;
  overflow-wrap:break-word;
}
.db2-crm-cell-record > *,
.db2-crm-month-entry > * {min-width:0}
.db2-crm-cell-record .db2-crm-calendar-pupil,
.db2-crm-month-entry .db2-crm-calendar-pupil {
  display:block;width:100%;font-size:.77rem;line-height:1.35;
}
.db2-crm-cell-record > small,
.db2-crm-month-entry > small,
.db2-crm-roster-card > small,
.db2-crm-cell-record .db2-crm-status-menu,
.db2-crm-month-entry .db2-crm-status-menu {
  font-size:.69rem;
  line-height:1.35;
  font-weight:400;
}
.db2-crm-cell-record .db2-crm-status-menu,
.db2-crm-month-entry .db2-crm-status-menu {
  display:block;width:100%;max-width:100%;margin:3px 0 0;
}
.db2-crm-cell-record .db2-crm-status-menu > select,
.db2-crm-month-entry .db2-crm-status-menu > select {
  display:block;width:100%;max-width:100%;min-width:0;
  box-sizing:border-box;padding:4px 2px;font-size:.69rem;
}
.db2-crm-public-week .db2-crm-week-cell[data-state="roster"] > small.db2-crm-dim,
.db2-crm-public-week .db2-crm-roster-card > small.db2-crm-dim {
  font-size:.69rem;line-height:1.35;font-weight:400;
  overflow-wrap:break-word;word-break:normal;
}
.db2-crm-daily-list {display:flex;flex-direction:column;gap:0}
.db2-crm-daily-row {
  display:grid;grid-template-columns:minmax(75px,110px) minmax(0,1fr);
  gap:14px;padding:12px 8px;border-bottom:1px solid #ddd;
}
.db2-crm-daily-row:last-child {border-bottom:0}
.db2-crm-daily-time {font-size:.9rem}
.db2-crm-daily-entries {display:flex;flex-direction:column;gap:10px}
.db2-crm-daily-entries .db2-crm-cell-record {
  margin:0;padding:10px;border:1px solid #ddd;background:#fff9f5;
}
.db2-crm-daily-entries .db2-crm-status-menu > select {max-width:240px}
@media(max-width:520px){
  .db2-crm-daily-row {grid-template-columns:70px minmax(0,1fr);gap:8px}
}

/* Unified calendar metadata and daily lesson-card system. */
.db2-crm-daily-entries .db2-crm-daily-card,
.db2-crm-daily-entries .db2-crm-roster-card {
  display:flex;flex-direction:column;align-items:stretch;gap:5px;
  padding:12px 14px;margin:0;min-width:0;
  background:#fffaf7;border:1px solid #d6d0cb;
}
.db2-crm-daily-card .db2-crm-calendar-pupil,
.db2-crm-daily-entries .db2-crm-roster-card .db2-crm-calendar-pupil {
  font-size:.85rem;line-height:1.3;font-weight:750;margin:0 0 2px;
}
.db2-crm-daily-entries .db2-crm-daily-meta,
.db2-crm-daily-entries .db2-crm-dim,
.db2-crm-daily-entries .db2-crm-status-menu,
.db2-crm-daily-entries .db2-crm-status-menu select,
.db2-crm-daily-entries .db2-crm-daily-link,
.db2-crm-daily-entries .db2-crm-daily-next-edit,
.db2-crm-daily-entries .db2-crm-daily-next-edit small {
  font-size:.75rem;line-height:1.4;font-weight:400;
}
.db2-crm-daily-entries .db2-crm-status-menu {
  width:100%;margin:3px 0 2px;
}
.db2-crm-daily-entries .db2-crm-status-menu select {
  max-width:280px;width:100%;box-sizing:border-box;padding:6px;
}
.db2-crm-daily-entries .db2-crm-daily-meta {display:block;color:#4d4a48}
.db2-crm-daily-actions {display:flex;flex-wrap:wrap;gap:12px;margin-top:5px}
.db2-crm-daily-link {
  background:transparent;border:0;padding:3px 0;text-align:left;
  color:#212121;text-decoration:underline;text-underline-offset:3px;cursor:pointer;
}
.db2-crm-daily-link:hover {color:#ad2058}
.db2-crm-daily-next-edit {
  border-top:1px solid #ddd;padding-top:10px;display:flex;flex-wrap:wrap;
  align-items:end;gap:10px;
}
.db2-crm-daily-next-edit label {display:flex;flex-direction:column;gap:4px}
.db2-crm-daily-next-edit input {
  font:inherit;font-size:.75rem;min-width:0;max-width:160px;padding:7px;
  border:1px solid #444;border-radius:0;
}
.db2-crm-daily-next-edit small {flex-basis:100%}
.db2-crm-cell-record > small.db2-crm-dim,
.db2-crm-month-entry > small.db2-crm-dim,
.db2-crm-roster-card > small.db2-crm-dim,
.db2-crm-public-week .db2-crm-week-cell[data-state="roster"] > small.db2-crm-dim,
.db2-crm-public-week .db2-crm-roster-card > small.db2-crm-dim {
  font-size:.75rem;line-height:1.4;font-weight:400;
}
.db2-crm-week-cell .db2-crm-status-menu select,
.db2-crm-month-entry .db2-crm-status-menu select {
  font-size:.75rem;line-height:1.4;
}

/* Daily: a consistent two-column pupil identity / lesson information card. */
.db2-crm-daily-entries .db2-crm-daily-card {
  display:grid;
  grid-template-columns:minmax(140px, 38%) minmax(0, 1fr);
  gap:18px;
  align-items:start;
  padding:14px 16px;
}
.db2-crm-daily-identity,
.db2-crm-daily-detail {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:0;
  gap:6px;
}
.db2-crm-daily-identity .db2-crm-calendar-pupil {
  font-size:.9rem;
  line-height:1.3;
  font-weight:750;
  margin-bottom:4px;
}
.db2-crm-daily-identity .db2-crm-daily-meta,
.db2-crm-daily-detail .db2-crm-daily-meta,
.db2-crm-daily-detail .db2-crm-daily-link,
.db2-crm-daily-detail .db2-crm-status-menu select {
  font-size:.78rem;
  line-height:1.4;
}
.db2-crm-daily-detail .db2-crm-status-menu {
  margin:0;
}
.db2-crm-daily-detail .db2-crm-daily-actions {
  margin:6px 0 0;
}
.db2-crm-month-summary {
  display:block;
  width:100%;
  border:0;
  background:transparent;
  padding:3px 0;
  font-size:.78rem;
  line-height:1.35;
  font-weight:750;
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
  text-align:left;
  white-space:normal;
}
.db2-crm-month-summary:hover {color:#aa2357}
.db2-crm-month-count {
  display:block;
  margin-top:3px;
  font-size:.68rem;
  line-height:1.35;
  color:#595451;
  overflow-wrap:break-word;
}
@media(max-width:680px) {
  /* One time label and one full-width card per appointment on phones.
     The underlying lesson controls, links and records are unchanged. */
  .db2-admin-page .db2-crm-calendar-card[data-calendar-view="daily"]{
    box-sizing:border-box;width:100%;min-width:0;padding:9px!important
  }
  .db2-admin-page .db2-crm-daily-row{
    display:block;box-sizing:border-box;width:100%;min-width:0;
    padding:12px 0 14px;margin:0;border-bottom:1px solid #ded6d0
  }
  .db2-admin-page .db2-crm-daily-time{
    display:block;margin:0 0 9px;padding:4px 0;
    font-size:1rem;line-height:1.25;font-weight:900
  }
  .db2-admin-page .db2-crm-daily-entries{width:100%;min-width:0}
  .db2-admin-page .db2-crm-daily-entries .db2-crm-daily-card,
  .db2-admin-page .db2-crm-daily-entries .db2-crm-roster-card{
    box-sizing:border-box;display:flex;flex-direction:column;
    width:100%;min-width:0;max-width:100%;gap:9px;
    padding:13px 14px;margin:0
  }
  .db2-admin-page .db2-crm-daily-identity{
    min-width:0;padding-bottom:9px;border-bottom:1px solid #ddd
  }
  .db2-admin-page .db2-crm-daily-identity .db2-crm-calendar-pupil{
    font-size:1rem;line-height:1.3;overflow-wrap:anywhere
  }
  .db2-admin-page .db2-crm-daily-detail{min-width:0;gap:8px}
  .db2-admin-page .db2-crm-daily-entries .db2-crm-daily-meta,
  .db2-admin-page .db2-crm-daily-entries .db2-crm-daily-link{
    font-size:.85rem;line-height:1.45
  }
  .db2-admin-page .db2-crm-daily-entries .db2-crm-status-menu,
  .db2-admin-page .db2-crm-daily-entries .db2-crm-status-menu select{
    box-sizing:border-box;width:100%;max-width:none;min-width:0;
    min-height:44px;font-size:.9rem
  }
  .db2-admin-page .db2-crm-daily-actions{
    display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px
  }
  .db2-admin-page .db2-crm-daily-actions .db2-crm-daily-link{
    padding:8px 0;min-height:40px
  }
}

/* Attendance: explicit two-stage confirmation; recorded lessons only.
   Fits the existing Calendar and pupil Lessons & Credits card layouts. */
.db2-crm-attendance-controls {
 display:flex;flex-direction:column;align-items:flex-start;gap:6px;
 margin:7px 0 4px;padding-top:7px;border-top:1px solid #ded8d3;
 min-width:0;
}
.db2-crm-attendance-note {
 display:block;color:#4b4140;font-size:.75rem;line-height:1.45;
}
.db2-crm-attendance-controls .db2-crm-action {
 font-size:.75rem;line-height:1.35;padding:6px 9px;
 max-width:100%;white-space:normal;text-align:left;
}
.db2-crm-attendance-confirm {
 border-color:#96194b;background:#96194b;color:#fff;
}
.db2-crm-attendance-controls .db2-crm-message {
 font-size:.75rem;line-height:1.4;max-width:100%;
}

/* Staff lesson schedule: readable, distinct statuses without colouring planned rows. */
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="upcoming"]{background:#fff0b3}
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="completed"],
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="attended"]{background:#d9f4df}
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="no_show"]{background:#ffdcdd}
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="cancelled"]{background:#e6e6e6}
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="reschedule"]{background:#eadcf9}
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="rescheduled"]{background:#d9eafd}
.db2-crm-lesson-editor .db2-crm-plan-row[data-lesson-state="planned"]{background:transparent}
.db2-crm-lesson-editor .db2-crm-plan-row[data-clash="yes"]{border-left:5px solid #d43366;padding-left:8px}
.db2-crm-lesson-editor .db2-crm-plan-row[data-verified="true"] select:disabled{
 background:#fff;color:#252525;opacity:1;text-overflow:clip
}
.db2-crm-lesson-editor .db2-crm-plan-actions>.db2-crm-attendance-controls{display:contents}
.db2-crm-lesson-editor .db2-crm-plan-actions>.db2-crm-attendance-controls label{
 width:100%;flex-basis:100%
}
.db2-crm-lesson-editor .db2-crm-plan-actions textarea{
 box-sizing:border-box;width:100%;min-height:72px;font:inherit
}
.db2-crm-lesson-editor>summary,
.db2-crm-internal-history>summary{
 font-size:1rem;font-weight:900;line-height:1.5
}

/* Matching calendar status colours in Overview, Daily, Weekly and Monthly. */
.db2-crm-content :is(.db2-crm-cell-record,.db2-crm-month-entry,.db2-crm-roster-card)[data-lesson-state="upcoming"]{background:#fff0b3}
.db2-crm-content :is(.db2-crm-cell-record,.db2-crm-month-entry,.db2-crm-roster-card)[data-lesson-state="completed"]{background:#d9f4df}
.db2-crm-content :is(.db2-crm-cell-record,.db2-crm-month-entry,.db2-crm-roster-card)[data-lesson-state="no_show"]{background:#ffdcdd}
.db2-crm-content :is(.db2-crm-cell-record,.db2-crm-month-entry,.db2-crm-roster-card)[data-lesson-state="cancelled"]{background:#e6e6e6}
.db2-crm-content :is(.db2-crm-cell-record,.db2-crm-month-entry,.db2-crm-roster-card)[data-lesson-state="reschedule"]{background:#eadcf9}
.db2-crm-content :is(.db2-crm-cell-record,.db2-crm-month-entry,.db2-crm-roster-card)[data-lesson-state="rescheduled"]{background:#d9eafd}
.db2-crm-content :is(.db2-crm-cell-record,.db2-crm-month-entry,.db2-crm-roster-card)[data-lesson-state="planned"]{background:transparent}
.db2-crm-lesson-editor{display:block}
.db2-crm-lesson-editor>h3{font-size:1rem;line-height:1.5;font-weight:900;margin:0 0 14px}
.db2-crm-correction-area{display:contents}
.db2-crm-correction-area .db2-crm-attendance-controls{display:contents}
.db2-crm-correction-area label{flex-basis:100%}
.db2-crm-lesson-editor .db2-crm-plan-actions .db2-crm-action,
.db2-crm-lesson-editor .db2-crm-plan-actions .db2-crm-button{
 font-size:.85rem;line-height:1.3;font-weight:750
}
.db2-crm-package-table-wrap{overflow-x:auto;margin:12px 0}
.db2-crm-package-table{width:100%;min-width:640px;border-collapse:collapse;font-size:.82rem}
.db2-crm-package-table :is(th,td){padding:10px 8px;border-bottom:1px solid #ddd;text-align:left;white-space:normal}
.db2-crm-package-table th{font-weight:800;background:#f5f0eb}
.db2-crm-package-edit{margin-top:14px}
.db2-crm-package-edit>summary{cursor:pointer;font-weight:750}

/* Recorded does not imply Attended: only the individual lesson status supplies colour. */
.db2-crm-week-cell[data-state="recorded"]{background:#fff}
.db2-crm-public-week .db2-crm-week-cell[data-state="recorded"]{background:#fff}

/* One Firebase-backed schedule: display status, not a disabled second editor. */
.db2-crm-calendar-status{display:inline-block;font-size:.82rem;font-weight:750;line-height:1.5}
.db2-crm-plan-actions button[hidden]{display:none!important}

/* Unsaved suggestions never masquerade as persisted pupil appointments. */
.db2-crm-lesson-editor .db2-crm-plan-rows[hidden],
.db2-crm-lesson-editor .db2-crm-plan-controls[hidden]{display:none!important}

/* One-line purchase heading; supporting metrics sit immediately below it. */
.db2-crm-purchased-package{border:1px solid #c9c2bc;margin:4px 0 10px;background:#fff;min-width:0}
.db2-crm-purchased-summary{
 position:relative;display:flex;align-items:center;flex-wrap:nowrap;
 gap:0;white-space:nowrap;overflow-x:auto;min-width:0;
 cursor:pointer;padding:12px 12px 12px 32px;
 background:#f6f2ef;list-style:none;font-size:.82rem;line-height:1.4
}
.db2-crm-purchased-summary::-webkit-details-marker{display:none}
.db2-crm-purchased-summary::before{content:"▸";position:absolute;left:10px;top:10px;font-size:1rem;font-weight:900}
.db2-crm-purchased-package[open]>.db2-crm-purchased-summary::before{content:"▾"}
.db2-crm-purchased-summary:focus-visible{outline:3px solid var(--pink);outline-offset:2px}
.db2-crm-package-summary-item{flex:none;font-weight:750}
.db2-crm-package-summary-item+.db2-crm-package-summary-item::before{content:" / ";white-space:pre;color:#777;font-weight:400}
.db2-crm-package-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;padding:10px 0 6px;min-width:0}
.db2-crm-package-summary-cell{display:flex;flex-direction:column;gap:3px;min-width:0}
.db2-crm-package-summary-cell small{font-size:.7rem;font-weight:650;color:#625c56}
.db2-crm-package-summary-cell strong{font-size:.85rem;font-weight:800;overflow-wrap:anywhere}
.db2-crm-purchased-package>.db2-crm-package-facts{padding:10px 12px}
.db2-crm-schedule-first{padding:0 12px;min-width:0}
.db2-crm-schedule-first .db2-crm-lesson-editor>h3{display:none}
.db2-crm-schedule-first .db2-crm-lesson-editor{margin:0;padding:0}
.db2-crm-schedule-first .db2-crm-plan-count{display:none}
.db2-crm-schedule-first .db2-crm-plan-controls{margin:7px 0 10px}
.db2-crm-schedule-first .db2-crm-plan-rows{margin-top:2px}
.db2-crm-earlier-package:not([open]){margin-bottom:9px}
.db2-crm-package-history{margin:10px 16px 16px;border-top:1px solid #d9d5d0;padding-top:12px}
.db2-crm-package-history>summary{font-weight:850;cursor:pointer}
.db2-crm-audit-event{border-bottom:1px solid #ded8d2;padding:10px 4px}
.db2-crm-audit-event>summary{cursor:pointer;font-weight:700;font-size:.88rem}
.db2-crm-audit-event[open]>summary{margin-bottom:8px}
.db2-crm-audit-change{margin:7px 0;line-height:1.5;font-size:.9rem;overflow-wrap:anywhere}
.db2-crm-lesson-notes-toggle{min-width:0;align-self:end;white-space:nowrap;padding:8px 10px;font-size:.78rem}
.db2-crm-lesson-editor .db2-crm-plan-row{grid-template-columns:minmax(95px,.65fr) minmax(128px,1.2fr) minmax(88px,.7fr) minmax(115px,1fr) minmax(116px,.75fr)}
.db2-crm-lesson-editor .db2-crm-plan-status{grid-column:1/-1;margin:0}
@media(max-width:850px){
 .db2-crm-lesson-editor .db2-crm-plan-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .db2-crm-lesson-notes-toggle{grid-column:2;justify-self:start}
}
.db2-crm-lesson-notes-area{grid-column:1/-1;padding:13px 14px;background:rgba(255,255,255,.75);border-top:1px solid #b6ada7;display:flex;flex-direction:column;gap:11px;min-width:0}
.db2-crm-lesson-notes-area[hidden]{display:none!important}
.db2-crm-lesson-notes-area .db2-crm-plan-field{width:100%;max-width:none}
.db2-crm-lesson-notes-area textarea,
.db2-crm-note-editor textarea,
.db2-crm-daily-note-input{
 box-sizing:border-box;width:100%;min-width:0;border:2px solid #111;
 padding:10px;resize:vertical;font:inherit;background:#fff
}
.db2-crm-linked-note{border-bottom:1px solid #ddd;padding:10px 0;overflow-wrap:anywhere}
.db2-crm-linked-note small{display:block;margin:5px 0;color:#615c56}
.db2-crm-linked-note p{margin:7px 0;white-space:pre-wrap}
.db2-crm-note-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 0}
.db2-crm-note-editor .db2-crm-plan-field:has(textarea){grid-column:1/-1}
.db2-crm-note-editor>button{justify-self:start}
.db2-crm-daily-note-panel{grid-column:1/-1;border-top:1px solid #bbb;padding:13px 0 0;min-width:0}
.db2-crm-daily-note-panel textarea{min-height:88px}
.db2-crm-daily-note-visibility{display:block;margin:10px 0;padding:8px;border:1px solid #999;font:inherit}
/* Calendar names remain prominent; status labels are secondary. */
.db2-crm-week-cell .db2-crm-calendar-status,
.db2-crm-month-entry .db2-crm-calendar-status{font-size:.68rem;line-height:1.35;font-weight:400}
.db2-crm-daily-attendance{align-items:flex-start;gap:3px}
.db2-crm-daily-attendance>span{font-size:.72rem}
.db2-crm-daily-attendance>select{max-width:240px}
@media(max-width:850px){
 .db2-crm-package-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .db2-crm-purchased-summary{padding-left:28px}
 .db2-crm-schedule-first{padding:0 8px}
 .db2-crm-package-history{margin-inline:8px}
 .db2-crm-note-editor{grid-template-columns:minmax(0,1fr)}
}

/* Pupil note history: one package, then expandable individual lessons. */
.db2-crm-teaching-notes{display:flex;flex-direction:column;gap:9px;min-width:0}
.db2-crm-teaching-package{
 border:1px solid #d6d0ca;background:#fff;min-width:0
}
.db2-crm-teaching-package>summary{
 cursor:pointer;padding:10px 12px;font-weight:800;background:#f6f2ef;
 font-size:.9rem;line-height:1.45
}
.db2-crm-teaching-package[open]>summary{
 border-bottom:1px solid #d6d0ca
}
.db2-crm-teaching-lesson{
 margin:0 12px;border-bottom:1px solid #e3ded9;min-width:0
}
.db2-crm-teaching-lesson:last-child{border-bottom:0}
.db2-crm-teaching-lesson>summary{
 cursor:pointer;padding:10px 2px;font-size:.86rem;line-height:1.4;font-weight:700
}
.db2-crm-teaching-lesson>.db2-crm-dim{margin:4px 2px 12px}
.db2-crm-teaching-lesson>.db2-crm-linked-note{padding:8px 5px}
.db2-crm-teaching-archive>summary{background:#f9f8f6}

/* One CRM navigation tree, two presentations: full desktop and tidy mobile
   disclosure. Overrides legacy horizontal scrolling sidebar styles. */
.db2-crm-mobile-nav-toggle{display:none}
.db2-crm-sidebar .db2-crm-navbutton{
 display:flex;align-items:center;justify-content:flex-start;gap:10px;
 min-height:46px;font-family:Arial,Helvetica,sans-serif;font-size:14px;
 font-weight:700;line-height:20px;text-align:left;letter-spacing:0;
}
.db2-crm-sidebar .db2-crm-nav-icon{display:block;flex:0 0 19px;
 width:19px;height:19px;align-self:center;background-position:center}
.db2-crm-sidebar .db2-crm-nav-label{display:block;line-height:20px;flex:1}
.db2-crm-sidebar .db2-crm-nav-heading{font-family:Arial,Helvetica,sans-serif;
 font-size:11px;line-height:16px}
.db2-crm-hours-tools,.db2-crm-hours-day-actions{display:flex;flex-wrap:wrap;gap:9px}
.db2-crm-mobile-hours-control{display:none}
@media(max-width:850px){
 .db2-admin-page .db2-crm-layout{display:flex;flex-direction:column;gap:12px}
 .db2-crm-mobile-nav-toggle{display:flex;align-items:center;justify-content:space-between;
  width:100%;min-height:50px;padding:11px 15px;background:#161616;color:#fff;
  border:0;border-radius:8px;font:700 15px/22px Arial,Helvetica,sans-serif}
 .db2-crm-mobile-nav-toggle:after{content:"▾";font-size:19px}
 .db2-crm-mobile-nav-toggle[aria-expanded="true"]:after{content:"▴"}
 .db2-admin-page .db2-crm-sidebar{display:none!important}
 .db2-admin-page .db2-crm-sidebar.is-open{display:flex!important;flex-direction:column!important;
   position:static;overflow:visible;max-height:none;white-space:normal;
   align-items:stretch;gap:12px;width:100%;padding:14px}
 .db2-admin-page .db2-crm-sidebar .db2-crm-nav-group{display:flex;flex-direction:column;
   min-width:0;width:100%}
 .db2-admin-page .db2-crm-sidebar .db2-crm-nav-items{display:flex;flex-direction:column;
   align-items:stretch;gap:3px;min-width:0}
 .db2-admin-page .db2-crm-sidebar .db2-crm-navbutton{width:100%;flex:none;
   padding:11px 12px;min-height:46px;font-size:14px;line-height:20px;
   box-shadow:none;border-left:3px solid transparent}
 .db2-admin-page .db2-crm-sidebar .db2-crm-navbutton[aria-current="page"]{
   box-shadow:none;border-left-color:var(--pink);background:#343434}
 .db2-admin-page .db2-crm-sidebar .db2-crm-nav-heading{
   padding:8px 12px 4px;white-space:normal;font-size:11px}
 .db2-admin-page .db2-crm-content{width:100%;min-width:0}
 .db2-crm-mobile-hours-control{display:block;margin:14px 0}
 .db2-crm-mobile-hours-control label{font-weight:800;display:block}
 .db2-crm-mobile-hours-control select{display:block;width:100%;min-height:46px;
   margin-top:6px;padding:9px;border:2px solid #151515;background:#fff;font:inherit}
 .db2-crm-capacity-matrix [data-mobile-hidden="true"]{display:none}
 .db2-crm-capacity-scroll{overflow-x:visible}
 .db2-crm-capacity-matrix{width:100%;table-layout:fixed}
 .db2-crm-capacity-matrix :is(th,td){width:50%;max-width:50%;text-align:center}
 .db2-crm-capacity-matrix .db2-crm-time-label{text-align:left}
 .db2-crm-capacity-matrix .db2-crm-matrix-cell{width:100%;min-height:46px}
}

/* Mobile Teaching Hours: turn the one existing matrix into compact rows,
   not a 680px-wide table. Staff selects a day above this SAME set of controls. */
@media (max-width:850px){
 .db2-admin-page .db2-crm-content,
 .db2-admin-page .db2-crm-content .db2-crm-card,
 .db2-admin-page .db2-crm-capacity-scroll{box-sizing:border-box;min-width:0;max-width:100%}
 .db2-admin-page .db2-crm-capacity-scroll{width:100%;overflow-x:hidden;margin:12px 0}
 .db2-admin-page .db2-crm-capacity-matrix{display:block;width:100%;min-width:0;
  max-width:100%;table-layout:auto;border-collapse:separate}
 .db2-admin-page .db2-crm-capacity-matrix thead{display:none}
 .db2-admin-page .db2-crm-capacity-matrix tbody{display:block;width:100%}
 .db2-admin-page .db2-crm-capacity-matrix tbody tr{
   display:grid;grid-template-columns:minmax(103px,42%) minmax(0,1fr);
   gap:10px;align-items:center;width:100%;min-width:0;padding:6px 0;
   border-bottom:1px solid #ded6cf}
 .db2-admin-page .db2-crm-capacity-matrix tbody tr > th.db2-crm-time-label{
  display:block;box-sizing:border-box;width:auto;min-width:0;max-width:none;
  padding:9px 4px;text-align:left;white-space:nowrap;font-size:.88rem;
  font-weight:800;line-height:1.35;border:0;background:transparent}
 .db2-admin-page .db2-crm-capacity-matrix tbody tr > td{
  display:none;box-sizing:border-box;width:auto;min-width:0;max-width:none;
  padding:0;border:0}
 .db2-admin-page .db2-crm-capacity-matrix tbody tr > td[data-mobile-hidden="false"]{
  display:block}
 .db2-admin-page .db2-crm-capacity-matrix .db2-crm-matrix-cell{
  box-sizing:border-box;display:flex;align-items:center;justify-content:center;
  width:100%;max-width:100%;min-height:44px;margin:0;padding:8px;
  border-radius:5px;line-height:1.2;font-size:1rem}
 .db2-admin-page .db2-crm-hours-tools,
 .db2-admin-page .db2-crm-hours-day-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .db2-admin-page .db2-crm-hours-tools .db2-crm-action,
 .db2-admin-page .db2-crm-hours-day-actions .db2-crm-action{
  box-sizing:border-box;width:100%;min-width:0;min-height:42px;
  font-size:.85rem;padding:8px}
}
@media(max-width:390px){
 .db2-admin-page .db2-crm-capacity-matrix tbody tr{grid-template-columns:minmax(95px,44%) minmax(0,1fr);gap:6px}
 .db2-admin-page .db2-crm-capacity-matrix tbody tr > th.db2-crm-time-label{font-size:.79rem}
}

/* One enquiry: requested times, other CRM suggestions, and a bounded offer.
   Colours show dated evidence only, never a reserved or payable appointment. */
.db2-offer-panel-heading{margin:18px 0 8px}
.db2-offer-panel-heading h4,.db2-offer-list-title{
 font-family:Arial,Helvetica,sans-serif;font-size:1.08rem;
 line-height:1.35;font-weight:850;margin:14px 0 9px}
.db2-offer-time-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px}
.db2-offer-time-choice{box-sizing:border-box;display:flex;flex-direction:column;
 align-items:stretch;gap:5px;width:100%;min-width:0;padding:12px;
 border:1px solid #b7b0a9;border-left:5px solid #888;background:#fff;
 border-radius:6px;font:inherit;text-align:left;cursor:pointer;box-shadow:none}
.db2-offer-time-choice[aria-pressed="true"]{outline:2px solid #111;outline-offset:1px;background:#fbf4f7}
.db2-offer-time-choice:focus-visible{outline:3px solid #111;outline-offset:2px}
.db2-offer-time-choice.db2-offer-green{border-left-color:#29845b}
.db2-offer-time-choice.db2-offer-amber{border-left-color:#bb7918}
.db2-offer-time-choice.db2-offer-red{border-left-color:#ae3d42}
.db2-offer-time-choice.db2-offer-grey{border-left-color:#858585}
.db2-offer-time-name{display:flex;align-items:center;justify-content:space-between;gap:8px}
.db2-offer-time-name strong{font-size:1rem}
.db2-offer-time-name small{font-size:.72rem;font-weight:850;color:#535353}
.db2-offer-time-detail{font-size:.83rem;line-height:1.4;color:#4b4540}
.db2-offer-selection{border:1px solid #ddd6cf;border-radius:6px;padding:12px;margin:14px 0}
.db2-offer-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.db2-offer-chip{display:inline-flex;align-items:center;border:1px solid #181818;
 border-radius:20px;background:#fff;padding:8px 11px;
 min-height:37px;font:750 .8rem/1.3 Arial,Helvetica,sans-serif;cursor:pointer}
.db2-offer-manual{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.db2-offer-manual h4{grid-column:1/-1;margin:5px 0 0;font-size:1rem}
.db2-offer-manual > button{grid-column:1/-1;justify-self:start}
.db2-offer-email{margin:12px 0}
.db2-offer-email-preview{box-sizing:border-box;width:100%;min-height:215px;
 padding:12px;border:1px solid #aaa;border-radius:5px;
 background:#fff;font:400 .9rem/1.5 Arial,Helvetica,sans-serif;white-space:pre-wrap}
@media(max-width:720px){
 .db2-offer-time-list{grid-template-columns:1fr}
 .db2-offer-time-choice{min-height:76px}
 .db2-offer-manual{grid-template-columns:1fr 1fr}
}


/* Calendar: the compact, count-only mobile month layout is also the desktop layout. */
.db2-admin-page .db2-crm-month-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.db2-admin-page .db2-crm-month-cell{box-sizing:border-box;min-width:0;text-align:center;overflow:hidden}
.db2-admin-page .db2-crm-month-total-long,
.db2-admin-page .db2-crm-month-count{display:none}
.db2-admin-page .db2-crm-month-total-short{display:block}
.db2-admin-page .db2-crm-month-summary{
  box-sizing:border-box;display:flex;align-items:center;justify-content:center;
  width:clamp(29px,3vw,38px);max-width:100%;min-height:30px;margin:0 auto;
  padding:3px 1px;background:#f7b3cc;border:1px solid #171717;
  border-radius:6px;text-align:center;text-decoration:none;
  font-size:.82rem;line-height:1.1;font-weight:850
}
.db2-admin-page .db2-crm-month-cell[data-unverified="true"]{
  background:#f4f2ef;color:#89847f
}
.db2-admin-page .db2-crm-month-cell[data-outside="true"]{
  background:#eae7e3;color:#89847f
}
/* Teaching Hours: one compact action row; status and guidance beneath matrix. */
.db2-admin-page .db2-crm-hours-tools{
  display:flex;flex-flow:row nowrap;align-items:center;gap:7px;
  overflow-x:auto;max-width:100%;padding-bottom:4px
}
.db2-admin-page .db2-crm-hours-tools .db2-crm-action{
  box-sizing:border-box;flex:0 1 auto;width:auto;min-width:0;
  min-height:36px;padding:6px 9px;font-size:.78rem;white-space:nowrap
}
.db2-admin-page .db2-crm-hours-feedback{margin:7px 0}
.db2-admin-page .db2-crm-hours-instructions{margin-top:12px}
@media(max-width:680px){
  .db2-admin-page .db2-crm-hours-tools{gap:4px}
  .db2-admin-page .db2-crm-hours-tools .db2-crm-action{
    flex:1 1 0;font-size:.66rem;padding:6px 2px;white-space:normal
  }
}

/* Enquiries Booking Studio: one vertical deck, one inline review.
   Uses the public selector's day-and-time interaction; never a mailbox pane. */
.db2-admin-page .db2-enquiries{
  box-sizing:border-box;min-width:0;width:100%;padding:16px
}
.db2-enquiry-filters{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  border-bottom:1px solid #ded6d0;padding:0 0 13px;margin-bottom:17px
}
.db2-enquiry-state-tabs{display:flex;gap:8px;flex-wrap:wrap}
.db2-enquiry-filters .db2-crm-button{
  min-height:42px;padding:8px 12px;font-size:.86rem;line-height:1.3
}
.db2-enquiry-kind-filter{
  display:flex;align-items:center;gap:8px;font-weight:750;
  font-size:.84rem;margin-left:auto
}
.db2-enquiry-kind-filter select{
  box-sizing:border-box;max-width:220px;min-height:42px;
  padding:7px 12px;border:1px solid #111;background:#fff;font:inherit
}
.db2-enquiry-workspace,.db2-enquiry-cards{
  display:block;min-width:0;width:100%;overflow:visible
}
.db2-crm-request-row[data-compact="true"]{
  box-sizing:border-box;display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 12px;align-items:center;min-width:0;
  margin:0 0 12px;padding:15px;
  border:1px solid #cfc8c0;border-radius:8px;background:#fffdfa;
  box-shadow:none
}
.db2-crm-request-row[data-compact="true"][data-expanded="true"]{
  background:#fff;box-shadow:inset 4px 0 0 #ed508b;
  border-color:#bdabae
}
.db2-enquiry-row-main{
  grid-column:1;min-width:0;display:flex;flex-direction:column;gap:4px
}
.db2-crm-request-row .db2-enquiry-row-main strong{
  grid-column:auto;margin:0;font-size:clamp(1rem,2vw,1.13rem);
  line-height:1.25;font-weight:850;overflow-wrap:anywhere
}
.db2-crm-request-row .db2-enquiry-row-main small{
  grid-column:auto;margin:0;font-size:.84rem;line-height:1.3
}
.db2-enquiry-row-side{
  grid-column:2;display:flex;flex-direction:column;
  align-items:flex-end;gap:3px;white-space:nowrap
}
.db2-enquiry-row-side small{
  grid-column:auto;margin:0;font-size:.73rem;line-height:1.3
}
.db2-enquiry-row-side .db2-enquiry-status{font-weight:800;color:#544a45}
.db2-crm-request-row[data-compact="true"] .db2-enquiry-open{
  box-sizing:border-box;grid-column:1/-1;width:100%;
  justify-content:center;min-height:44px;margin:5px 0 0;
  padding:10px 14px;border:2px solid #151515;
  background:#ee528d;color:#111;
  font:800 .9rem/1.3 Arial,Helvetica,sans-serif;
  text-align:center;text-decoration:none;
  cursor:pointer;box-shadow:4px 4px 0 #111
}
.db2-crm-request-row[data-compact="true"][data-expanded="true"] .db2-enquiry-open{
  background:#fff;box-shadow:none
}
.db2-crm-request-row[data-compact="true"] .db2-enquiry-open:focus-visible{
  outline:3px solid #111;outline-offset:3px
}
.db2-enquiry-expanded{
  box-sizing:border-box;grid-column:1/-1;width:100%;
  min-width:0;margin-top:9px;padding:17px 0 0;
  border-top:1px solid #dcd3cc
}
.db2-enquiry-expanded .db2-crm-request-editor{
  box-sizing:border-box;border:0;margin:0;padding:0
}
.db2-enquiry-expanded .db2-crm-request-editor > h3{
  font:850 clamp(1.2rem,2.5vw,1.55rem)/1.2 Arial,Helvetica,sans-serif;
  text-transform:none;margin:0 0 5px
}
.db2-enquiry-programme{
  font-weight:650;color:#554e48;font-size:.86rem;margin:0 0 12px
}
.db2-enquiry-contact,.db2-enquiry-manual{
  border-top:1px solid #e2dbd5;margin:9px 0
}
.db2-enquiry-contact > summary,.db2-enquiry-manual > summary{
  cursor:pointer;padding:12px 2px;font-size:.89rem;
  font-weight:750;line-height:1.4
}
.db2-enquiry-contact .db2-crm-review-details{margin:0 0 12px}
.db2-enquiry-contact .db2-crm-detail-row{font-size:.85rem}
.db2-enquiry-saved{font-size:.79rem;color:#256144;font-weight:750}
.db2-enquiry-scheduling{margin:16px 0 0}
.db2-enquiry-scheduling-heading{
  display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:8px 14px;margin:0 0 13px
}
.db2-enquiry-scheduling-heading h4{
  font:850 1.12rem/1.3 Arial,Helvetica,sans-serif;margin:0
}
.db2-enquiry-check-status{
  order:3;flex:1 1 100%;margin:0!important;
  font-size:.78rem;line-height:1.4
}
.db2-enquiry-scheduling-heading > button{
  min-height:40px;padding:7px 11px;font-size:.8rem;margin-left:auto
}
.db2-enquiry-day-picker{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;margin:11px 0
}
.db2-enquiry-day-tab{
  box-sizing:border-box;display:flex;justify-content:center;align-items:center;
  gap:4px;min-width:0;min-height:44px;padding:6px 3px;
  border:1px solid #d7d0c8;border-radius:7px;background:#fffaf5;
  color:#151515;font:800 .89rem/1.1 Arial,Helvetica,sans-serif;cursor:pointer
}
.db2-enquiry-day-tab[aria-pressed="true"]{
  background:#f7b9d0;border:2px solid #171717
}
.db2-enquiry-day-tab:focus-visible{outline:3px solid #111;outline-offset:2px}
.db2-enquiry-day-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;min-height:18px;padding:1px 3px;
  background:#171717;color:#fff;border-radius:50%;
  font-size:.68rem;line-height:1
}
.db2-enquiry-grid-title{
  font:850 1.1rem/1.3 Arial,Helvetica,sans-serif;
  margin:12px 0 14px
}
.db2-enquiry-time-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;min-width:0
}
.db2-enquiry-scheduling .db2-enquiry-time-grid .db2-offer-time-choice{
  box-sizing:border-box;display:flex;flex-direction:column;
  justify-content:center;align-items:center;min-width:0;
  min-height:68px;padding:7px 5px;gap:3px;
  border:1px solid #ded5ca;border-radius:7px;background:#fffaf5;
  box-shadow:none;text-align:center;color:#151515;cursor:pointer
}
.db2-enquiry-scheduling .db2-enquiry-time-grid .db2-offer-time-choice[aria-pressed="true"]{
  border:2px solid #171717;background:#f6b8d0;
  outline:none
}
.db2-enquiry-time-grid .db2-offer-time-choice:focus-visible{
  outline:3px solid #111;outline-offset:2px
}
.db2-enquiry-time-value{font-size:1.02rem;font-weight:850;line-height:1.2}
.db2-enquiry-time-state{display:flex;align-items:center;gap:5px;
 font-size:.76rem;line-height:1.1;color:#4f4942}
.db2-enquiry-state-dot{width:9px;height:9px;display:inline-block;border-radius:50%;background:#8c8c8c}
.db2-enquiry-state-green{background:#2d875d}
.db2-enquiry-state-amber{background:#c4811b}
.db2-enquiry-state-red{background:#b34249}
.db2-enquiry-state-grey{background:#888}
.db2-enquiry-requested{
  font-size:.67rem;font-weight:800;line-height:1.1;
  color:#9f2452;text-transform:uppercase;letter-spacing:.03em
}
.db2-enquiry-grid-guidance{
  font-size:.75rem;line-height:1.45;margin:10px 0 0!important
}
.db2-enquiry-manual .db2-offer-manual{margin:0 0 12px}
.db2-enquiry-offer{
  margin:18px 0 0;border:1px solid #d9d2cb;
  border-radius:7px;padding:15px;background:#fff
}
.db2-enquiry-offer > strong{font-size:1rem;font-weight:850}
.db2-enquiry-offer .db2-crm-field[hidden],
.db2-enquiry-scheduling .db2-enquiry-day-picker[hidden],
.db2-enquiry-scheduling .db2-enquiry-grid-title[hidden],
.db2-enquiry-scheduling .db2-enquiry-time-grid[hidden],
.db2-enquiry-scheduling .db2-enquiry-grid-guidance[hidden]{
  display:none!important
}
.db2-enquiry-offer .db2-offer-programme-help{
  color:#5d554f;font-size:.79rem;line-height:1.45;margin:3px 0 12px
}
.db2-enquiry-offer .db2-offer-action-help{
  color:#5d554f;font-size:.78rem;line-height:1.45;margin:6px 0 16px
}
.db2-enquiry-offer .db2-enquiry-offer-actions{
  margin:12px 0 4px;padding:10px 0;border-bottom:1px solid #e4d9d4
}
.db2-enquiry-offer .db2-offer-email{
  border:1px solid #ddd2cb;border-radius:7px;padding:12px;
  background:#fffaf5
}
.db2-enquiry-offer .db2-offer-chips{margin:10px 0}
.db2-enquiry-offer > button{min-height:43px;max-width:100%}
.db2-enquiry-offer .db2-offer-email{
  margin-top:12px;border-top:1px solid #ded7d1
}
.db2-enquiry-offer .db2-offer-email[hidden]{display:none!important}
.db2-enquiry-offer .db2-offer-email summary{
  cursor:pointer;font-size:.86rem;font-weight:800;padding:12px 0
}
.db2-enquiry-offer .db2-enquiry-offer-caption{
  font-size:.74rem;line-height:1.4;margin:10px 0 0!important;color:#625951
}
@media(max-width:740px){
  .db2-admin-page .db2-enquiries{padding:10px}
  .db2-enquiry-filters{gap:8px}
  .db2-enquiry-kind-filter{
    margin-left:0;width:100%;justify-content:space-between
  }
  .db2-enquiry-kind-filter select{flex:1;max-width:100%}
  .db2-crm-request-row[data-compact="true"]{padding:13px 10px}
  .db2-enquiry-row-main strong{font-size:1rem}
  .db2-enquiry-day-picker{
    grid-template-columns:repeat(4,minmax(0,1fr));gap:6px
  }
  .db2-enquiry-day-tab{min-height:44px;padding:7px 2px;font-size:.84rem}
  .db2-enquiry-time-grid{gap:6px}
  .db2-enquiry-scheduling .db2-enquiry-time-grid .db2-offer-time-choice{
    min-height:68px;padding:7px 3px
  }
  .db2-enquiry-time-value{font-size:1rem}
}

/* Pupil Profile is the sole contact editor. Keep view and edit modes exclusive. */
.db2-admin-page .db2-crm-profile-summary[hidden],
.db2-admin-page .db2-crm-profile-edit[hidden]{display:none!important}
.db2-admin-page .db2-crm-profile-actions{
  display:flex;justify-content:flex-end;gap:8px;margin:12px 0 4px
}
.db2-admin-page .db2-crm-profile-edit{margin-top:12px}


/* Staff-only, unverified additional package proposals inside Purchases & lessons. */
.db2-admin-page .db2-crm-add-lessons-panel{
  margin:12px 0;padding:14px;border:1px solid #171717;background:#fffaf6
}
.db2-admin-page .db2-crm-add-lessons-panel[hidden]{display:none!important}
.db2-admin-page .db2-crm-add-lessons-form{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px
}
.db2-admin-page .db2-crm-add-lessons-form label{font-size:.82rem;font-weight:700}
.db2-admin-page .db2-crm-add-lessons-form select,
.db2-admin-page .db2-crm-add-lessons-form input{
  display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:9px;
  border:1px solid #161616;background:#fff;font:inherit
}
.db2-admin-page .db2-crm-purchase-price{font-weight:800;margin:12px 0}
.db2-admin-page .db2-crm-pending-purchase{margin:10px 0;border:1px solid #222}
.db2-admin-page .db2-crm-pending-purchase .db2-crm-purchased-summary{
  background:#f7ecce;padding:10px
}
.db2-admin-page .db2-crm-pending-purchase .db2-crm-package-facts{
  padding:12px;gap:10px
}
.db2-admin-page .db2-crm-pending-purchase .db2-crm-dim{padding:0 12px 12px}
@media(max-width:680px){
 .db2-admin-page .db2-crm-add-lessons-form{grid-template-columns:1fr}
}


/* Keep Profile compact; don't render an empty contact-save notice. */
.db2-admin-page .db2-crm-contact-save-status[hidden]{display:none!important}
/* Additional lessons live below the existing package, not within its dated plan. */
.db2-admin-page .db2-crm-add-lessons-panel{width:auto;min-width:0;margin:14px 0}
.db2-admin-page .db2-crm-add-lessons-form{grid-template-columns:minmax(0,1fr)}
.db2-admin-page .db2-crm-add-lessons-form label{min-width:0;max-width:100%}
.db2-admin-page .db2-crm-add-lessons-form select{
  display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;
  overflow:hidden;text-overflow:ellipsis
}
.db2-admin-page .db2-crm-purchase-shell{
  margin:12px;padding:10px;border:1px solid #d4cabc;background:#fffaf3
}
.db2-admin-page .db2-crm-purchase-shell>summary{
  cursor:pointer;font-weight:750;padding:6px 2px
}
.db2-admin-page .db2-crm-purchase-shell-rows{margin-top:10px}
.db2-admin-page .db2-crm-purchase-shell-row{
  display:grid;grid-template-columns:70px 1fr 85px 1.1fr;
  align-items:center;gap:8px;padding:8px 4px;border-top:1px solid #e0dad0;
  font-size:.78rem
}
@media(max-width:680px){
 .db2-admin-page .db2-crm-purchase-shell-row{
   grid-template-columns:repeat(2,minmax(0,1fr));gap:4px
 }
}


/* Profile: edit the existing contact rows in place rather than switching views. */
.db2-admin-page .db2-crm-profile-inline-input[hidden],
.db2-admin-page .db2-crm-profile-summary .db2-crm-detail-row > strong[hidden],
.db2-admin-page .db2-crm-profile-actions > button[hidden]{
  display:none!important
}
.db2-admin-page .db2-crm-profile-summary .db2-crm-detail-row{
  min-height:42px
}
.db2-admin-page .db2-crm-profile-inline-input{
  box-sizing:border-box;min-width:0;width:min(65%,380px);
  margin-left:auto;padding:8px 10px;border:1px solid #171717;
  background:#fffaf6;color:#111;font:inherit;font-weight:700
}
@media(max-width:520px){
 .db2-admin-page .db2-crm-profile-inline-input{width:62%;font-size:.9rem}
}

/* 7 Nov Enquiries polish: compact booking cards, no duplicate contact panel.
   All rules scoped to the staff Enquiries view only. */
.db2-admin-page .db2-enquiries .db2-crm-request-row[data-compact="true"]{
  grid-template-columns:minmax(0,1.05fr) minmax(0,1.15fr) minmax(238px,.9fr);
  gap:10px 14px;align-items:center;padding:13px 15px
}
.db2-admin-page .db2-enquiries .db2-enquiry-row-main{
  grid-column:1;grid-row:1;min-width:0
}
.db2-enquiry-row-meta{
  display:flex;flex-wrap:wrap;gap:4px 10px;
  color:#726961;font-size:.75rem;line-height:1.3
}
.db2-crm-request-row .db2-enquiry-row-meta small{grid-column:auto;margin:0}
.db2-enquiry-row-contact{
  box-sizing:border-box;grid-column:2;grid-row:1;
  min-width:0;display:flex;flex-direction:column;gap:3px
}
.db2-crm-request-row .db2-enquiry-row-contact small{
  grid-column:auto;display:block;margin:0;
  max-width:100%;font-size:.77rem;line-height:1.35;
  overflow-wrap:anywhere
}
.db2-enquiry-row-actions{
  grid-column:3;grid-row:1;min-width:0;
  display:flex;align-items:center;justify-content:flex-end;gap:8px
}
.db2-admin-page .db2-enquiries .db2-enquiry-row-actions .db2-enquiry-archive{
  box-sizing:border-box;flex:1 1 110px;min-width:0;
  min-height:42px;padding:8px 6px;margin:0;
  font-size:.75rem;line-height:1.2;white-space:normal;
  background:#fffaf5;border:1px solid #171717;cursor:pointer
}
.db2-admin-page .db2-enquiries .db2-crm-request-row[data-compact="true"] .db2-enquiry-row-actions .db2-enquiry-open{
  grid-column:auto;grid-row:auto;justify-self:auto;
  flex:1 1 122px;width:auto;min-width:0;min-height:42px;
  margin:0;padding:8px 7px;font-size:.77rem;line-height:1.2;
  box-shadow:2px 2px 0 #111
}
.db2-enquiry-message-section{
  margin:0 0 13px;padding:0;min-width:0
}
.db2-enquiry-message-heading{
  margin:0 0 9px;
  font:850 1.05rem/1.3 Arial,Helvetica,sans-serif
}
.db2-enquiry-expanded-message{
  box-sizing:border-box;margin:0;padding:10px 13px;
  border-left:3px solid #ee528d;background:#fff8f5;
  color:#38332f;font-size:.88rem;line-height:1.55;
  white-space:pre-wrap;overflow-wrap:anywhere
}
.db2-admin-page .db2-enquiries .db2-enquiry-expanded{
  grid-column:1/-1;grid-row:2;width:100%;margin-top:2px;
  padding:11px 0 0;display:flex;flex-direction:column;align-items:stretch
}
.db2-enquiry-expanded .db2-crm-request-editor{
  flex:0 0 auto
}
.db2-enquiry-expanded .db2-enquiry-scheduling{
  margin:3px 0 0
}
.db2-enquiry-scheduling-label{
  font:850 1.12rem/1.3 Arial,Helvetica,sans-serif;
  margin:0 0 12px
}
.db2-enquiry-create-panel{
  border:1px solid #d6c8c7;border-left:4px solid #ee528d;
  background:#fff;padding:16px;margin:4px 0 18px
}
.db2-enquiry-create-heading{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:10px;margin-bottom:12px
}
.db2-enquiry-create-heading h4{
  font:850 1.15rem/1.3 Arial,Helvetica,sans-serif;margin:0
}
.db2-enquiry-create-panel .db2-crm-edit-form{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:end;gap:12px
}
.db2-enquiry-create-panel .db2-crm-edit-form label{
  box-sizing:border-box;min-width:0
}
.db2-enquiry-create-panel .db2-crm-edit-form label:has(textarea){
  grid-column:1/-1
}
.db2-enquiry-create-panel .db2-crm-edit-form > button{
  grid-column:1/-1;justify-self:start;min-height:42px
}
.db2-crm-request-toolbar .db2-enquiry-create{
  min-height:40px;margin-left:8px
}
.db2-enquiry-offer-actions{
  display:flex;flex-wrap:wrap;gap:9px;margin-top:12px
}
.db2-enquiry-offer-actions .db2-crm-button{
  flex:1 1 145px;min-height:44px
}
.db2-enquiry-offer-actions .db2-crm-action{
  flex:1 1 120px;min-height:44px
}
.db2-enquiry-unsent-action:disabled{
  opacity:.48;cursor:not-allowed
}
.db2-enquiry-offer .db2-offer-test-tools{
  margin:10px 0 0;padding:9px 0 0;border-top:1px solid #e1d8d2
}
.db2-enquiry-offer .db2-offer-test-tools summary{
  cursor:pointer;color:#645d56;font-size:.77rem;font-weight:650
}
.db2-enquiry-offer .db2-offer-test-tools > p{
  margin:8px 0;font-size:.75rem;line-height:1.45
}
.db2-enquiry-offer .db2-enquiry-offer-actions{
  border-top:1px solid #ded7d1;
  border-bottom:0;
  padding:12px 0 0;
  margin:12px 0 5px
}
.db2-enquiry-offer .db2-offer-email{margin:12px 0}
.db2-enquiry-offer .db2-offer-email-preview{
  width:100%;box-sizing:border-box
}
@media(max-width:760px){
  .db2-admin-page .db2-enquiries .db2-crm-request-row[data-compact="true"]{
    grid-template-columns:minmax(0,1fr) auto;gap:8px 10px
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-row-main{
    grid-column:1;grid-row:1
  }
  .db2-enquiry-row-contact{
    grid-column:1/-1;grid-row:2;padding-top:3px
  }
  .db2-enquiry-row-actions{
    grid-column:2;grid-row:1;
    display:flex;flex-direction:column;gap:7px
  }
  .db2-admin-page .db2-enquiries .db2-crm-request-row[data-compact="true"] .db2-enquiry-row-actions .db2-enquiry-open,
  .db2-admin-page .db2-enquiries .db2-enquiry-row-actions .db2-enquiry-archive{
    width:100%;min-width:100px;min-height:39px
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-expanded{grid-row:3}
}
@media(max-width:510px){
  .db2-enquiry-row-actions{
    grid-column:1/-1;grid-row:3;
    flex-direction:row;justify-content:stretch
  }
  .db2-admin-page .db2-enquiries .db2-crm-request-row[data-compact="true"] .db2-enquiry-row-actions .db2-enquiry-open,
  .db2-admin-page .db2-enquiries .db2-enquiry-row-actions .db2-enquiry-archive{
    width:auto;min-width:0
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-expanded{grid-row:4}
  .db2-enquiry-create-panel .db2-crm-edit-form{
    grid-template-columns:minmax(0,1fr)
  }
  .db2-enquiry-create-panel .db2-crm-edit-form label:has(textarea){
    grid-column:1
  }
}


/* Enquiry cards respond to the ACTUAL CRM panel width, not just viewport
   width (the sidebar makes the content area much narrower on tablets).
   Action labels must never collapse into individual letters. */
.db2-admin-page .db2-enquiries .db2-enquiry-cards{
  container-type:inline-size;
}
.db2-admin-page .db2-enquiries .db2-enquiry-row-actions{
  flex-wrap:nowrap;
}
.db2-admin-page .db2-enquiries .db2-enquiry-row-actions > button{
  box-sizing:border-box;
  overflow-wrap:normal;
  word-break:normal;
  white-space:nowrap;
  text-align:center;
}
.db2-admin-page .db2-enquiries .db2-enquiry-message-section{
  margin-bottom:8px;
}
.db2-admin-page .db2-enquiries .db2-enquiry-expanded{
  row-gap:0;
  padding-top:9px;
}
.db2-admin-page .db2-enquiries .db2-enquiry-expanded .db2-enquiry-scheduling{
  margin-top:0;
}
@container (max-width:780px){
  .db2-admin-page .db2-enquiries .db2-crm-request-row[data-compact="true"]{
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    padding:12px;
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-row-main{
    grid-column:1;grid-row:1;
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-row-contact{
    grid-column:1;grid-row:2;
    display:flex;flex-direction:row;flex-wrap:wrap;
    gap:4px 12px;padding:0;
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-row-actions{
    grid-column:1;grid-row:3;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;min-width:0;
    justify-content:stretch;
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-row-actions > button{
    width:100%;min-width:0;margin:0;
    font-size:.76rem;line-height:1.25;
    padding:9px 4px;min-height:42px;
    justify-self:stretch;
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-expanded{
    grid-column:1;grid-row:4;
  }
}
@container (max-width:370px){
  .db2-admin-page .db2-enquiries .db2-enquiry-row-contact{
    flex-direction:column;align-items:stretch;
  }
  .db2-admin-page .db2-enquiries .db2-enquiry-row-actions > button{
    font-size:.71rem;padding:8px 2px;
  }
}

/* Pending and future packages match the active lesson schedule design.
   Yellow means provisional here, never a paid or verified booking. */
.db2-admin-page .db2-crm-pending-purchase{
  min-width:0;overflow:hidden;margin:0 0 12px;border:1px solid #c9c2bc
}
.db2-admin-page .db2-crm-pending-purchase>.db2-crm-purchased-summary{
  box-sizing:border-box;display:block;width:100%;max-width:100%;min-width:0;
  white-space:normal;overflow:visible;overflow-wrap:anywhere;
  padding:12px 42px 12px 32px;line-height:1.45;
  background:#f6f2ef;font-size:.84rem
}
.db2-admin-page .db2-crm-pending-purchase>.db2-crm-purchased-summary::before{
  top:12px;left:11px
}
.db2-admin-page .db2-crm-pending-purchase>.db2-crm-package-facts{
  padding:12px;grid-template-columns:repeat(4,minmax(0,1fr))
}
.db2-admin-page .db2-crm-proposal-lesson-editor{
  padding:0 12px 14px;min-width:0
}
.db2-admin-page .db2-crm-proposal-lesson-editor .db2-crm-plan-rows{
  border:1px solid #e3ddd7;max-height:650px;overflow-y:auto
}
.db2-admin-page .db2-crm-proposal-row[data-lesson-state="upcoming"]{
  background:#fff0b3
}
.db2-admin-page .db2-crm-proposal-row[data-lesson-state="cancelled"]{
  background:#e6e6e6;color:#666
}
.db2-admin-page .db2-crm-proposal-row .db2-crm-plan-field input:disabled{
  opacity:1;background:#fffaf5;color:#333;border-color:#444
}
.db2-admin-page .db2-crm-proposal-status{gap:6px}
.db2-admin-page .db2-crm-proposal-status strong{
  min-height:44px;display:flex;align-items:center;padding:8px;
  box-sizing:border-box;border:2px solid #111;background:#fffaf5;
  font-size:.85rem;font-weight:650
}
.db2-admin-page .db2-crm-offer-controls{grid-template-columns:minmax(0,1fr);margin:12px 0}
.db2-admin-page .db2-crm-offer-controls select{
  max-width:100%;min-width:0;box-sizing:border-box
}
.db2-admin-page .db2-crm-offer-actions{padding:6px 0 0}
.db2-admin-page .db2-crm-offer-actions button[hidden]{display:none!important}
.db2-admin-page .db2-crm-offer-feedback:empty{display:none!important}
.db2-admin-page .db2-crm-withdrawn-offer>.db2-crm-purchased-summary{
  background:#e6e6e6;text-decoration:line-through
}
@media(max-width:900px){
 .db2-admin-page .db2-crm-pending-purchase>.db2-crm-package-facts{
   grid-template-columns:repeat(2,minmax(0,1fr))
 }
}
@media(max-width:610px){
 .db2-admin-page .db2-crm-proposal-lesson-editor .db2-crm-plan-rows{
   max-height:620px
 }
 .db2-admin-page .db2-crm-proposal-row .db2-crm-plan-identity{
   grid-column:1/-1
 }
}

/* Branded, responsive Drum Break email preview; the email's actual CSS is inline
   in the single reusable, customer-safe template. No email is sent here. */
.db2-enquiry-offer .db2-crm-field:has(select[name="offeredProgramme"]){
  margin:0 0 15px;
}
.db2-enquiry-offer select[name="offeredProgramme"]{
  box-sizing:border-box;display:block;min-width:0;max-width:100%;width:100%;
  min-height:44px;padding:10px;border:1px solid #171717;background:#fff;
  font:700 .94rem/1.35 Arial,Helvetica,sans-serif;
}
.db2-email-preview-render{
  box-sizing:border-box;max-width:100%;overflow-x:auto;
  padding:16px 12px;background:#f5f0e9;border:1px solid #dfd6ce;
  border-radius:6px;font:400 .9rem/1.5 Arial,Helvetica,sans-serif;
}
.db2-email-preview-render table{max-width:100%;width:100%!important}
.db2-email-preview-plain{margin:10px 0}
.db2-email-preview-plain summary{
  cursor:pointer;padding:9px 0;font-size:.79rem;color:#635953
}
.db2-email-preview-plain textarea{
  max-width:100%;min-height:190px;font-family:monospace;font-size:.82rem
}
@media(max-width:650px){
 .db2-email-preview-render{padding:8px 3px}
 .db2-email-preview-render td{overflow-wrap:anywhere}
}


/* Drum Break pupil workspace: the same facts as staff, a warmer learning view. */
.db2-pupil-page .db2-pupil-layout{grid-template-columns:minmax(170px,210px) minmax(0,1fr)}
.db2-pupil-profile-top{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.db2-pupil-avatar,.db2-crm-pupil-avatar{
 display:flex;align-items:center;justify-content:center;flex:none;
 width:72px;height:72px;overflow:hidden;border-radius:50%;
 border:3px solid #171717;background:#f7b3cc;color:#141414;
 font-weight:900;font-size:1.4rem;letter-spacing:.03em
}
.db2-pupil-avatar img,.db2-crm-pupil-avatar img{
 width:100%;height:100%;object-fit:cover;display:block
}
.db2-pupil-profile-identity{display:flex;flex-direction:column;gap:4px;min-width:0}
.db2-pupil-profile-identity strong{font-size:1.22rem}
.db2-pupil-avatar-actions,.db2-pupil-profile-actions,.db2-pupil-lesson-actions,
.db2-pupil-form-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.db2-pupil-avatar-actions{margin:8px 0 20px}
.db2-pupil-avatar-actions label{position:relative;cursor:pointer}
.db2-pupil-avatar-actions input[type=file]{
 position:absolute;inset:0;opacity:0;cursor:pointer;width:100%
}
.db2-pupil-profile-fields{border-top:1px solid #ddd}
.db2-pupil-profile-row{display:flex;align-items:center;justify-content:space-between;
 gap:12px;min-height:56px;border-bottom:1px solid #ddd;padding:8px 0}
.db2-pupil-profile-row strong{margin-left:auto;text-align:right;overflow-wrap:anywhere}
.db2-pupil-profile-input{
 box-sizing:border-box;max-width:65%;min-width:0;width:340px;
 border:2px solid #111;background:#fff;padding:10px;font:inherit
}
.db2-pupil-profile-input[hidden],
.db2-pupil-profile-row strong[hidden]{display:none!important}
.db2-pupil-profile-actions{justify-content:flex-end;margin:16px 0}
.db2-pupil-profile-actions .db2-pupil-button,
.db2-pupil-lesson-actions .db2-pupil-button,
.db2-pupil-form-actions .db2-pupil-button{
 color:#111;background:#f14c88;border:2px solid #111;
 box-shadow:3px 3px 0 #111;border-radius:0;min-height:40px;
 padding:8px 12px;font-weight:850
}
.db2-pupil-profile-actions .db2-pupil-action,
.db2-pupil-lesson-actions .db2-pupil-action,
.db2-pupil-form-actions .db2-pupil-action,
.db2-pupil-avatar-actions .db2-pupil-action{
 display:inline-flex;align-items:center;min-height:40px;
 border:1px solid #111;color:#111;background:#fffaf6;padding:8px 12px;
 cursor:pointer;font:inherit;font-weight:800
}
.db2-pupil-schedule-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 15px}
.db2-pupil-schedule-metrics .db2-pupil-row{
 display:flex;flex-direction:column;align-items:flex-start;gap:6px;
 background:#fff;border:1px solid #c6c1bb;padding:11px
}
.db2-pupil-schedule-metrics .db2-pupil-row strong{text-align:left;font-size:1.18rem}
.db2-pupil-lesson-row{border:1px solid #ddd;padding:12px;margin:8px 0;
 background:#f3f1ee;min-width:0}
.db2-pupil-lesson-row[data-status="attended"]{background:#d9f4df}
.db2-pupil-lesson-row[data-status="upcoming"]{background:#fff0b3}
.db2-pupil-lesson-row[data-status="requested"]{background:#eadcf9}
.db2-pupil-lesson-row[data-status="review"]{background:#eee}
.db2-pupil-lesson-lead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.db2-pupil-lesson-lead small{font-size:.8rem;color:#49413c}
.db2-pupil-lesson-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:6px 0}
.db2-pupil-lesson-meta .db2-pupil-row{display:flex;flex-direction:column;gap:3px;border:0}
.db2-pupil-lesson-meta .db2-pupil-row strong{text-align:left}
.db2-pupil-lesson-actions{justify-content:flex-end;margin:8px 0}
.db2-pupil-reschedule-form{margin:10px 0;padding:14px;border:1px solid #c6b07c;background:#fffaf3;
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.db2-pupil-reschedule-form .db2-pupil-field:has(textarea),
.db2-pupil-reschedule-form .db2-pupil-form-actions,
.db2-pupil-reschedule-form .db2-pupil-muted{grid-column:1/-1}
.db2-pupil-counter-offer{padding:10px;border-left:4px solid #a94bca;background:#fff}
.db2-pupil-note-card{margin:12px 0;border:2px solid #171717;background:#fffaf6}
.db2-pupil-note-card>summary{cursor:pointer;display:flex;align-items:center;
 flex-wrap:wrap;gap:10px;padding:15px;background:#fce7ef;font-weight:850}
.db2-pupil-note-card>summary::marker{color:#111}
.db2-pupil-note-category{background:#171717;color:#fff;font-size:.72rem;
 padding:5px 8px;text-transform:uppercase;letter-spacing:.04em}
.db2-pupil-note-content{padding:15px;font-size:1rem;line-height:1.6}
.db2-pupil-note-content p{white-space:pre-wrap}
.db2-pupil-receipt{margin:9px 0;border:1px solid #d0c4ba;background:#fff}
.db2-pupil-receipt summary{cursor:pointer;font-weight:850;padding:13px;background:#f6f2ef}
.db2-pupil-receipt>.db2-pupil-row,
.db2-pupil-receipt>a,.db2-pupil-receipt>p{margin:0 12px}
.db2-crm-pupil-heading{display:flex;align-items:center;gap:15px;min-width:0}
.db2-crm-pupil-avatar{width:54px;height:54px;font-size:1rem}
.db2-crm-pupil-heading .db2-crm-screen-title{margin:0}
.db2-admin-page .db2-crm-teaching-notes{gap:10px}
.db2-admin-page .db2-crm-teaching-package{border:1px solid #211f1e}
.db2-admin-page .db2-crm-teaching-package>summary{
 background:#fce4ed;font-weight:850;padding:13px 15px
}
.db2-admin-page .db2-crm-teaching-lesson>summary{
 font-weight:850;font-size:.92rem;padding:12px 6px
}
.db2-admin-page .db2-crm-linked-note{
 background:#fffaf6;border-left:4px solid #ed4d89;margin:7px 4px;padding:12px
}
@media(max-width:850px){
 .db2-pupil-page .db2-pupil-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
 .db2-pupil-schedule-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
 .db2-pupil-lesson-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
 .db2-pupil-reschedule-form{grid-template-columns:1fr}
 .db2-pupil-reschedule-form .db2-pupil-field{grid-column:1/-1}
 .db2-pupil-profile-input{max-width:60%;font-size:16px}
 .db2-pupil-avatar{width:60px;height:60px}
}
\n/* One configurable invitation expiry, persisted with the existing offer draft.
   A validity choice never activates payment sending by itself. */
.db2-enquiry-offer select[name="offerValidityHours"]{
  box-sizing:border-box;display:block;min-height:43px;width:100%;
  max-width:100%;padding:9px 12px;background:#fff;border:1px solid #171717;
  font:700 .88rem/1.3 Arial,Helvetica,sans-serif;
}
.db2-enquiry-offer-validity{
  margin:4px 0 14px!important;max-width:72ch;
  font-size:.76rem;line-height:1.5;color:#625951;
}


/* Compact pupil portal: keep the active package expanded by default. */
.db2-pupil-profile-top{gap:14px;min-width:0;align-items:center}
.db2-pupil-profile-top .db2-pupil-profile-identity{flex:1 1 auto}
.db2-pupil-profile-top .db2-pupil-profile-actions{
  margin:0 0 0 auto;justify-content:flex-end;flex:0 0 auto;align-self:flex-start
}
.db2-pupil-package{border:2px solid #171717;background:#fffaf6;margin:10px 0 18px;min-width:0}
.db2-pupil-package-heading{padding:13px 18px;background:#f2eae5;font-size:1.08rem;font-weight:850;cursor:pointer}
.db2-pupil-package-body{padding:12px 14px 16px;min-width:0}
.db2-pupil-package-body>.db2-pupil-muted{font-size:.78rem;margin:5px 0 10px}
.db2-pupil-package .db2-pupil-schedule-metrics{margin:2px 0 10px;gap:6px}
.db2-pupil-package .db2-pupil-schedule-metrics .db2-pupil-row{
  min-height:0;padding:8px 10px;gap:3px;font-size:.82rem
}
.db2-pupil-package .db2-pupil-schedule-metrics strong{font-size:1.02rem}
.db2-pupil-lesson-column-head{
  display:grid;grid-template-columns:90px minmax(0,1fr) 100px minmax(140px,1fr) 108px;
  gap:10px;padding:5px 10px;font-size:.72rem;font-weight:800;
  color:#5c554f;text-transform:uppercase;letter-spacing:.03em
}
.db2-pupil-package .db2-pupil-lesson-row{
  display:grid;grid-template-columns:90px minmax(0,1fr) 108px;
  gap:10px;align-items:center;min-height:60px;box-sizing:border-box;
  padding:8px 10px;margin:3px 0;border-color:#e7e1d9
}
.db2-pupil-package .db2-pupil-lesson-lead{display:block;font-size:.85rem}
.db2-pupil-package .db2-pupil-lesson-meta{
  grid-template-columns:minmax(0,1fr) 100px minmax(140px,1fr);
  align-items:center;gap:10px;margin:0
}
.db2-pupil-package .db2-pupil-lesson-meta .db2-pupil-row{padding:0;min-height:0}
.db2-pupil-package .db2-pupil-lesson-meta .db2-pupil-row .db2-pupil-muted{display:none}
.db2-pupil-package .db2-pupil-lesson-meta .db2-pupil-row strong{
  font-size:.82rem;line-height:1.3;font-weight:700;overflow-wrap:anywhere
}
.db2-pupil-package .db2-pupil-lesson-actions{justify-content:flex-end;margin:0}
.db2-pupil-package .db2-pupil-lesson-actions button{min-height:32px;font-size:.78rem;padding:5px 8px}
.db2-pupil-package .db2-pupil-lesson-row>form,
.db2-pupil-package .db2-pupil-lesson-row>.db2-pupil-muted,
.db2-pupil-package .db2-pupil-lesson-row>.db2-pupil-counter-offer{
 grid-column:1/-1
}
@media(max-width:800px){
 .db2-pupil-lesson-column-head{display:none}
 .db2-pupil-package .db2-pupil-lesson-row{
  grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:10px 8px
 }
 .db2-pupil-package .db2-pupil-lesson-lead{grid-column:1}
 .db2-pupil-package .db2-pupil-lesson-meta{grid-column:1/-1;grid-row:2;
   grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .db2-pupil-package .db2-pupil-lesson-meta .db2-pupil-row .db2-pupil-muted{
  display:block;font-size:.72rem
 }
 .db2-pupil-package .db2-pupil-lesson-actions{grid-row:1;grid-column:2}
}
@media(max-width:520px){
 .db2-pupil-profile-top .db2-pupil-profile-actions button{padding:7px 9px}
 .db2-pupil-package-body{padding:9px}
 .db2-pupil-package .db2-pupil-lesson-row{margin:3px 0}
}


/* Pupil contact editing: photo controls appear only beside Save in edit mode. */
.db2-pupil-profile-top .db2-pupil-profile-actions{
  display:flex;align-items:flex-start;justify-content:flex-end;
  gap:8px;flex-wrap:wrap;margin-left:auto;min-width:0
}
.db2-pupil-profile-top .db2-pupil-photo-picker{
  position:relative;overflow:hidden;cursor:pointer
}
.db2-pupil-profile-top .db2-pupil-photo-picker input[type="file"]{
  position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer
}
.db2-pupil-profile-save-message:empty{display:none}
.db2-pupil-profile-save-message{
  margin:8px 0;color:#332923;font-size:.84rem
}
/* Keep the site's original +/− marker, centred in the header on the right. */
.db2-pupil-package>.db2-pupil-package-heading{
  display:block;position:relative;box-sizing:border-box;
  min-width:0;list-style:none;
  padding:12px 48px 12px 14px;cursor:pointer;
}
.db2-pupil-package>.db2-pupil-package-heading::-webkit-details-marker{display:none}
.db2-pupil-package>.db2-pupil-package-heading::marker{content:""}
.db2-pupil-package>.db2-pupil-package-heading::after{
  right:16px;top:50%;transform:translateY(-50%);
  line-height:1;font-size:1.7rem;font-weight:900;
}
.db2-pupil-package>.db2-pupil-package-heading:focus-visible{
  outline:3px solid #ed4d89;outline-offset:2px
}
@media(max-width:650px){
  .db2-pupil-profile-top{flex-wrap:wrap}
  .db2-pupil-profile-identity{min-width:110px}
  .db2-pupil-profile-top .db2-pupil-profile-actions{
    justify-content:flex-start;flex-basis:100%;margin-left:0
  }
}


/* A separate, compact operational funnel beneath the three teaching totals. */
.db2-crm-pipeline-heading {
  margin:26px 0 0;
  font-size:.86rem;
  font-weight:900;
  line-height:1.3;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.db2-crm-pipeline-stats {
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:9px;
  margin-bottom:6px;
}
.db2-crm-pipeline-stats .db2-crm-stat {
  background:#fff;
  min-height:92px;
  border-top:4px solid var(--pink);
}
.db2-crm-pipeline-stats .db2-crm-stat-num {
  font-size:clamp(1.9rem,3.5vw,2.7rem);
}
.db2-crm-pipeline-note { margin:6px 0 24px; }
@media(max-width:960px) {
  .db2-crm-pipeline-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px) {
  .db2-crm-pipeline-stats { gap:8px; }
  .db2-crm-pipeline-stats .db2-crm-stat { min-height:90px; }
}

/* Curriculum and teaching journal — development branch.
   Scoped styles keep existing booking, finance and contact forms unchanged. */
.db2-teach-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0 20px}
.db2-teach-tabs .db2-crm-action,.db2-teach-tabs .db2-pupil-button{
 width:auto;flex:0 1 auto;min-height:43px;padding:9px 15px;border:2px solid #171717;
 background:#fff;cursor:pointer;font-weight:850}
.db2-teach-tabs [aria-pressed="true"]{background:#fce1eb;border-color:#171717;
 box-shadow:3px 3px 0 #171717}
.db2-teach-panel{padding:0!important;min-width:0}
.db2-teach-panel h3{margin:18px 0 8px}
.db2-teach-browse{display:grid;grid-template-columns:minmax(200px,2fr) repeat(2,minmax(130px,1fr));
 gap:10px;align-items:end;margin:14px 0}
.db2-teach-field{display:flex;flex-direction:column;gap:5px;margin:9px 0;
 font-weight:700;font-size:.9rem}
.db2-teach-field input:not([type="checkbox"]),.db2-teach-field select,
.db2-teach-field textarea,.db2-teach-browse input,.db2-teach-browse select,
.db2-teach-inline-form input,.db2-teach-inline-form select,.db2-teach-inline-form textarea{
 width:100%;max-width:100%;min-width:0;padding:9px 10px;border:1.5px solid #171717;
 border-radius:0;background:#fff;color:#171717;font:inherit}
.db2-teach-field textarea,.db2-teach-inline-form textarea{resize:vertical}
.db2-teach-field input[type="checkbox"]{width:20px;height:20px;vertical-align:middle}
.db2-teach-editor{display:grid;gap:10px;margin:12px 0;padding:14px;border:1px solid #d6cfcc;background:#fff}
.db2-teach-editor>.db2-crm-action{justify-self:start;min-height:43px}
.db2-teach-results{display:flex;gap:7px;flex-wrap:wrap;max-height:170px;overflow:auto;
 padding:10px;background:#faf6f2;border:1px solid #e2d7d0}
.db2-teach-result{font-size:.84rem!important;min-height:37px!important;padding:7px 10px!important}
.db2-teach-choice{margin:9px 0;padding:12px;border:1.5px solid #181818;min-width:0}
.db2-teach-choice legend{font-weight:900;padding:0 6px}
.db2-teach-checks{display:flex;gap:15px;flex-wrap:wrap}
.db2-teach-checks .db2-teach-field{flex-direction:row-reverse;justify-content:flex-end;
 align-items:center;gap:6px;font-size:.82rem}
.db2-teach-custom>summary,.db2-teach-section>summary,
.db2-teach-practice-history>summary{font-weight:850;font-size:.95rem;padding:12px 30px 12px 4px}
.db2-teach-section{border:1px solid #e0d7d0;background:#fff;margin:8px 0;padding:3px 10px}
.db2-teach-section>.db2-teach-section{margin:8px}
.db2-teach-library-row{display:grid;gap:4px;border-bottom:1px solid #e7e0d9;padding:10px 2px;min-width:0}
.db2-teach-library-row p{margin:2px 0 5px;white-space:pre-wrap;line-height:1.45}
.db2-teach-library-row small{font-size:.78rem}
.db2-teach-edit>summary{padding:6px 20px 6px 0;color:#504a47;font-size:.8rem}
.db2-teach-inline-form{display:grid;gap:9px;padding:9px;background:#fff7f3;max-width:700px}
.db2-teach-inline-form>.db2-crm-action{justify-self:start}
.db2-teach-level-pills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.db2-teach-level-pills .db2-crm-action{text-align:left;min-width:0;white-space:normal;
 font-size:.84rem;padding:10px}
.db2-teach-level-pills [aria-pressed="true"]{background:#fce1eb;border-color:#171717}
.db2-teach-practice-category{padding:12px 0!important;border-top:1px solid #d7cdc5}
.db2-teach-practice-category h3{margin:4px 0 13px}
.db2-teach-practice-card{margin:7px 0}
.db2-teach-practice-card>summary{gap:12px;justify-content:space-between}
.db2-teach-practice-card>summary strong{flex:1 1 150px}
.db2-teach-practice-card>summary small{font-size:.76rem}
.db2-teach-practice-history{margin:10px 0;padding:4px 10px;border:1px solid #e2d7d0;
 background:#fffaf6}
.db2-teach-practice-history .db2-pupil-note-card{margin:8px 0}
.db2-teach-pupil-section{min-width:0}
.db2-teach-pupil-section .db2-pupil-note-content ul{padding-left:22px}
.db2-teach-pupil-section .db2-pupil-note-content li{margin:6px 0}
@media(max-width:850px){
 .db2-teach-browse{grid-template-columns:1fr 1fr}
 .db2-teach-level-pills{grid-template-columns:repeat(2,minmax(0,1fr))}
 .db2-teach-browse>.db2-teach-field:first-child{grid-column:1/-1}
}
@media(max-width:530px){
 .db2-teach-browse{grid-template-columns:1fr}
 .db2-teach-browse>.db2-teach-field:first-child{grid-column:auto}
 .db2-teach-level-pills{grid-template-columns:1fr 1fr}
 .db2-teach-editor{padding:10px}
}

/* Family portal within the original Pupil Portal. */
.db2-parent-card{margin:0 0 1rem}.db2-parent-line{display:flex;gap:.5rem;flex-wrap:wrap}.db2-parent-choose{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem}.db2-parent-choose select{max-width:100%;padding:.55rem;border:1px solid currentColor;border-radius:.5rem}.db2-parent-permission{display:flex;align-items:center;gap:.65rem;margin:.65rem 0}.db2-parent-child-viewport{margin-top:1rem}@media(max-width:660px){.db2-parent-line{display:block}.db2-parent-choose{align-items:flex-start;flex-direction:column}}

/* Parent account requests live inside the existing Pupil Portal design system.
   Responsive, tap-friendly, and deliberately not styled as confirmed bookings. */
.db2-parent-request-form{display:grid;gap:12px;padding:18px;margin:14px 0 18px;
 border:1px solid #ded4cd;border-radius:12px;background:#fffdfb;min-width:0}
.db2-parent-request-form h3{margin:0;font-size:1.08rem}
.db2-parent-request-form label{display:grid;gap:5px;font-size:.91rem;font-weight:700;min-width:0}
.db2-parent-request-form input,
.db2-parent-request-form textarea,
.db2-parent-request-form select{width:100%;max-width:100%;min-width:0;box-sizing:border-box;
 border:1px solid #a9a09a;border-radius:6px;padding:10px 11px;
 font:inherit;font-size:16px;background:#fff;color:#171717}
.db2-parent-request-form textarea{resize:vertical;min-height:72px}
.db2-parent-request-form button{justify-self:start}
.db2-parent-request{display:grid;gap:7px;margin:12px 0;padding:15px;min-width:0;
 border:1px solid #e0d5ce;border-left:4px solid #d99fba;border-radius:7px;background:#fff}
.db2-parent-request p,.db2-parent-request small{margin:0;overflow-wrap:anywhere}
.db2-parent-request button{justify-self:start}
.db2-parent-reauth{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding-top:10px}
.db2-parent-reauth label{display:grid;gap:5px;font-weight:700}
.db2-parent-reauth input{min-height:42px;max-width:280px;padding:8px 10px;
 font-size:16px;border:1px solid #a9a09a;border-radius:5px;background:#fff}
.db2-parent-request-form [hidden]{display:none!important}
.db2-parent-request-form :is(input,select,textarea,button):focus-visible,
.db2-parent-reauth :is(input,button):focus-visible,
.db2-parent-request button:focus-visible{outline:3px solid #a7346b;outline-offset:3px}
@media(max-width:660px){
 .db2-parent-request-form{padding:12px;gap:12px}
 .db2-parent-reauth{align-items:stretch;flex-direction:column}
 .db2-parent-request-form button,.db2-parent-reauth button{width:100%}
}


/* Unified staff teaching journal; no nested fixed-width note-editor columns. */
.db2-staff-teaching-journal{display:grid;gap:18px;min-width:0;width:100%;box-sizing:border-box}
.db2-teach-journal-section{min-width:0;padding:13px 0;border-bottom:1px solid #d8d1cb}
.db2-teach-journal-section:last-child{border-bottom:0}
.db2-teach-journal-section>h3{font-size:1.1rem;margin:0 0 6px}
.db2-teach-journal-section>.db2-crm-dim{margin:0 0 14px}
.db2-teach-journal-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,116px),1fr));gap:7px}
.db2-teach-journal-level{display:block;border:1px solid #c9c4bf;padding:9px 11px;background:#f8f5f2;font-weight:700;font-size:.85rem}
.db2-teach-journal-level.is-complete{border-color:#337457;background:#e0f0e5}
.db2-teach-journal-package{width:100%;margin:0;box-sizing:border-box}
.db2-teach-journal-lesson{margin:0!important;padding:0 12px;min-width:0}
.db2-teach-journal-lesson>summary{padding:13px 0!important}
.db2-teach-journal-lesson-body{padding:0 0 18px;min-width:0}
.db2-teach-journal-saved{display:grid;gap:12px;margin:9px 0;min-width:0}
.db2-teach-journal-entry{padding:12px;background:#faf8f6;border-left:3px solid #342b29;min-width:0}
.db2-teach-journal-entry p{white-space:pre-wrap;line-height:1.5;margin:7px 0}
.db2-teach-journal-exercise{padding:8px 0;border-top:1px solid #e3dbd4;min-width:0}
.db2-teach-journal-exercise p{margin:5px 0;white-space:pre-wrap}
.db2-teach-journal-private{padding:10px;background:#f5ebee;border-left:3px solid #866177;margin-top:9px}
.db2-teach-journal-practice{border:1px solid #d8d1cb;padding:8px 12px;margin:8px 0}
.db2-teach-journal-practice>summary{cursor:pointer;font-weight:750;padding:6px 0}
.db2-teach-journal-editor{min-width:0;width:100%}
.db2-staff-teaching-journal .db2-teach-editor{box-sizing:border-box;min-width:0;width:100%;max-width:100%}
.db2-staff-teaching-journal .db2-teach-browse{grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));width:100%;max-width:100%;min-width:0}
.db2-staff-teaching-journal textarea,.db2-staff-teaching-journal input,.db2-staff-teaching-journal select{box-sizing:border-box;max-width:100%;min-width:0}
.db2-staff-teaching-journal .db2-teach-inline-form{width:100%;box-sizing:border-box}
.db2-teach-journal-status{margin:0;padding:10px 12px;background:#e1f1e7;border-left:3px solid #337457}
@media(max-width:650px){
 .db2-staff-teaching-journal{gap:12px}
 .db2-teach-journal-lesson{padding:0 8px}
 .db2-teach-journal-section{padding:9px 0}
 .db2-staff-teaching-journal .db2-teach-editor{padding:10px}
}


/* Dated teaching row: keep the journal link beside date, time and status
   whenever the schedule card itself has enough width. The staff sidebar can
   make the card narrower than the viewport, so use container width rather
   than @media window width for the five-column breakpoint. */
.db2-crm-lesson-editor .db2-crm-plan-rows{
  container-type:inline-size;
  container-name:db2-lesson-row-layout;
}
@container db2-lesson-row-layout (min-width:640px){
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row{
    grid-template-columns:minmax(70px,.64fr) minmax(130px,1.28fr)
      minmax(83px,.76fr) minmax(120px,1.08fr) minmax(141px,.95fr);
    column-gap:8px;
    align-items:center;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-lesson-notes-toggle{
    grid-column:5;
    grid-row:1;
    justify-self:stretch;
    align-self:center;
    width:100%;
    white-space:nowrap;
    padding:10px 7px;
  }
}
@container db2-lesson-row-layout (max-width:639px){
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:10px;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-identity{
    grid-column:1/-1;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-lesson-notes-toggle{
    grid-column:2;
    justify-self:stretch;
    align-self:end;
    width:100%;
    min-width:0;
    white-space:normal;
  }
}


/* Staff teaching editor: affirmative branded Save and neutral Cancel. */
.db2-staff-teaching-journal .db2-teach-save-actions{
 display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:8px;
}
.db2-staff-teaching-journal .db2-teach-save{
 display:inline-flex;align-items:center;justify-content:center;
 min-width:118px;min-height:46px;padding:9px 20px;
 background:var(--pink,#f57);color:#111;border:2px solid #111;
 box-shadow:3px 3px 0 #111;cursor:pointer;
 font-family:Impact,"Arial Narrow",sans-serif;
 font-weight:900;font-size:1.17rem;letter-spacing:.025em;
}
.db2-staff-teaching-journal .db2-teach-save:hover:not(:disabled){
 background:var(--pink2,var(--pink,#f57));
}
.db2-staff-teaching-journal .db2-teach-save:disabled{
 opacity:.55;cursor:not-allowed;box-shadow:none;
}
.db2-staff-teaching-journal .db2-teach-cancel{
 appearance:none;background:transparent;color:inherit;border:0;
 padding:10px 2px;cursor:pointer;text-decoration:underline;
 text-underline-offset:3px;font:inherit;font-weight:500;
}
.db2-staff-teaching-journal .db2-teach-cancel:disabled{
 opacity:.5;cursor:not-allowed;
}
.db2-staff-teaching-journal .db2-teach-save:focus-visible,
.db2-staff-teaching-journal .db2-teach-cancel:focus-visible{
 outline:3px solid #111;outline-offset:4px;
}


/* Teaching editor refinements: readable syllabus selector, toggled tiles and
   action alignment. Scoped to staff teaching so the public site is unchanged. */
.db2-staff-teaching-journal .db2-teach-browse>.db2-teach-suggestion-field{
 grid-column:1/-1;width:100%;min-width:0;max-width:100%;
}
.db2-staff-teaching-journal .db2-teach-suggestion-field select{
 display:block;width:100%;min-width:0;max-width:100%;
 box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;
}
.db2-staff-teaching-journal .db2-teach-result[aria-pressed="true"]{
 background:#f8a9c8!important;color:#111!important;
 border:2px solid #111!important;
 box-shadow:2px 2px 0 #111;
 font-weight:850;
}
.db2-staff-teaching-journal .db2-teach-result[aria-pressed="true"]::before{
 content:"✓";margin-right:6px;font-weight:900;
}
.db2-staff-teaching-journal .db2-teach-result:focus-visible{
 outline:3px solid #111;outline-offset:3px;
}
.db2-staff-teaching-journal .db2-teach-save-actions{
 justify-self:stretch;justify-content:flex-end;width:100%;
}
.db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
  > .db2-crm-lesson-notes-toggle{
 align-self:end;min-height:37px;
}


/* Tabbed selected-exercise editor — only one set of fields visible, even with
   twelve exercises; horizontal browser-like tabs retain unsaved draft values. */
.db2-staff-teaching-journal .db2-teach-picks{
 display:grid;gap:0;width:100%;max-width:100%;min-width:0;box-sizing:border-box;
}
.db2-staff-teaching-journal .db2-teach-selected-heading{
 display:block;margin:16px 0 9px;font-weight:850;font-size:.92rem;
}
.db2-staff-teaching-journal .db2-teach-tablist{
 display:flex;align-items:flex-end;flex-wrap:nowrap;gap:3px;
 max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;
 padding:4px 3px 0;border-bottom:2px solid #161616;
 scrollbar-width:thin;overscroll-behavior-x:contain;
}
.db2-staff-teaching-journal .db2-teach-tab{
 appearance:none;position:relative;flex:0 0 auto;
 width:auto;max-width:230px;min-height:40px;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 padding:8px 13px;border:1px solid #b8aaa8;border-bottom:0;
 border-radius:7px 7px 0 0;background:#f1ece9;color:#231e20;
 font:inherit;font-size:.85rem;font-weight:700;
 cursor:pointer;box-shadow:none;
}
.db2-staff-teaching-journal .db2-teach-tab:hover:not(.is-active){
 background:#fce1ec;
}
.db2-staff-teaching-journal .db2-teach-tab.is-active{
 background:#f6aecb;border:2px solid #161616;border-bottom:0;
 color:#111;font-weight:900;
}
.db2-staff-teaching-journal .db2-teach-tab:focus-visible{
 outline:3px solid #161616;outline-offset:-3px;
}
.db2-staff-teaching-journal .db2-teach-tabpanel{
 box-sizing:border-box;min-width:0;max-width:100%;
 padding:14px 16px 16px;
 background:#fff;border:1.5px solid #161616;border-top:0;
}
.db2-staff-teaching-journal .db2-teach-active-choice{
 margin:0;padding:0;border:0;min-width:0;width:100%;
}
.db2-staff-teaching-journal .db2-teach-active-choice>legend{
 padding:3px 0;margin:0;font-weight:900;font-size:1rem;
}
.db2-staff-teaching-journal .db2-teach-active-tools{
 display:flex;justify-content:flex-end;align-items:center;
 margin:0 0 4px;
}
.db2-staff-teaching-journal .db2-teach-active-tools .db2-crm-action{
 min-height:32px;font-size:.78rem;padding:5px 10px;
}
.db2-staff-teaching-journal .db2-teach-exercise-settings{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px;min-width:0;
}
@media(max-width:530px){
 .db2-staff-teaching-journal .db2-teach-tabpanel{padding:10px}
 .db2-staff-teaching-journal .db2-teach-exercise-settings{
  grid-template-columns:minmax(0,1fr);gap:0;
 }
 .db2-staff-teaching-journal .db2-teach-tab{
  max-width:155px;padding:8px 10px;font-size:.8rem;
 }
}


/* Selected-exercise tiles may grow naturally: no 170px scroll box. */
.db2-staff-teaching-journal .db2-teach-results{
 max-height:none;overflow:visible;
}
/* "+" creates a fully editable custom-exercise tab, with no second form. */
.db2-staff-teaching-journal .db2-teach-add-tab{
 width:44px;max-width:44px;min-width:44px;
 min-height:40px;padding:4px;flex:0 0 44px;
 text-align:center;font-size:1.55rem;line-height:1.1;
 font-weight:900;background:#fce1eb;border-color:#171717;
}
.db2-staff-teaching-journal .db2-teach-add-tab:hover:not(:disabled){
 background:#f6aecb;
}
.db2-staff-teaching-journal .db2-teach-add-tab:disabled{
 opacity:.45;cursor:not-allowed;
}
.db2-staff-teaching-journal .db2-teach-custom-identity{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 column-gap:12px;min-width:0;
 padding:4px 0 10px;
}
.db2-staff-teaching-journal .db2-teach-custom-identity>.db2-teach-field:first-child{
 grid-column:1/-1;
}
@media(max-width:530px){
 .db2-staff-teaching-journal .db2-teach-custom-identity{
  grid-template-columns:minmax(0,1fr);
 }
 .db2-staff-teaching-journal .db2-teach-custom-identity>.db2-teach-field:first-child{
  grid-column:1;
 }
}


/* Compact pupil record: profile is a header-triggered editor, while learning
   and practice stay permanently visible below the package facts. */
.db2-admin-page .db2-crm-pupil-heading>.db2-crm-screen-title{
 flex:1 1 auto;min-width:0;overflow-wrap:anywhere;
}
.db2-admin-page .db2-crm-profile-header-button{
 margin-left:auto;flex:0 0 auto;white-space:nowrap;
 padding:9px 12px;min-height:40px;
}
.db2-admin-page .db2-crm-profile-drawer[hidden]{display:none!important}
.db2-admin-page .db2-crm-profile-drawer{
 margin:12px 0 16px;border:1.5px solid #171717;
 background:#fffaf7;box-shadow:none;
}
.db2-admin-page .db2-crm-profile-drawer h2{
 font-size:1.3rem;margin:0 0 13px;
}
.db2-admin-page .db2-crm-learning-card{
 margin:16px 0 20px;
}
.db2-admin-page .db2-crm-learning-card>.db2-staff-learning-overview{
 display:grid;gap:2px;min-width:0;
}
.db2-admin-page .db2-crm-learning-card .db2-teach-journal-section{
 padding:9px 0 13px;
}
.db2-admin-page .db2-crm-learning-card .db2-teach-journal-section:last-child{
 border-bottom:0;padding-bottom:0;
}
@media(max-width:620px){
 .db2-admin-page .db2-crm-pupil-heading{flex-wrap:wrap}
 .db2-admin-page .db2-crm-pupil-heading>.db2-crm-screen-title{
  flex:1 1 calc(100% - 82px)
 }
 .db2-admin-page .db2-crm-profile-header-button{
  margin-left:auto;min-height:38px;
 }
}

/* Syllabus browsing: 8 levels, then 6 lessons, all separate from pupil
   achievement chips. Switching syllabus tiles only changes suggestions. */
.db2-staff-teaching-journal .db2-teach-syllabus-nav{
 grid-column:1/-1;display:grid;gap:8px;min-width:0;width:100%;
}
.db2-staff-teaching-journal .db2-teach-syllabus-heading{
 display:block;font-weight:850;margin-top:4px;
}
.db2-staff-teaching-journal .db2-teach-syllabus-label{
 font-size:.85rem;font-weight:850;margin-top:4px;
}
.db2-staff-teaching-journal .db2-teach-syllabus-levels,
.db2-staff-teaching-journal .db2-teach-syllabus-lessons{
 display:grid;min-width:0;gap:6px;
}
.db2-staff-teaching-journal .db2-teach-syllabus-levels{
 grid-template-columns:repeat(4,minmax(0,1fr));
}
.db2-staff-teaching-journal .db2-teach-syllabus-lessons{
 grid-template-columns:repeat(3,minmax(0,1fr));
}
.db2-staff-teaching-journal .db2-teach-syllabus-tile{
 width:100%;max-width:100%;min-width:0;
 padding:8px 4px;min-height:38px;
 white-space:normal;line-height:1.2;box-sizing:border-box;
}
.db2-staff-teaching-journal .db2-teach-syllabus-tile[aria-pressed="true"]{
 background:#f6aecb;border:2px solid #171717;font-weight:900;
}
.db2-staff-teaching-journal .db2-teach-syllabus-guidance{
 padding:9px 12px;border:1px solid #dfd7d1;background:#faf7f4;
}
.db2-staff-teaching-journal .db2-teach-syllabus-guidance>summary{
 cursor:pointer;font-weight:800;padding:3px 0;
}
.db2-staff-teaching-journal .db2-teach-syllabus-guidance>p{
 margin:11px 0 0;line-height:1.5;white-space:pre-wrap;
}
@media(max-width:470px){
 .db2-staff-teaching-journal .db2-teach-syllabus-levels{
  grid-template-columns:repeat(4,minmax(0,1fr));
 }
 .db2-staff-teaching-journal .db2-teach-syllabus-lessons{
  grid-template-columns:repeat(3,minmax(0,1fr));
 }
 .db2-staff-teaching-journal .db2-teach-syllabus-tile{
  font-size:.76rem;min-height:37px;
 }
}


/* Staff pupil-record mobile density pass — curriculum continuation, 2026-11-08.
   Presentation only. Never change lesson state, Firestore saves or teaching data. */

/* The pupil's avatar, full-name element and profile editor share one compact
   line on phones. Long names remain intact in the DOM and accessible to AT. */
@media (max-width:620px){
  .db2-admin-page .db2-crm-pupil-heading{
    display:grid;grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;column-gap:9px;row-gap:0;min-width:0;
  }
  .db2-admin-page .db2-crm-pupil-heading .db2-crm-pupil-avatar{
    box-sizing:border-box;width:42px;height:42px;min-width:42px;
    font-size:.83rem;
  }
  .db2-admin-page .db2-crm-pupil-heading>.db2-crm-screen-title{
    min-width:0;max-width:100%;margin:0;
    font-size:clamp(1.16rem,5vw,1.55rem);
    line-height:1.05;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;
  }
  .db2-admin-page .db2-crm-pupil-heading>.db2-crm-profile-header-button{
    box-sizing:border-box;grid-column:3;justify-self:end;
    width:auto;max-width:100%;margin:0;min-height:36px;
    padding:6px 8px;line-height:1.15;font-size:.74rem;
    white-space:nowrap;
  }
}
@media (max-width:360px){
  .db2-admin-page .db2-crm-pupil-heading{
    grid-template-columns:36px minmax(0,1fr) auto;column-gap:7px;
  }
  .db2-admin-page .db2-crm-pupil-heading .db2-crm-pupil-avatar{
    width:36px;height:36px;min-width:36px;
  }
  .db2-admin-page .db2-crm-pupil-heading>.db2-crm-screen-title{
    font-size:1.05rem;
  }
  .db2-admin-page .db2-crm-pupil-heading>.db2-crm-profile-header-button{
    font-size:.69rem;padding:6px;
  }
}

/* Mobile lesson lines: use named grid areas rather than relying on a five-
   column desktop order that wrapped dates/status/buttons unpredictably.
   The container query follows the actual CRM width, not the phone width. */
@container db2-lesson-row-layout (max-width:639px){
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "identity record"
      "date time"
      "status status"
      "help help";
    align-items:center;gap:8px 10px;
    padding:11px 10px;min-width:0;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-identity{
    grid-area:identity;grid-column:auto;
    display:flex;flex-flow:row wrap;align-items:baseline;
    gap:2px 7px;min-width:0;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-identity strong{
    font-size:.93rem;line-height:1.3;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-identity small{
    font-size:.73rem;line-height:1.25;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-field:nth-child(2){grid-area:date;grid-column:auto;}
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-field:nth-child(3){grid-area:time;grid-column:auto;}
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-field:nth-child(4){grid-area:status;grid-column:auto;}
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-field{
    gap:3px;min-width:0;font-size:.8rem;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-field :is(input,select){
    box-sizing:border-box;display:block;width:100%;
    min-width:0;max-width:100%;min-height:39px;
    padding:6px 7px;font-size:16px;line-height:1.2;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-lesson-notes-toggle{
    grid-area:record;grid-column:auto;grid-row:auto;
    box-sizing:border-box;justify-self:stretch;align-self:center;
    min-width:0;max-width:100%;width:100%;min-height:38px;
    padding:6px 5px;font-size:.72rem;line-height:1.18;
    white-space:normal;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-status{
    grid-area:help;grid-column:auto;margin:0;
  }
  .db2-admin-page .db2-crm-lesson-editor .db2-crm-plan-row
    > .db2-crm-plan-status:empty{display:none;}
}

/* Selected exercise: dense, tappable checkbox lines instead of two oversized
   labels and large margin blocks. Keep every teaching/practice field visible. */
.db2-staff-teaching-journal .db2-teach-active-choice > .db2-teach-checks{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:16px;row-gap:6px;align-items:center;
  margin:7px 0 10px;min-width:0;
}
.db2-staff-teaching-journal .db2-teach-active-choice
  .db2-teach-checks > .db2-teach-field{
  box-sizing:border-box;display:inline-flex;flex-direction:row-reverse;
  justify-content:flex-end;align-items:center;gap:8px;
  width:auto;max-width:100%;min-width:0;min-height:32px;
  margin:0;padding:2px 0;font-size:.82rem;
  line-height:1.3;font-weight:750;
}
.db2-staff-teaching-journal .db2-teach-active-choice
  .db2-teach-checks input[type="checkbox"]{
  box-sizing:border-box;flex:0 0 20px;width:20px;height:20px;
  margin:0;accent-color:#1673df;
}
.db2-staff-teaching-journal .db2-teach-active-choice > .db2-teach-field,
.db2-staff-teaching-journal .db2-teach-active-choice
  .db2-teach-exercise-settings .db2-teach-field{
  gap:4px;margin:5px 0;min-width:0;
}
.db2-staff-teaching-journal .db2-teach-active-choice
  > .db2-teach-field textarea{
  min-height:66px;padding:8px 9px;
}
.db2-staff-teaching-journal .db2-teach-active-choice
  .db2-teach-exercise-settings{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;align-items:end;
}
@media(max-width:610px){
  .db2-staff-teaching-journal .db2-teach-active-choice > .db2-teach-checks{
    grid-template-columns:minmax(0,1fr);row-gap:3px;
    margin:5px 0 8px;
  }
  .db2-staff-teaching-journal .db2-teach-tabpanel{
    padding:10px 11px 11px;
  }
  .db2-staff-teaching-journal .db2-teach-active-tools{
    margin:0 0 2px;
  }
}
@media(max-width:360px){
  .db2-staff-teaching-journal .db2-teach-active-choice
    .db2-teach-exercise-settings{
    grid-template-columns:minmax(0,1fr);gap:1px;
  }
}


/* Mobile staff lesson read-only date/time: avoid iOS intrinsic picker overflow.
   Real inputs remain enabled by the existing Edit action and retain all dates. */
.db2-admin-page .db2-crm-lesson-editor
 .db2-crm-plan-row > .db2-crm-plan-field > .db2-crm-plan-readonly-value{
  display:none;
}
@media(max-width:850px){
  /* Safari's native disabled date and time controls have intrinsic minimum
     widths that can exceed a half-width lesson column. */
  .db2-admin-page .db2-crm-lesson-editor
   .db2-crm-plan-row > .db2-crm-plan-field > input:is([type="date"],[type="time"]):disabled{
    display:none!important;
  }
  .db2-admin-page .db2-crm-lesson-editor
   .db2-crm-plan-row > .db2-crm-plan-field > input:is([type="date"],[type="time"]):disabled
   + .db2-crm-plan-readonly-value{
    display:flex;align-items:center;justify-content:center;
    box-sizing:border-box;width:100%;max-width:100%;min-width:0;
    min-height:39px;padding:7px 5px;
    border:2px solid #111;background:#fffaf5;
    color:#333;line-height:1.25;font-size:.82rem;font-weight:750;
    text-align:center;white-space:normal;overflow-wrap:break-word;
  }
  /* When future lessons are editable, give native pickers a full-width
     line; their intrinsic width must never force a second column wider. */
  .db2-admin-page .db2-crm-lesson-editor
   .db2-crm-plan-row:has(> .db2-crm-plan-field > input:is([type="date"],[type="time"]):enabled){
    grid-template-areas:
      "identity record"
      "date date"
      "time time"
      "status status"
      "help help";
  }
  .db2-admin-page .db2-crm-lesson-editor
   .db2-crm-plan-row > .db2-crm-plan-field > input:is([type="date"],[type="time"]):enabled{
    display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;
  }
}
@container db2-lesson-row-layout (max-width:639px){
  /* Also handle narrower CRM panes on a wider desktop viewport. */
  .db2-admin-page .db2-crm-lesson-editor
   .db2-crm-plan-row > .db2-crm-plan-field > input:is([type="date"],[type="time"]):disabled{
    display:none!important;
  }
  .db2-admin-page .db2-crm-lesson-editor
   .db2-crm-plan-row > .db2-crm-plan-field > input:is([type="date"],[type="time"]):disabled
   + .db2-crm-plan-readonly-value{
    display:flex;align-items:center;justify-content:center;
    box-sizing:border-box;width:100%;max-width:100%;min-width:0;
    min-height:39px;padding:7px 5px;border:2px solid #111;
    background:#fffaf5;color:#333;line-height:1.25;
    font-size:.82rem;font-weight:750;text-align:center;
    white-space:normal;overflow-wrap:break-word;
  }
  .db2-admin-page .db2-crm-lesson-editor
   .db2-crm-plan-row:has(> .db2-crm-plan-field > input:is([type="date"],[type="time"]):enabled){
    grid-template-areas:
      "identity record"
      "date date"
      "time time"
      "status status"
      "help help";
  }
}


/* Mailbox: familiar email layout, independent of the existing CRM card styling. */
.db2-mail-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 15px}
.db2-mail-intro p{margin:0;color:#555}
.db2-mail-demo-tag{font-size:.66rem;letter-spacing:.065em;font-weight:900;border:1px solid #cd9d37;background:#fff5db;padding:6px 9px}
.db2-mail-shell{display:grid;grid-template-columns:minmax(150px,205px) minmax(0,1fr);border:1px solid #d6d0ca;background:#fff;min-height:530px;overflow:hidden}
.db2-mail-folders{display:flex;flex-direction:column;gap:3px;background:#f7f4f1;padding:15px 9px;border-right:1px solid #e1dbd5;min-width:0}
.db2-mail-folder,.db2-mail-compose{font:inherit;text-align:left;border:0;cursor:pointer;line-height:1.3}
.db2-mail-folder{background:transparent;border-radius:0 17px 17px 0;padding:10px 12px;font-size:.89rem;font-weight:700;color:#3a3633}
.db2-mail-folder:hover{background:#ece4df}
.db2-mail-folder.is-active{background:#fce1e9;color:#9e194f}
.db2-mail-compose{border:1px solid #111;background:#f8cadd;font-weight:900;padding:11px 16px;margin:2px 4px 17px;box-shadow:2px 2px 0 #111}
.db2-mail-folder-note{color:#756e67;font-size:.72rem;line-height:1.45;padding:12px;margin-top:auto}
.db2-mail-main{min-width:0;display:flex;flex-direction:column}
.db2-mail-toolbar{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid #e5dfda;flex-wrap:wrap}
.db2-mail-title{font-size:1rem;min-width:60px}
.db2-mail-search{flex:1;min-width:120px;width:100px;border:1px solid #dfdad5;border-radius:7px;background:#f8f6f5;padding:10px 12px;font:inherit;font-size:.89rem}
.db2-mail-icon-btn{border:1px solid #ded8d2;background:#fff;border-radius:6px;padding:8px 12px;font:inherit;font-size:.9rem;cursor:pointer;white-space:nowrap}
.db2-mail-icon-btn:hover,.db2-mail-text-btn:hover{background:#fce9f0}
.db2-mail-body{min-width:0;flex:1}
.db2-mail-row{display:flex;align-items:center;gap:6px;min-width:0;border-bottom:1px solid #eee8e4;background:#fff;min-height:59px}
.db2-mail-row:hover{background:#fbf5f2}
.db2-mail-row.is-unread{background:#fff7fa}
.db2-mail-row-open{flex:1;display:grid;grid-template-columns:minmax(110px,1fr) minmax(180px,2.2fr) auto;align-items:center;gap:13px;min-width:0;border:0;background:none;padding:13px 4px;font:inherit;text-align:left;cursor:pointer;color:#1e1c1b}
.db2-mail-row.is-unread .db2-mail-from,.db2-mail-row.is-unread .db2-mail-subject strong{font-weight:900}
.db2-mail-from{font-size:.88rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:650}
.db2-mail-subject{font-size:.88rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db2-mail-subject strong{font-weight:700}
.db2-mail-snippet{color:#746d67}
.db2-mail-star{border:0;background:none;color:#c58b2e;font-size:1.3rem;cursor:pointer;padding:10px 7px 10px 13px}
.db2-mail-date{font-size:.75rem;color:#746d67;white-space:nowrap}
.db2-mail-sample-label,.db2-mail-real-label{font-size:.59rem;color:#90561d;background:#fff2df;border:1px solid #edd7b6;font-weight:800;padding:3px 5px;margin-right:12px;white-space:nowrap}
.db2-mail-real-label{background:#e9f4ec;border-color:#b3d0bb;color:#276b35}
.db2-mail-real-icon{font-weight:900;color:#bc2b5b;padding-left:20px}
.db2-mail-real-row .db2-mail-row-open{grid-template-columns:120px minmax(0,1fr)}
.db2-mail-empty{padding:35px 22px;color:#6c655f;font-size:.9rem}
.db2-mail-notice{margin:0;padding:11px 17px;background:#fff6e5;border-bottom:1px solid #f1dfc2;font-size:.82rem}
.db2-mail-actions{display:flex;flex-wrap:wrap;gap:8px;padding:16px 21px;border-bottom:1px solid #eee}
.db2-mail-text-btn{border:1px solid #ddd5d0;border-radius:5px;background:white;font:inherit;font-size:.86rem;font-weight:700;padding:9px 13px;cursor:pointer}
.db2-mail-subject-heading{font-size:1.48rem;line-height:1.2;margin:24px 24px 8px}
.db2-mail-preview-indicator{font-size:.7rem;color:#8a6250;margin:0 24px 20px;text-transform:uppercase;letter-spacing:.04em}
.db2-mail-message-meta{display:flex;gap:12px;align-items:center;margin:0 24px 16px}
.db2-mail-avatar{background:#f7c1d5;color:#111;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-weight:900}
.db2-mail-sender{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:.9rem}
.db2-mail-sender small{font-size:.76rem;color:#706a64;overflow-wrap:anywhere}
.db2-mail-detail-date{margin-left:auto;font-size:.76rem;color:#706a64}
.db2-mail-message-content{white-space:pre-wrap;line-height:1.7;padding:0 24px 24px;font-size:.92rem;overflow-wrap:anywhere}
.db2-mail-thread-reply{margin:6px 24px 15px;padding:14px 16px;border-left:3px solid #e94b8a;background:#fff7fa}
.db2-mail-thread-reply p{white-space:pre-wrap;margin:8px 0 0;font-size:.9rem}
.db2-mail-reply,.db2-mail-editor{display:flex;flex-direction:column;gap:12px;margin:8px 24px 28px}
.db2-mail-reply label,.db2-mail-editor label{font-weight:800;font-size:.88rem;display:flex;flex-direction:column;gap:6px}
.db2-mail-reply textarea,.db2-mail-editor textarea,.db2-mail-editor input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #d4ccc6;border-radius:5px;font:inherit;font-weight:400;min-width:0}
.db2-mail-editor h3{font-size:1.2rem;margin:14px 0 0}
.db2-mail-warning{font-size:.77rem;color:#7a5a43;margin:0}
.db2-mail-compose-actions{display:flex;gap:9px;flex-wrap:wrap}
.db2-mail-primary{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;padding:10px 16px;background:#111;color:#fff;border:1px solid #111;border-radius:5px;font:inherit;font-weight:800;font-size:.85rem;cursor:pointer;margin:4px 0}
.db2-mail-primary:hover{background:#333}
.db2-mail-requests-info{font-size:.86rem;padding:17px 21px;color:#615b56;line-height:1.5}
.db2-mail-requests-info+.db2-mail-primary{margin-left:21px}
.db2-mail-draft-row{width:100%;text-align:left;padding:18px 22px;border:none;border-bottom:1px solid #e9e4df;font:inherit;cursor:pointer}
@media(max-width:980px){
 .db2-mail-row-open{grid-template-columns:minmax(100px,.8fr) minmax(90px,2fr);gap:6px}
 .db2-mail-date{grid-column:2;font-size:.7rem}
}
@media(max-width:650px){
 .db2-mail-shell{grid-template-columns:minmax(0,1fr)}
 .db2-mail-folders{border-right:0;border-bottom:1px solid #e1dbd5;display:flex;flex-direction:row;align-items:center;overflow-x:auto;flex-wrap:nowrap}
 .db2-mail-folder{white-space:nowrap;border-radius:8px;padding:10px 12px}
 .db2-mail-compose{white-space:nowrap;margin:0 7px 0 0}
 .db2-mail-folder-note{display:none}
 .db2-mail-row-open{grid-template-columns:minmax(0,1fr);gap:2px}
 .db2-mail-date{grid-column:auto}
 .db2-mail-row{min-height:68px}
 .db2-mail-sample-label,.db2-mail-real-label{margin-right:5px;font-size:.55rem}
 .db2-mail-star{padding-left:8px}
 .db2-mail-message-meta{margin-inline:14px}
 .db2-mail-subject-heading,.db2-mail-preview-indicator{margin-left:14px;margin-right:14px}
 .db2-mail-message-content{padding-inline:14px}
 .db2-mail-reply,.db2-mail-editor{margin-inline:14px}
}


/* Parent Portal: category-by-category community choices, explicitly separate from learner login rights. */
.db2-parent-community-settings{display:grid;gap:12px;margin-top:16px}
.db2-parent-community-settings>label{display:grid;gap:7px;font-weight:700;font-size:.88rem}
.db2-parent-community-settings select,.db2-parent-community-settings input[type=password]{
 width:100%;min-width:0;box-sizing:border-box;padding:10px 12px;border-radius:6px;
 border:1px solid #bfb9b6;background:#fff;color:#222;font:inherit;font-weight:400
}
.db2-parent-community-settings h4{margin:8px 0 0;font-size:1rem}
.db2-parent-community-settings .db2-parent-permission{display:flex;align-items:start;gap:10px;font-weight:500;line-height:1.4}
.db2-parent-community-settings .db2-parent-permission input{flex:none;min-width:18px;min-height:18px;margin:2px 0 0}
.db2-parent-community-settings button[type=submit]{justify-self:start;margin-top:6px}


/* Mailbox live views inherit the global section padding from the public website;
   override it so Inbox matches the compact Sample inbox, without affecting other pages. */
.db2-admin-page .db2-mail-shell,
.db2-app .db2-mail-shell,
.db2-mail-shell.db2-mail-live-shell{padding:0!important;margin:0!important;align-items:stretch;min-height:530px}
.db2-mail-shell .db2-mail-folders{padding:15px 9px!important;margin:0;align-self:stretch}
.db2-mail-shell .db2-mail-main{padding:0!important;margin:0;align-self:stretch}
.db2-mail-shell .db2-mail-toolbar{margin:0!important;padding:11px 16px!important}
.db2-mail-shell .db2-mail-body{padding:0!important;margin:0!important}
.db2-mail-shell .db2-mail-row{padding:0;margin:0}
.db2-mail-shell .db2-mail-empty{margin:0}
.db2-mail-shell .db2-mail-requests-info{margin:0}
.db2-pupil-mailbox-live,.db2-parent-mailbox-live{padding:0!important}

/* Waiting List reuses the compact Enquiries cards. Diagnostics stay collapsed. */
.db2-admin-page .db2-waiting-state-tabs{margin:8px 0 14px}
.db2-admin-page .db2-waiting-admin,
.db2-admin-page .db2-waiting-demand{
  margin:12px 0;border:1px solid #dfd4cc;border-radius:8px;
  background:#fffdfa;padding:8px 14px
}
.db2-admin-page .db2-waiting-admin>summary,
.db2-admin-page .db2-waiting-demand>summary{
  cursor:pointer;font-size:.87rem;font-weight:750;line-height:1.5;padding:6px 0
}
