:root{--app-primary:#0f766e;--app-secondary:#2563eb;--app-accent:#f59e0b;--app-bg:#f3f7fb;--app-text:#172033;--app-muted:#64748b;--app-radius:18px}
*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,color-mix(in srgb,var(--app-primary) 12%,transparent),transparent 34%),radial-gradient(circle at 100% 10%,color-mix(in srgb,var(--app-secondary) 10%,transparent),transparent 30%),var(--app-bg);color:var(--app-text);min-height:100vh;font-feature-settings:"cv02","cv03","cv04","cv11"}.app-main{max-width:1320px}.app-navbar{background:linear-gradient(115deg,var(--app-primary),var(--app-secondary));box-shadow:0 10px 34px rgba(15,50,95,.2)}.app-navbar-inner{min-height:64px;display:flex;justify-content:space-between;gap:12px}.navbar-brand{min-width:0}.brand-copy{display:flex;flex-direction:column;line-height:1.1;min-width:0}.brand-copy strong{font-size:1.05rem}.brand-copy small{font-size:.7rem;opacity:.83;font-weight:400;margin-top:3px;white-space:nowrap}.brand-icon{width:38px;height:38px;display:grid;place-items:center;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.25);border-radius:13px;box-shadow:inset 0 1px rgba(255,255,255,.18)}.brand-icon svg{width:27px;height:27px;fill:white}.app-logo{width:38px;height:38px;object-fit:contain;border-radius:12px;background:#fff;padding:3px}.nav-actions{display:flex;gap:7px;align-items:center}.btn-glass{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.25)}.btn-glass:hover{color:#fff;background:rgba(255,255,255,.25)}
.card{border:1px solid rgba(22,34,60,.055);border-radius:var(--app-radius);box-shadow:0 10px 30px rgba(31,53,93,.075);overflow:hidden}.card-header-soft{background:linear-gradient(120deg,color-mix(in srgb,var(--app-primary) 7%,white),color-mix(in srgb,var(--app-secondary) 5%,white));border-bottom:1px solid #edf1f6}.session-card{border-left:5px solid var(--app-primary)}.session-card.cancelled{opacity:.8;border-left-color:#64748b}.session-card.past{border-left-color:#94a3b8}.btn{border-radius:11px}.btn-primary{--bs-btn-bg:var(--app-primary);--bs-btn-border-color:var(--app-primary);--bs-btn-hover-bg:color-mix(in srgb,var(--app-primary) 86%,black);--bs-btn-hover-border-color:color-mix(in srgb,var(--app-primary) 86%,black)}.btn-success{--bs-btn-bg:#0f9f73;--bs-btn-border-color:#0f9f73}.form-control,.form-select{border-radius:11px;border-color:#d9e1ec;min-height:42px}.form-control:focus,.form-select:focus{border-color:color-mix(in srgb,var(--app-primary) 65%,white);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--app-primary) 14%,transparent)}.route-box,.driver-card{background:#fff;border:1px solid #e4eaf2;border-radius:14px;padding:.85rem}.small-muted{font-size:.86rem;color:var(--app-muted)}.btn-touch{min-height:46px}.special-note{background:linear-gradient(120deg,#eef8ff,#f4f2ff);border:1px solid #d8e7fb;border-radius:14px;padding:.75rem .85rem;line-height:1.35}.org-badge{border:0;cursor:pointer;padding:.5rem .72rem}.org-badge.text-bg-warning{color:#6b4e00!important}.summary-chip{background:#eef3ff;border-radius:999px;padding:.35rem .7rem;display:inline-block}.child-row{border-top:1px solid #edf0f5;padding:1rem 0}.child-row:first-child{border-top:0}.week-nav a{text-decoration:none}.readonly-banner{background:#f1f5f9;border:1px solid #d8e0ea;border-radius:14px;padding:.75rem}.admin-card-link{text-decoration:none;color:inherit}.admin-card-link .card{transition:.18s ease}.admin-card-link .card:hover{transform:translateY(-3px);box-shadow:0 15px 36px rgba(30,50,90,.13)}.admin-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--app-primary) 12%,white),color-mix(in srgb,var(--app-secondary) 12%,white));font-size:1.55rem}.table td,.table th{vertical-align:middle}.table thead th{color:#475569;background:#f8fafc;font-size:.86rem}.multi-check{position:relative}.multi-check-menu{border:1px solid #d9e1ec;border-radius:12px;background:white;padding:.45rem;max-height:240px;overflow:auto}.multi-check label{display:flex;gap:.55rem;align-items:center;padding:.45rem .5rem;border-radius:8px}.multi-check label:hover{background:#f4f7fb}.multi-check input[type=checkbox]{width:1.05rem;height:1.05rem}.calculated-note{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:.8rem}.day-shell{max-width:900px;margin:auto}.day-date-title{font-weight:700}.summary-section-title{font-size:.83rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.time-input-wrap{display:flex;gap:6px}.time-input-wrap .form-control{flex:1}.time-pairs{display:grid;grid-template-columns:1fr 1fr;gap:7px}.time-pair-btn{border:1px solid #dbe3ee;background:#fff;border-radius:10px;padding:.55rem}.time-pair-btn:hover{background:#eef5ff;border-color:#b9cdf4}.minute-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.minute-btn{border:1px solid #dbe3ee;background:#fff;border-radius:10px;padding:.55rem}.country-select option{font-size:1rem}.autocomplete-wrap{position:relative}.suggestions{position:absolute;left:0;right:0;top:100%;z-index:1055;background:#fff;border:1px solid #d9e1ec;border-radius:10px;box-shadow:0 12px 30px rgba(30,50,90,.15);max-height:220px;overflow:auto}.suggestions button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:.55rem .7rem}.suggestions button:hover{background:#f1f5f9}.language-pill{display:inline-flex;gap:5px;align-items:center}
@media(max-width:767.98px){.app-navbar-inner{min-height:58px}.brand-copy small{display:none}.brand-icon,.app-logo{width:34px;height:34px}.app-main{padding-left:12px;padding-right:12px}.card-body{padding:1rem}.org-badge{white-space:normal;text-align:center;max-width:160px}.session-card{margin-bottom:14px!important}.week-nav h1{font-size:1rem}.table-responsive{font-size:.9rem}.admin-page-head .subtitle{display:none}}
.table-filter{display:block;width:100%;margin-top:.35rem;border:1px solid #dbe3ee;border-radius:8px;padding:.28rem .45rem;font-weight:400;font-size:.78rem;background:#fff}.table-pager{display:flex;align-items:center;justify-content:space-between;padding:.65rem .85rem;border-top:1px solid #edf1f6;color:var(--app-muted);font-size:.86rem}.icon-btn{width:34px;height:34px;border-radius:9px;border:1px solid #d9e1ec;background:#fff;display:inline-grid;place-items:center;line-height:1;margin-left:4px}.icon-btn.edit{color:#2563eb}.icon-btn.delete{color:#dc2626}.icon-btn:hover{background:#f8fafc;transform:translateY(-1px)}.admin-avatar{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,255,255,.75);background:linear-gradient(135deg,var(--app-primary),var(--app-secondary));color:#fff;font-weight:800;box-shadow:0 4px 14px rgba(30,50,90,.18)}.admin-user-menu{min-width:220px;border-radius:14px}.guardian-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.guardian-check{display:flex;gap:8px;align-items:center;border:1px solid #dbe3ee;border-radius:10px;padding:.55rem .65rem;background:#fff}.guardian-check:hover{background:#f8fafc}.bulk-action-bar .btn{min-width:120px;font-weight:600}.bulk-action-bar .btn:disabled{opacity:.4}.date-pref-hint{font-size:.78rem;color:var(--app-muted)}
.date-input-wrap{display:flex;gap:6px;position:relative}.native-date-field{position:absolute;right:0;top:0;width:46px;height:42px;opacity:.001;pointer-events:auto;cursor:pointer;z-index:3}.date-input-wrap [data-date-display]{flex:1}.date-input-wrap [data-date-picker]{pointer-events:none}

.btn-reset-pin{font-weight:800;min-width:150px;border-color:#f59e0b!important;box-shadow:0 4px 14px rgba(245,158,11,.22)}.btn-reset-pin:hover{transform:translateY(-1px)}.training-location-row .form-select{width:100%;}.app-name-fixed{background:#f8fafc;color:#334155}.parent-account-menu{display:flex;align-items:center}.parent-avatar-nav{border-color:rgba(255,255,255,.9);background:rgba(255,255,255,.18);backdrop-filter:blur(4px)}

.inline-table-input{min-height:34px;border-color:transparent;background:transparent;padding:.3rem .45rem}.inline-table-input:hover{border-color:#dbe3ee;background:#fff}.inline-table-input:focus{background:#fff;border-color:color-mix(in srgb,var(--app-primary) 65%,white)}.inline-place-input{min-width:68px;max-width:90px}.icon-btn.save-row{color:#0f766e}.editable-admin-table td{min-width:150px}.editable-admin-table td:nth-last-child(2){min-width:90px}.editable-admin-table td:last-child{min-width:126px}
.country-picker{position:relative}.country-picker-toggle{display:flex;align-items:center;gap:.55rem;text-align:left;background-color:#fff}.country-picker-toggle::after{margin-left:auto}.country-flag{width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(15,23,42,.12);flex:0 0 auto}.country-picker-menu{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:1065;background:#fff;border:1px solid #d9e1ec;border-radius:11px;box-shadow:0 14px 35px rgba(30,50,90,.18);padding:.35rem;max-height:290px;overflow:auto}.country-picker-option{width:100%;display:flex;align-items:center;gap:.65rem;border:0;background:#fff;border-radius:8px;padding:.58rem .65rem;text-align:left;color:#1e293b}.country-picker-option:hover,.country-picker-option.active{background:#eef5ff}.address-row-street{clear:left}

[data-inline-edit-row].is-dirty{background:color-mix(in srgb,var(--app-accent) 9%,white)}[data-inline-edit-row].is-dirty .inline-table-input{border-color:color-mix(in srgb,var(--app-accent) 45%,#dbe3ee);background:#fff}.btn#saveAllParents:disabled{opacity:.45}
.ride-alert{border:1px solid rgba(245,158,11,.45);border-radius:14px;text-decoration:none;margin-bottom:1rem}.ride-request-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid rgba(15,23,42,.08)}.ride-request-row:last-child{border-bottom:0}
.language-picker{position:relative}.language-picker-toggle{display:flex;align-items:center;gap:.55rem;text-align:left;background:#fff}.language-picker-toggle::after{margin-left:auto}.language-flag{width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(15,23,42,.12);flex:0 0 auto}.language-globe{width:24px;text-align:center}.language-picker-menu{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:1080;background:#fff;border:1px solid #d9e1ec;border-radius:11px;box-shadow:0 14px 35px rgba(30,50,90,.18);padding:.35rem;max-height:320px;overflow:auto}.language-picker-option{width:100%;display:flex;align-items:center;gap:.65rem;border:0;background:#fff;border-radius:8px;padding:.58rem .65rem;text-align:left;color:#1e293b}.language-picker-option:hover,.language-picker-option.active{background:#eef5ff}.app-version-badge{font-size:.76rem;font-weight:700;color:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.45);border-radius:999px;padding:.28rem .5rem;white-space:nowrap}.app-footer{color:#64748b;font-size:.8rem;text-align:center;padding:1.25rem .75rem 1.5rem}.app-footer-inner{border-top:1px solid rgba(100,116,139,.16);padding-top:1rem}.specific-training-actions{min-width:95px}
.care-box{background:rgba(37,99,235,.05);border:1px solid rgba(37,99,235,.14);border-radius:14px}
tr[data-current-week="1"] td:first-child{box-shadow:inset 3px 0 0 var(--tr-primary,#0f766e)}

/* V2.6.2 */
.care-status-panel{background:#f8fafc;border:1px solid #dfe6ee;border-radius:14px;padding:.75rem .85rem}.care-status-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem 0;border-top:1px solid #e7edf4}.care-status-row:first-of-type{border-top:0;padding-top:0}.care-status-row:last-child{padding-bottom:0}.cancel-report-compact{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#f4f6f8;border:1px solid #dfe5eb;border-radius:14px;padding:.65rem .8rem}@media(max-width:575.98px){.care-status-row,.cancel-report-compact{align-items:stretch;flex-direction:column}.cancel-report-compact .btn{width:100%}}


/* Admin mobile records: tap a compact card to open the same editor used on desktop. */
.mobile-admin-filters{display:none}
@media(max-width:767.98px){
  [data-mobile-admin-table="edit"].is-mobile-admin-list{border-collapse:separate;border-spacing:0;background:transparent}
  [data-mobile-admin-table="edit"].is-mobile-admin-list thead{display:none}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody{display:block;padding:.15rem}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody tr{display:grid!important;grid-template-columns:1fr;gap:.22rem;margin:.65rem .35rem;padding:.8rem .85rem;border:1px solid #dfe6ef;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(30,50,90,.06);cursor:pointer}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody tr.d-none{display:none!important}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody tr:active{background:#f5f8fc}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody td{display:grid;grid-template-columns:minmax(90px,34%) 1fr;align-items:start;gap:.7rem;border:0!important;padding:.18rem 0!important;min-width:0!important;text-align:left!important;white-space:normal!important}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody td::before{content:attr(data-mobile-label);font-size:.75rem;color:#64748b;font-weight:600;line-height:1.35}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody td:last-child{display:flex;justify-content:flex-end;align-items:center;padding-top:.45rem!important}
  [data-mobile-admin-table="edit"].is-mobile-admin-list tbody td:last-child::before{display:none}
  [data-mobile-admin-table="edit"].is-mobile-admin-list [data-mobile-edit-trigger]{display:none!important}
  [data-mobile-admin-table="edit"].is-mobile-admin-list .save-row{display:none!important}
  [data-mobile-admin-table="edit"].is-mobile-admin-list .inline-table-input{pointer-events:none;border:0!important;background:transparent!important;box-shadow:none!important;min-height:0;padding:0!important;font-size:inherit;color:inherit}
  [data-mobile-admin-table="edit"].is-mobile-admin-list .inline-place-input{min-width:0;max-width:none}
  .mobile-admin-filters{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:0 0 .7rem}
  .mobile-admin-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:600;color:#64748b}
  .mobile-admin-filter .form-control{min-height:36px}
  .mobile-admin-list+.table-pager{border-top:0}
}
@media(max-width:480px){.mobile-admin-filters{grid-template-columns:1fr}}

/* v2.7.5 - match modal: body scrolls, actions remain reachable on small screens */
.match-modal-content{max-height:calc(100dvh - 1rem);overflow:hidden}.match-modal-form{display:flex;flex-direction:column;max-height:calc(100dvh - 1rem);min-height:0}.match-modal-form .modal-header{flex:0 0 auto}.match-modal-form .modal-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;-webkit-overflow-scrolling:touch}.match-modal-form .modal-footer{flex:0 0 auto;position:sticky;bottom:0;z-index:5;background:#fff;border-top:1px solid #dee2e6}.match-modal-form textarea{resize:vertical;min-height:90px}@media(max-width:767.98px){#matchModal .modal-dialog{margin:.35rem;min-height:calc(100dvh - .7rem);align-items:stretch}#matchModal .modal-content{height:calc(100dvh - .7rem);border-radius:14px}#matchModal .modal-footer{padding:.7rem .85rem;box-shadow:0 -8px 18px rgba(15,23,42,.08)}#matchModal .modal-footer .btn{flex:1}.match-modal-form .modal-body{padding-bottom:1rem}}

/* V2.7.6 - Material circular time picker */
.material-time-dialog{max-width:340px}.material-time-picker{overflow:hidden;border:0;border-radius:18px}.material-time-header{display:flex;align-items:center;justify-content:center;gap:.18rem;background:var(--app-primary);color:#fff;padding:1rem .75rem;font-size:2.4rem;line-height:1}.material-time-value{border:0;background:transparent;color:rgba(255,255,255,.72);font:inherit;padding:.12rem .2rem;border-radius:8px}.material-time-value.active{color:#fff;background:rgba(255,255,255,.13)}.material-time-ampm{font-size:.9rem;font-weight:700;margin-left:.35rem;cursor:pointer}.material-time-hint{text-align:center;color:var(--app-muted);font-size:.78rem;margin-bottom:.45rem;min-height:1.1rem}.material-time-dial{position:relative;width:250px;height:250px;border-radius:50%;margin:.25rem auto;background:#eef0f3}.dial-number{position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:0;background:transparent;color:#1f2937;font-size:.9rem;padding:0}.dial-number:hover,.dial-number:focus{background:color-mix(in srgb,var(--app-primary) 15%,white);outline:none}.dial-number:active{background:var(--app-primary);color:#fff}.dial-number.inner{font-size:.72rem;color:#64748b;width:30px;height:30px}.material-time-actions{display:flex;justify-content:flex-end;gap:.25rem;padding:.4rem .65rem .65rem}.material-time-actions .btn-link{text-decoration:none;color:var(--app-primary);text-transform:uppercase;font-size:.78rem}.time-input-wrap [data-time-display]{min-width:0}
.vehicle-icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.6rem}.vehicle-icon-option{position:relative;display:flex;align-items:center;gap:.55rem;padding:.7rem .75rem;border:1px solid #dbe3ee;border-radius:12px;background:#fff;cursor:pointer}.vehicle-icon-option input{position:absolute;opacity:0;pointer-events:none}.vehicle-icon-option:has(input:checked){border-color:var(--app-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--app-primary) 14%,transparent);background:color-mix(in srgb,var(--app-primary) 5%,white)}.vehicle-icon-symbol{font-size:1.45rem;line-height:1}

/* V2.7.6 - Admin mobile spacing + keep the app subtitle visible. */
@media(max-width:767.98px){
 .brand-copy small{display:block!important;font-size:.62rem;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .mobile-admin-filters{padding-left:.75rem;padding-right:.75rem}
 [data-mobile-admin-table="edit"].is-mobile-admin-list tbody{padding:.25rem .75rem .6rem!important}
 [data-mobile-admin-table="edit"].is-mobile-admin-list tbody tr{margin:.65rem 0!important}
 .admin-mobile-card-fix{padding-left:.75rem;padding-right:.75rem}
}


/* V2.7.7 - vehicle icon chooser: comfortable labels on phones */
@media(max-width:575.98px){
 .vehicle-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
 .vehicle-icon-option{min-width:0;min-height:64px;justify-content:flex-start;gap:.45rem;padding:.65rem .7rem}
 .vehicle-icon-option>span:last-child{min-width:0;line-height:1.2;overflow-wrap:normal;word-break:normal}
 .vehicle-icon-symbol{font-size:1.3rem;flex:0 0 auto}
}
