*{box-sizing:border-box}body{margin:0;background:#f3f7f5;color:#21362e;font-family:Arial,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:245px;background:var(--brand,#183a30);transition:background .2s ease;padding:24px 14px;color:#fff}.brand{font-size:19px;font-weight:bold;margin:0 10px 22px;display:flex;align-items:center;gap:8px}.brand img{width:34px;height:34px;object-fit:contain;background:#fff;border-radius:6px}aside a{display:block;color:#dbe9e3;text-decoration:none;padding:12px;border-radius:8px;margin:3px 0}aside a:hover{background:rgba(255,255,255,.14)}main{margin-left:245px}.wrap{max-width:1150px;margin:auto;padding:34px 24px}.login{max-width:520px;margin:8vh auto}.panel,.dog,.profile,.cards>div{background:#fff;border-radius:14px;box-shadow:0 2px 12px #0000000c;padding:20px;margin-bottom:20px}.top{display:flex;align-items:center;justify-content:space-between;gap:15px}.btn,button{display:inline-block;background:var(--brand,#28785e);color:#fff;border:0;border-radius:8px;padding:11px 16px;text-decoration:none;font-weight:bold;cursor:pointer;margin:3px}.secondary{background:#667a72}.cards{display:flex;gap:18px;flex-wrap:wrap}.cards>div{min-width:180px}.cards b{display:block;font-size:30px}.cards span,.muted{color:#718078}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.dog{padding:0;overflow:hidden;color:inherit;text-decoration:none}.dog>img,.ph{width:100%;height:180px;object-fit:cover}.ph{display:flex;align-items:center;justify-content:center;font-size:65px;background:#e8efec}.dog>div{padding:15px}.dog h3{margin:0 0 5px}.trained{margin-top:12px;display:flex;align-items:center;gap:10px;font-weight:bold}.trained img,.trainerbadge img{width:45px;height:45px;object-fit:contain;border-radius:6px;border:1px solid #ddd}.card-actions{font-size:12px;color:#718078;padding:0!important}.profile{display:flex;gap:25px}.photo{width:220px;height:220px;object-fit:cover;border-radius:12px}.trainerbadge{display:flex;align-items:center;gap:12px;font-weight:bold;margin-top:15px}.progress{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:25px}.progress>div{background:#fff;padding:15px;border-radius:12px}.progress span{display:block;font-weight:bold}.progress b{float:right;margin-top:-18px}.bar{height:9px;background:#e2eae6;border-radius:20px;margin-top:12px;overflow:hidden}.bar i{display:block;height:100%;background:var(--brand,#28785e)}label{display:block;font-weight:bold;margin:13px 0 6px}input,select,textarea{width:100%;padding:11px;border:1px solid #cbd7d1;border-radius:8px;font:inherit}textarea{min-height:120px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline input{flex:1;min-width:160px}.alert{background:#fff0f0;color:#a42c2c;padding:12px;border-radius:8px;margin-bottom:15px}.success{background:#edf9f2;color:#256044;padding:12px;border-radius:8px;margin-bottom:15px}.code{font:700 28px monospace;letter-spacing:3px;margin:10px 0;color:var(--brand,#28785e)}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid #e7ece9;text-align:left}small{display:block;color:#718078;margin-top:5px}@media(max-width:760px){aside{position:static;width:auto}main{margin-left:0}.wrap{padding:20px 14px}.profile{flex-direction:column}.photo{width:100%;height:250px}.progress{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}}

.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:25px}.contact-grid>div{background:#fff;padding:18px;border-radius:12px;box-shadow:0 2px 12px #0000000c}.contact-grid p{line-height:1.6;color:#5f7068}@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.map{width:100%;height:360px;border-radius:14px;overflow:hidden;background:#eef2f0}.map-large{height:520px;min-height:360px}.map-empty{padding:28px;text-align:center;color:#667}.map-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-top:14px}.map-list-item{border:1px solid #d8dfdc;background:#fff;padding:12px;border-radius:10px;text-align:left;cursor:pointer}.map-list-item:hover{border-color:var(--brand)}
.map-fallback{padding:28px;text-align:center;color:#53645d;background:#fff;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.map-fallback p{max-width:560px;line-height:1.5}.map-list-item{display:block;text-decoration:none;color:inherit}
.trainer-section{margin-top:14px}.trainer-list{display:flex;flex-wrap:wrap;gap:10px}.trainerbadge{display:flex;align-items:center;gap:10px;font-weight:bold;margin:0;background:#f5f8f6;border:1px solid #dfe7e3;border-radius:10px;padding:8px 12px}.trainerbadge img{width:42px;height:42px;object-fit:contain;border-radius:6px;border:1px solid #ddd;background:#fff}.not-assigned{margin-top:14px;color:#718078;font-weight:bold}.filter-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:15px;align-items:end}.filter-actions{display:flex;gap:6px;align-items:center;padding-bottom:0}.filter-actions .btn{background:#667a72}.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.chip{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:bold;background:#edf3f0}.package-chip{background:#e7f4ed;color:#256044}.tag-chip{background:#eef1f7;color:#46556b}.training-item{border:1px solid #e0e7e3;border-radius:10px;padding:12px;margin:8px 0}.training-item p{margin:7px 0;color:#53645d}.setup-row{display:flex;gap:8px;align-items:center;margin-top:10px}.setup-row form{margin:0}.setup-row .inline{flex:1}.setup-row .inline input{max-width:420px}.setup-card{border-top:1px solid #e4eae7;padding-top:16px;margin-top:18px}.setup-tags{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:15px}.setup-tag{border:1px solid #e0e7e3;border-radius:10px;padding:10px}.setup-tag form{margin:0 0 8px}.check-row{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #dfe7e3;border-radius:9px;margin:8px 0;cursor:pointer}.check-row input{width:auto;margin-top:4px}.check-row span{flex:1}.check-row small{display:block;font-weight:normal}.setup-row>form:last-child,.setup-tag>form:last-child{display:inline-block}@media(max-width:760px){.filter-grid{grid-template-columns:1fr}.filter-actions{padding-top:4px}.setup-row{align-items:stretch;flex-wrap:wrap}.setup-row .inline{width:100%}.setup-row .inline input{max-width:none}.setup-tag{width:100%}}

.trainerbadge{text-decoration:none;color:inherit}.trainerbadge:hover{border-color:#b9cbc2;background:#edf5f1}.trainerbadge:focus{outline:2px solid var(--brand,#28785e);outline-offset:2px}
.dog-card-alerts-top{margin:-2px 0 12px;padding:10px 12px;background:#fff4f4;border:1px solid #e4aaaa;border-radius:10px}.dog-card-alerts-top .chips{margin-top:6px}.dog-card-alerts-top .tag-chip,.dog-card-alerts-bottom .tag-chip{font-size:13px;padding:6px 10px;font-weight:800;background:#fff0f0;color:#9f1d1d;border:1px solid #e4aaaa}.dog-card-alerts-bottom{margin-top:12px}.dog-alert-title{font-size:13px;font-weight:900;letter-spacing:.3px;color:#9f1d1d}.dog-profile-alerts-top{margin-bottom:18px;border:2px solid #e4aaaa;background:#fff4f4}.dog-profile-alerts-top .chips{margin-top:8px}.dog-profile-alerts-top .tag-chip{font-size:16px;padding:9px 13px;font-weight:900;background:#fff0f0;color:#9f1d1d;border:1px solid #e4aaaa}.profile-bottom-alerts{margin-top:16px;padding:10px 0 2px}.profile-bottom-alerts .tag-chip{font-size:14px;padding:7px 11px;font-weight:800;background:#fff0f0;color:#9f1d1d;border:1px solid #e4aaaa}

/* Dashboard cards and award image sizing */
.cards .dash-card{display:block;min-width:180px;flex:1;background:#fff;border-radius:14px;box-shadow:0 2px 12px #0000000c;padding:20px;margin-bottom:20px;text-decoration:none;color:inherit;border:1px solid #edf1ef;transition:transform .12s ease,box-shadow .12s ease}
.cards .dash-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000012}
.cards .dash-card b{display:block;font-size:30px;line-height:1.1;margin-bottom:5px}
.cards .dash-card span{display:block;color:#718078;font-weight:600;margin-bottom:4px}
.cards .dash-card small{display:block;color:#53645d}
.awards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px}
.award-card{display:flex;align-items:flex-start;gap:14px;border:1px solid #e0e7e3;border-radius:12px;padding:14px;background:#fff}
.award-card>img{width:72px;height:72px;max-width:72px;max-height:72px;object-fit:contain;flex:0 0 72px;border-radius:8px}
.award-card h3{margin:0 0 5px}
.award-card p{margin:6px 0;line-height:1.45}
.badge-check-image{width:48px;height:48px;max-width:48px;max-height:48px;object-fit:contain;flex:0 0 48px;border-radius:6px}
.badge-admin-card{border:1px solid #e0e7e3;border-radius:12px;padding:14px;margin:12px 0;background:#fff}
.badge-admin-preview{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.badge-admin-preview img{width:64px;height:64px;max-width:64px;max-height:64px;object-fit:contain;border-radius:8px}
@media(max-width:760px){.cards .dash-card{min-width:0;width:100%}.awards-grid{grid-template-columns:1fr}}

/* Stability/UI fixes: dashboard cards and award image sizing */
.cards{display:flex!important;gap:18px!important;flex-wrap:wrap!important;align-items:stretch!important}
.cards .dash-card{display:block!important;min-width:180px!important;flex:1 1 0!important;background:#fff!important;border-radius:14px!important;box-shadow:0 2px 12px #0000000c!important;padding:20px!important;margin:0 0 20px!important;text-decoration:none!important;color:inherit!important;border:1px solid #edf1ef!important;overflow:hidden!important}
.cards .dash-card b{display:block!important;font-size:30px!important;line-height:1.1!important;margin-bottom:5px!important}
.cards .dash-card span{display:block!important;color:#718078!important;font-weight:600!important;margin-bottom:4px!important}
.cards .dash-card small{display:block!important;color:#53645d!important}
.awards-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;gap:15px!important}
.award-card{display:flex!important;align-items:flex-start!important;gap:14px!important;border:1px solid #e0e7e3!important;border-radius:12px!important;padding:14px!important;background:#fff!important;overflow:hidden!important}
.award-card>img,.award-card img{width:72px!important;height:72px!important;max-width:72px!important;max-height:72px!important;min-width:72px!important;min-height:72px!important;object-fit:contain!important;flex:0 0 72px!important;border-radius:8px!important}
.badge-check-image{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important;min-width:48px!important;min-height:48px!important;object-fit:contain!important;flex:0 0 48px!important;border-radius:6px!important}
.badge-admin-preview img{width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important;min-width:64px!important;min-height:64px!important;object-fit:contain!important;border-radius:8px!important}
@media(max-width:760px){.cards .dash-card{min-width:0!important;width:100%!important;flex:1 1 100%!important}.awards-grid{grid-template-columns:1fr!important}}

/* Portal logo */
.portal-brand-logo{width:170px!important;height:auto!important;max-width:100%!important;max-height:70px!important;object-fit:contain!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;display:block!important}
.login-logo{display:block;width:280px;height:auto;max-width:100%;max-height:180px;object-fit:contain;margin:0 auto 18px}
.login{text-align:center}.login form{text-align:left}
@media(max-width:760px){.portal-brand-logo{width:150px!important;max-height:60px!important}.login-logo{width:240px;max-height:150px}}

/* Bulk-delete dog card layout fix */
.dog > a{display:block;color:inherit;text-decoration:none}
.dog > a > img,.dog > a > .ph{width:100%;height:180px;object-fit:cover;display:block}
.dog > a > .ph{display:flex;align-items:center;justify-content:center;font-size:65px;background:#e8efec}
.dog > a > div{padding:15px}
.dog > a h3{margin:0 0 5px}

/* Admin All Dogs bulk-select layout fix */
.dog > a{display:block;color:inherit;text-decoration:none}
.dog > a > img,.dog > a > .ph{display:block;width:100%;height:180px;max-height:180px;object-fit:cover}
.dog > a > div{padding:15px}
.dog > a h3{margin:0 0 5px;color:var(--brand,#183a30);font-size:20px}
.dog > a p{margin:0 0 8px}
.dog > a small{display:block}
.dog > a:hover h3{text-decoration:underline}
.dog > label{padding:10px 12px 0;margin:0;background:#fff;font-weight:bold}
.dog > label input.dog-select{width:auto;margin-right:8px}

/* Dog profile school/trainer layout */
.dog-profile-main{display:grid;grid-template-columns:220px minmax(260px,1fr) minmax(260px,340px);gap:28px;align-items:start;padding:24px}
.dog-profile-main .photo{width:220px;height:220px;margin:0}
.profile-details h2{margin-top:0;font-size:28px}
.profile-details p{font-size:17px;line-height:1.5}
.profile-schools{border-left:1px solid #dfe7e3;padding-left:24px;min-height:220px}
.school-heading{text-transform:uppercase;font-size:15px;font-weight:900;letter-spacing:.4px;margin-bottom:12px;color:#21362e}
.school-card{background:#edf5f1;border-radius:14px;padding:16px;margin-bottom:12px;text-align:center;border:1px solid #dce8e2}
.school-card img,.school-logo-placeholder{display:block;width:100%;height:100px;object-fit:contain;border-radius:8px;background:#fff;margin-bottom:10px}
.school-logo-placeholder{display:flex;align-items:center;justify-content:center;font-size:46px}
.school-card-name{font-size:18px;font-weight:800;color:#21362e}
.profile-schools .not-assigned{margin-top:0}
@media(max-width:900px){.dog-profile-main{grid-template-columns:180px minmax(0,1fr)}.dog-profile-main .photo{width:180px;height:180px}.profile-schools{grid-column:1/-1;border-left:0;border-top:1px solid #dfe7e3;padding:18px 0 0}.school-card{display:flex;align-items:center;gap:14px;text-align:left}.school-card img,.school-logo-placeholder{width:100px;height:70px;margin:0;flex:0 0 100px}}
@media(max-width:600px){.dog-profile-main{grid-template-columns:1fr}.dog-profile-main .photo{width:100%;height:260px}.profile-schools{grid-column:auto}.school-card{display:block;text-align:center}.school-card img,.school-logo-placeholder{width:100%;height:110px;margin-bottom:10px}}

/* Compact trainer and training-school logos on dog profiles */
.dog-profile-main .trainerbadge{gap:8px;padding:6px 9px}
.dog-profile-main .trainerbadge img{width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;object-fit:contain!important}
.dog-profile-main .school-card{padding:10px;margin-bottom:8px}
.dog-profile-main .school-card img,.dog-profile-main .school-logo-placeholder{width:60px!important;height:45px!important;max-width:60px!important;max-height:45px!important;object-fit:contain!important;margin:0 auto 6px!important}
.dog-profile-main .school-logo-placeholder{font-size:26px!important}
.dog-profile-main .school-card-name{font-size:15px}
@media(max-width:900px){.dog-profile-main .school-card{display:flex;align-items:center;gap:10px;text-align:left}.dog-profile-main .school-card img,.dog-profile-main .school-logo-placeholder{width:60px!important;height:45px!important;flex:0 0 60px!important;margin:0!important}}
@media(max-width:600px){.dog-profile-main .school-card{display:flex;text-align:left}.dog-profile-main .school-card img,.dog-profile-main .school-logo-placeholder{width:60px!important;height:45px!important;flex:0 0 60px!important;margin:0!important}}


/* Training school public contact and useful links */
.school-card{text-decoration:none!important;display:block;cursor:pointer}
.school-card:hover{border-color:#2b7f68;box-shadow:0 4px 12px rgba(24,58,48,.08)}
.school-public-card{max-width:900px}
.school-public-head{display:flex;align-items:center;gap:18px;padding-bottom:18px;border-bottom:1px solid #e2e9e5}
.school-public-logo{width:90px!important;height:60px!important;max-width:90px!important;max-height:60px!important;object-fit:contain;border-radius:8px;background:#fff}
.school-public-logo.placeholder{display:flex;align-items:center;justify-content:center;font-size:34px;background:#edf5f1}
.school-public-contact{display:flex;flex-wrap:wrap;gap:28px;padding:18px 0}
.school-public-contact>div{min-width:180px}
.school-public-card .useful-links{display:grid;gap:10px}
.school-public-card .useful-link{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid #dce8e2;border-radius:10px;background:#edf5f1;text-decoration:none;color:#21362e;font-weight:700}
.school-public-card .useful-link:hover{border-color:#2b7f68}
@media(max-width:600px){.school-public-head{align-items:flex-start}.school-public-logo{width:70px!important;height:48px!important;max-width:70px!important;max-height:48px!important}.school-public-contact{display:block}.school-public-contact>div{margin-bottom:14px}}


/* FINAL TRAINING SCHOOL CARD LAYOUT */
.dog-profile-main .profile-schools{min-width:0}
.dog-profile-main .school-card{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  background:#edf5f1!important;
  border:0!important;
  border-radius:14px!important;
  padding:18px!important;
  margin:0 0 14px!important;
  text-align:center!important;
  text-decoration:none!important;
  color:#21362e!important;
}
.dog-profile-main .school-card-name-top{
  display:block!important;
  font-size:20px!important;
  line-height:1.25!important;
  font-weight:800!important;
  color:#21362e!important;
  margin:0 0 14px!important;
  text-align:center!important;
}
.dog-profile-main .school-card .school-profile-logo,
.dog-profile-main .school-card .school-logo-placeholder{
  display:block!important;
  width:100%!important;
  height:150px!important;
  max-width:100%!important;
  max-height:150px!important;
  min-width:0!important;
  min-height:0!important;
  box-sizing:border-box!important;
  object-fit:contain!important;
  background:#fff!important;
  border-radius:10px!important;
  margin:0 auto 14px!important;
}
.dog-profile-main .school-card .school-logo-placeholder{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:46px!important;
}
.dog-profile-main .school-card .school-details-btn{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:14px 12px!important;
  border:1.5px solid #2b8a70!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#176451!important;
  font-size:17px!important;
  font-weight:800!important;
  line-height:1.2!important;
  text-align:center!important;
  text-decoration:none!important;
}
.dog-profile-main .school-card:hover .school-details-btn{
  background:#f7fbf9!important;
}
@media(max-width:900px){
  .dog-profile-main .school-card{
    display:block!important;
    text-align:center!important;
  }
  .dog-profile-main .school-card .school-profile-logo,
  .dog-profile-main .school-card .school-logo-placeholder{
    width:100%!important;
    height:130px!important;
    max-height:130px!important;
    margin:0 auto 12px!important;
  }
}
@media(max-width:600px){
  .dog-profile-main .school-card{
    display:block!important;
    text-align:center!important;
  }
  .dog-profile-main .school-card .school-profile-logo,
  .dog-profile-main .school-card .school-logo-placeholder{
    height:120px!important;
    max-height:120px!important;
  }
}

/* FINAL OVERRIDE - TRAINING SCHOOL CARD MUST BE VERTICAL */
.dog-profile-main .profile-schools .school-card{display:block!important;width:100%!important;min-height:0!important;padding:16px!important;margin:0 0 12px!important;text-align:center!important;background:#edf5f1!important;border:1px solid #dce8e2!important;border-radius:14px!important;box-sizing:border-box!important}
.dog-profile-main .profile-schools .school-card .school-card-name-top{display:block!important;width:100%!important;margin:0 0 12px!important;padding:0!important;font-size:18px!important;line-height:1.25!important;font-weight:800!important;text-align:center!important;color:#21362e!important;overflow-wrap:anywhere!important}
.dog-profile-main .profile-schools .school-card .school-profile-logo,.dog-profile-main .profile-schools .school-card .school-logo-placeholder{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:120px!important;min-width:0!important;min-height:0!important;max-width:100%!important;max-height:120px!important;margin:0 auto 12px!important;padding:6px!important;box-sizing:border-box!important;object-fit:contain!important;object-position:center!important;background:#fff!important;border:0!important;border-radius:10px!important}
.dog-profile-main .profile-schools .school-card .school-details-btn{display:block!important;width:100%!important;min-width:0!important;box-sizing:border-box!important;margin:0!important;padding:12px 10px!important;border:1.5px solid #2b8a70!important;border-radius:11px!important;background:#fff!important;color:#176451!important;font-size:16px!important;line-height:1.25!important;font-weight:800!important;text-align:center!important;text-decoration:none!important;white-space:normal!important}
.dog-profile-main .profile-schools .school-card .school-details-btn:hover{background:#f7fbf9!important;border-color:#176451!important}
@media(max-width:900px){.dog-profile-main .profile-schools .school-card{display:block!important;text-align:center!important}.dog-profile-main .profile-schools .school-card .school-profile-logo,.dog-profile-main .profile-schools .school-card .school-logo-placeholder{height:120px!important;max-height:120px!important}}
@media(max-width:600px){.dog-profile-main .profile-schools .school-card{display:block!important;text-align:center!important}.dog-profile-main .profile-schools .school-card .school-profile-logo,.dog-profile-main .profile-schools .school-card .school-logo-placeholder{height:110px!important;max-height:110px!important}}


/* OWNER SCHOOL DETAILS + SCHOOL-BASED TRAINER DISPLAY */
.owner-school-card{margin-bottom:14px!important}
.owner-school-head{display:flex!important;align-items:center!important;gap:16px!important}
.owner-school-logo-wrap{width:110px!important;height:80px!important;flex:0 0 110px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#fff!important;border-radius:10px!important;overflow:hidden!important}
.owner-school-logo{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}
.owner-school-logo.placeholder{font-size:34px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.owner-school-details-btn{display:block!important;width:100%!important;box-sizing:border-box!important;margin-top:14px!important;text-align:center!important;text-decoration:none!important}
.trained-by-schools{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:8px!important}
.trained-by-school{display:inline-block!important;padding:8px 12px!important;border-radius:999px!important;background:#e8f2ee!important;border:1px solid #cfe2d9!important;font-weight:800!important;color:#173f32!important}
@media(max-width:600px){.owner-school-head{align-items:flex-start!important}.owner-school-logo-wrap{width:90px!important;height:70px!important;flex-basis:90px!important}}

/* School privacy final layout/context overrides */
.profile-schools .school-card{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;}
.profile-schools .school-card .school-card-name-top{text-align:center!important;font-size:1.05rem!important;font-weight:800!important;}
.profile-schools .school-card .school-profile-logo{display:block!important;width:100%!important;max-width:220px!important;height:120px!important;max-height:120px!important;object-fit:contain!important;margin:0 auto!important;}
.profile-schools .school-details-btn{display:block!important;width:100%!important;text-align:center!important;}


/* Badge checklist/progress styles */
.badge-checklist-head{display:flex;gap:16px;align-items:center;margin-bottom:14px}
.badge-checklist-head h3{margin:0 0 5px}
.badge-checklist-head p{margin:5px 0}
.badge-check-image{width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important;object-fit:contain!important;border-radius:10px;background:#fff;padding:5px}
.badge-status{display:inline-block;margin-top:5px;padding:6px 10px;border-radius:999px;font-weight:700;font-size:.9rem}
.badge-complete{background:#dff4e9;color:#176947}
.badge-incomplete{background:#eef2f0;color:#536b63}
.badge-level-row{margin:8px 0;border:1px solid #dce8e4;border-radius:10px;padding:10px 12px;background:#fff}
.badge-level-row input{width:auto!important;margin-right:10px}
.badge-level-row small{display:block;color:#71817b;margin-top:2px}
.badge-checklist-admin{margin-top:16px;padding:14px;border-radius:12px;background:#f4f8f6}
.badge-checklist-admin h4{margin:0 0 5px}
.badge-progress-panel{padding:18px}
.badge-progress-card{border:1px solid #dce8e4;border-radius:12px;padding:14px;margin:12px 0;background:#fff}
.badge-progress-top{display:flex;gap:14px;align-items:center}
.badge-progress-image{width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important;object-fit:contain!important;border-radius:8px}
.badge-progress-bar{height:10px;background:#e8efec;border-radius:999px;overflow:hidden;margin:12px 0 7px}
.badge-progress-bar i{display:block;height:100%;background:var(--brand,#28785e);border-radius:999px}
.badge-progress-meta{display:flex;justify-content:space-between;color:#536b63;font-size:.9rem}
@media(max-width:700px){.badge-checklist-head{align-items:flex-start}.badge-check-image,.badge-progress-image{width:56px!important;height:56px!important;max-width:56px!important;max-height:56px!important}.badge-checklist-admin .setup-row{display:block}.badge-checklist-admin .setup-row form{margin-bottom:8px}}

/* Award progress on dog profile */
.dog-award-progress-card{border:1px solid #d7e4df;border-radius:16px;padding:18px;margin:0 0 16px;background:#fff}
.dog-award-progress-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.dog-award-progress-head img{width:64px!important;height:64px!important;object-fit:contain;border-radius:10px;flex:0 0 64px}
.dog-award-progress-head h3{margin:0 0 6px}
.award-progress-track{height:12px;background:#e7eeeb;border-radius:999px;overflow:hidden}
.award-progress-track i{display:block;height:100%;background:#287d67;border-radius:999px}
.award-progress-meta{display:flex;justify-content:space-between;margin:8px 0 12px;font-size:14px}
.award-progress-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.award-progress-check{padding:9px 11px;border-radius:10px;background:#f5f7f6;color:#5d6965}
.award-progress-check.done{background:#e8f5ef;color:#1e6d58;font-weight:700}
.award-progress-check span{display:inline-block;width:24px;font-weight:700}
@media(max-width:700px){.award-progress-checks{grid-template-columns:1fr}.dog-award-progress-head img{width:56px!important;height:56px!important;flex-basis:56px}}

/* Trainer menu groups */
#portal-sidebar .menu-group{margin:2px 10px;border:0;border-radius:10px}
#portal-sidebar .menu-group summary{list-style:none;cursor:pointer;padding:10px 12px;font-weight:800;color:inherit;display:flex;align-items:center;justify-content:space-between}
#portal-sidebar .menu-group summary::-webkit-details-marker{display:none}
#portal-sidebar .menu-group summary:after{content:'▾';font-size:12px;opacity:.7}
#portal-sidebar .menu-group:not([open]) summary:after{content:'▸'}
#portal-sidebar .menu-group>a{display:block;margin:2px 0 2px 8px;padding:8px 12px;border-radius:8px}
.dog-reminders-panel .reminder-row,.reminder-management-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:12px 0;border-top:1px solid #e5e7eb}
.reminder-management-row:first-child{border-top:0}
.reminder-row small{display:block;margin-top:4px}
.handler-awareness .top{align-items:center}
@media(max-width:800px){#portal-sidebar .menu-group{margin:2px 6px}.dog-reminders-panel .reminder-row,.reminder-management-row{display:block}.dog-reminders-panel .reminder-row>*,.reminder-management-row>*{margin-bottom:8px}}


/* Dog card images: centre the whole uploaded photo inside the fixed image area */
.grid .dog > a > img,
.grid .dog > img {
  display:block!important;
  width:100%!important;
  height:180px!important;
  min-height:180px!important;
  max-height:180px!important;
  object-fit:contain!important;
  object-position:center center!important;
  background:#e8efec!important;
}
@media(max-width:700px){
  .grid .dog > a > img,
  .grid .dog > img {height:180px!important;min-height:180px!important;max-height:180px!important;object-fit:contain!important;object-position:center center!important;}
}

/* Notes privacy */
.note-private-toggle{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:12px!important;border:1px solid #e0e7e3!important;border-radius:10px!important;background:#f7faf8!important;font-weight:normal!important}
.note-private-toggle input{width:auto!important;margin-top:3px!important}
.note-private-badge,.note-public-badge{display:inline-block!important;padding:3px 8px!important;border-radius:999px!important;font-size:11px!important;font-weight:800!important;margin-left:5px!important}
.note-private-badge{background:#fff0f0!important;color:#9f1d1d!important}
.note-public-badge{background:#e8f5ef!important;color:#176947!important}


/* Final dog-card image centring and standalone logout v2 */
.portal-top-actions{position:fixed;top:18px;right:22px;z-index:1100;display:flex;align-items:center;justify-content:flex-end;gap:14px}
.top-logout{position:static!important;background:#b42323!important;color:#fff!important;padding:11px 18px!important;border-radius:9px!important;text-decoration:none!important;font-weight:800!important;box-shadow:0 3px 10px rgba(0,0,0,.12);white-space:nowrap}
.top-logout:hover{background:#941b1b!important;color:#fff!important}
.dog-image-frame{width:100%!important;height:180px!important;min-height:180px!important;max-height:180px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;background:#e8efec!important;padding:0!important;margin:0!important}
.grid .dog .dog-image-frame img{display:block!important;width:auto!important;height:auto!important;max-width:92%!important;max-height:92%!important;object-fit:contain!important;object-position:center center!important;margin:0 auto!important}
.grid .dog .dog-image-frame .ph{width:100%!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin:0!important}
@media(max-width:760px){.top-logout{top:12px;right:12px;padding:9px 13px!important;font-size:14px}.mobile-menu-toggle{margin-right:92px!important}.dog-image-frame{height:180px!important;min-height:180px!important;max-height:180px!important}}

/* Accordion menu: only one trainer menu section open at a time */
#portal-sidebar details.menu-group[open]~details.menu-group[open]{display:block;}
#portal-sidebar .menu-group summary{user-select:none;}

/* Owner / handler information - match Important Information styling */
.handler-awareness{background:#fff4f4!important;border:2px solid #e7a3a3!important;border-radius:16px!important;padding:24px!important;box-shadow:none!important}
.handler-awareness .top h2,.handler-awareness h2{color:#a51f2b!important;font-weight:800!important}
.handler-awareness .top .muted{color:#a51f2b!important;font-weight:700!important}
.handler-awareness .awareness-item{background:#fff!important;border:1px solid #efb5b5!important;border-radius:12px!important;padding:14px 16px!important;margin:12px 0!important}
.handler-awareness .awareness-item b{color:#a51f2b!important}
.handler-awareness .awareness-item p{margin:6px 0 0!important}
.handler-awareness .btn{border-color:#a51f2b!important}
@media(max-width:700px){.handler-awareness{padding:18px!important}}

/* Allergy information - highly visible red tags on dog profile */
.dog-profile-allergies{background:#fff4f4!important;border:2px solid #e7a3a3!important;border-radius:16px!important;padding:20px 24px!important;box-shadow:none!important}
.dog-profile-allergies .dog-alert-title{color:#a51f2b!important;font-weight:800!important;font-size:18px!important;margin-bottom:12px!important}
.dog-profile-allergies .chips{display:flex!important;flex-wrap:wrap!important;gap:8px!important}
.dog-profile-allergies .allergy-chip{display:inline-flex!important;align-items:center!important;background:#fff!important;border:1px solid #efa5a5!important;color:#a51f2b!important;border-radius:999px!important;padding:8px 13px!important;line-height:1.1!important}
.dog-profile-allergies .allergy-chip strong{color:#a51f2b!important;font-weight:800!important}
@media(max-width:700px){.dog-profile-allergies{padding:18px!important}.dog-profile-allergies .allergy-chip{padding:7px 11px!important}}

/* Allergy information - highly visible red tags on dog profile */
.dog-profile-allergies{background:#fff4f4!important;border:2px solid #e7a3a3!important;border-radius:16px!important;padding:20px 24px!important;box-shadow:none!important}
.dog-profile-allergies .dog-alert-title{color:#a51f2b!important;font-weight:800!important;font-size:18px!important;margin-bottom:12px!important}
.dog-profile-allergies .chips{display:flex!important;flex-wrap:wrap!important;gap:8px!important}
.dog-profile-allergies .allergy-chip{display:inline-flex!important;align-items:center!important;background:#fff!important;border:1px solid #efa5a5!important;color:#a51f2b!important;border-radius:999px!important;padding:8px 13px!important;line-height:1.1!important}
.dog-profile-allergies .allergy-chip strong{color:#a51f2b!important;font-weight:800!important}
@media(max-width:700px){.dog-profile-allergies{padding:18px!important}.dog-profile-allergies .allergy-chip{padding:7px 11px!important}}

/* Training Schools page - keep uploaded school logos contained */
.training-schools-page .school-profile-logo,
.school-trainer-edit + .school-profile-logo,
img.school-profile-logo{
  display:block!important;
  width:140px!important;
  height:90px!important;
  max-width:140px!important;
  max-height:90px!important;
  min-width:0!important;
  min-height:0!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 0 12px 0!important;
  padding:6px!important;
  box-sizing:border-box!important;
  background:#fff!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.school-heading .school-profile-logo{
  flex:0 0 140px!important;
}
@media(max-width:700px){
  img.school-profile-logo{
    width:110px!important;
    height:75px!important;
    max-width:110px!important;
    max-height:75px!important;
    flex-basis:110px!important;
  }
}
/* Dog age on profile */
.dog-age{margin:10px 0 14px;font-size:17px;line-height:1.45;color:#17323a}
.dog-age b{font-weight:700}
@media(max-width:700px){.dog-age{font-size:16px}}

/* PWA install + notifications */
.pwa-install-btn,.pwa-notify-btn{position:static!important;border:0;border-radius:10px;padding:11px 16px;font-weight:700;cursor:pointer;background:#28785e;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.12);white-space:nowrap}
.pwa-notify-btn{background:#1f6f9f}
.pwa-install-btn[hidden],.pwa-notify-btn[hidden]{display:none!important}
@media(max-width:700px){.portal-top-actions{top:12px;right:12px;gap:8px;flex-wrap:wrap;max-width:calc(100vw - 24px)}.portal-top-actions .pwa-install-btn,.portal-top-actions .pwa-notify-btn,.portal-top-actions .top-logout{padding:9px 12px!important;font-size:14px}.mobile-menu-toggle{margin-right:8px!important}.top-logout{z-index:auto}}

/* Public account request */
.login-request{text-align:center;margin-top:18px;padding-top:16px;border-top:1px solid #e5e7eb;color:#667085}
.login-request a,.login-back a{font-weight:800;color:#28785e;text-decoration:none}
.login-request a:hover,.login-back a:hover{text-decoration:underline}
.account-request{max-width:620px!important}
.account-type-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 18px}
.account-type-choice .choice{display:flex!important;align-items:flex-start;gap:10px;background:#f8faf9;border:2px solid #dbe7e1;border-radius:14px;padding:15px!important;cursor:pointer}
.account-type-choice .choice:has(input:checked){border-color:#28785e;background:#eef8f3}
.account-type-choice .choice input{margin-top:4px!important;width:auto!important}
.account-type-choice .choice span{display:flex;flex-direction:column;gap:5px}
.account-type-choice .choice b{font-size:17px;color:#17323a}
.account-type-choice .choice small{font-weight:400;color:#667085;line-height:1.4}
.login-back{margin:18px 0 0;text-align:center}
.request-tabs{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:650px){.account-type-choice{grid-template-columns:1fr}.account-request{width:auto!important;margin:20px 12px!important}}

/* Combined notes + reminders */
.unified-notes-intro{display:flex!important;align-items:center!important;gap:10px!important;margin-bottom:14px!important}
.unified-notes-intro b{font-weight:800!important}
.note-reminder-row{margin-top:12px!important;padding-top:10px!important;border-top:1px solid #e5e7eb!important;display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
.note-reminder-badge{display:inline-block!important;padding:4px 10px!important;border-radius:999px!important;background:#fff4cf!important;color:#6b4e00!important;border:1px solid #ead28b!important;font-size:12px!important;font-weight:800!important}

/* Mobile collapsible sidebar menu */
.mobile-menu-toggle{display:none;position:fixed;top:12px;left:12px;z-index:1401;border:0;border-radius:10px;background:var(--brand,#28785e);color:#fff;padding:10px 14px;font-weight:800;font-size:15px;line-height:1;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;margin:0!important}
.mobile-menu-toggle.menu-is-open{z-index:1402}
.mobile-menu-overlay{display:none}
@media(max-width:760px){
  .mobile-menu-toggle{display:block}
  body.menu-open{overflow:hidden}
  #portal-sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    width:min(320px,86vw)!important;
    max-width:86vw!important;
    height:100vh!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    z-index:1300!important;
    padding:20px 14px 28px!important;
    transform:translateX(-105%);
    transition:transform .22s ease,box-shadow .22s ease!important;
    box-shadow:none!important;
  }
  #portal-sidebar.mobile-open{transform:translateX(0);box-shadow:8px 0 28px rgba(0,0,0,.2)!important}
  .mobile-menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:1250;display:block;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
  .mobile-menu-overlay.mobile-open{opacity:1;visibility:visible}
  main{margin-left:0!important}
  .wrap{padding-top:68px!important}
  #portal-sidebar .brand{margin:4px 10px 22px!important}
  #portal-sidebar .menu-group{margin:2px 0!important}
  #portal-sidebar .menu-group summary{padding:12px!important}
  #portal-sidebar .menu-group>a{padding:11px 12px!important;margin:2px 0 2px 6px!important}
  #portal-sidebar>a{padding:12px!important}
}

/* Site-wide mobile navigation: owner, trainer and admin portals */
.mobile-menu-close{display:none}
@media(max-width:760px){
  #portal-sidebar .mobile-menu-close{display:flex!important;align-items:center;justify-content:center;gap:7px;width:100%;border:0;border-radius:10px;background:transparent;color:inherit;padding:10px 12px;margin:0 0 8px;font-weight:800;font-size:14px;cursor:pointer}
  #portal-sidebar .owner-menu-group{margin:2px 0!important}
  #portal-sidebar .owner-menu-group>a{padding:11px 12px!important;margin:2px 0 2px 6px!important}
}
/* Owner/customer portal: keep navigation as direct links, not a dropdown submenu. */
#portal-sidebar .owner-menu-links{display:flex;flex-direction:column;gap:4px;margin:0}
#portal-sidebar .owner-menu-links a{display:block}
/* Owner/customer portal: direct links instead of a dropdown submenu. */
#portal-sidebar .owner-menu-links{display:flex;flex-direction:column;gap:4px;margin:0}
#portal-sidebar .owner-menu-links a{display:block}


.support-impersonation-banner{position:fixed;top:0;left:0;right:0;z-index:10000;background:#fff3cd;color:#664d03;border-bottom:2px solid #ffecb5;padding:10px 16px;text-align:center;font-size:14px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.support-impersonation-banner a{font-weight:700;margin-left:10px;color:inherit;text-decoration:underline}
body:has(.support-impersonation-banner){padding-top:46px}
@media(max-width:700px){.support-impersonation-banner{font-size:12px;padding:8px 10px}.support-impersonation-banner a{display:block;margin:4px 0 0}}

/* FINAL NO-OVERLAP HEADER - authoritative rules (must be last) */
.portal-top-actions{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  float:none!important;
  display:flex!important;
  width:calc(100% - 245px)!important;
  margin:0 0 0 245px!important;
  min-height:82px!important;
  height:auto!important;
  padding:14px 24px!important;
  box-sizing:border-box!important;
  background:#f3f7f5!important;
  border-bottom:1px solid #dfe8e3!important;
  align-items:center!important;
  justify-content:flex-end!important;
  align-content:center!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  z-index:10!important;
  overflow:visible!important;
}
.portal-top-actions > *{
  position:static!important;
  float:none!important;
  flex:0 0 auto!important;
  margin:0!important;
}
main{margin-left:245px!important;padding-top:0!important;}
main .wrap{padding-top:34px!important;}
.top{position:relative!important;z-index:1!important;}
.top > div{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important;max-width:100%!important;}
@media(max-width:760px){
  .portal-top-actions{
    width:100%!important;
    margin:0!important;
    min-height:104px!important;
    padding:12px 12px 12px 82px!important;
    gap:8px!important;
    justify-content:flex-end!important;
    align-items:center!important;
    flex-wrap:wrap!important;
  }
  .portal-top-actions .pwa-install-btn,
  .portal-top-actions .pwa-notify-btn,
  .portal-top-actions .top-logout{
    margin:0!important;
    padding:9px 12px!important;
    font-size:13px!important;
    line-height:1.2!important;
  }
  main{margin-left:0!important;padding-top:0!important;}
  main .wrap{padding:20px 14px 34px!important;}
  .top > div{width:100%!important;gap:7px!important;}
  .top > div .btn,.top > div button{margin:0!important;}
}
