/* Portal-wide responsive layer - Canadian Bulldogs Staff Portal */
:root{
  --cb-maroon:#5D1725;
  --cb-gold:#C99700;
  --cb-border:#dddddd;
  --cb-soft:#f7f7f7;
  --cb-text:#171717;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  width:min(100% - 24px, 1240px) !important;
  max-width:none !important;
  margin:18px auto !important;
  padding:0 !important;
  color:var(--cb-text);
  line-height:1.35;
}
a{word-break:break-word;}
img,svg,canvas{max-width:100%;height:auto;}
input,select,textarea,button{font:inherit;max-width:100%;}
select,input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="date"],input[type="time"],input[type="url"],textarea{
  min-height:42px;
  border:1px solid #cfcfcf;
  border-radius:9px;
  padding:9px 10px;
  background:#fff;
}
button,.btn,input[type="submit"]{
  min-height:42px;
  border-radius:10px;
  touch-action:manipulation;
}
.card,.panel,.box,fieldset{
  max-width:100%;
}
.nav,.top,.filters,.actions,.toolbar,.row,.form-row{
  max-width:100%;
}
/* Keep wide tables usable without breaking the page */
table{max-width:100%;}
.table-scroll,.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
body > table:not(.no-mobile-wrap), .card > table:not(.no-mobile-wrap), form > table:not(.no-mobile-wrap){
  display:block;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  white-space:nowrap;
}
/* Better dashboard/tool lists */
ul{padding-left:20px;}
.card ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;padding-left:0;list-style:none;}
.card li a{display:block;border:1px solid var(--cb-border);border-radius:12px;padding:12px;background:#fff;text-decoration:none;color:var(--cb-maroon);font-weight:700;}
.card li a:hover{background:var(--cb-soft);}
/* Forms collapse cleanly on smaller screens */
form .filters, .filters, .toolbar, .actions{gap:10px;}
label{display:inline-block;margin-bottom:4px;}
@media (max-width: 780px){
  body{width:min(100% - 18px, 1240px) !important;margin:12px auto !important;font-size:15px;}
  h1{font-size:1.55rem;line-height:1.1;}
  h2{font-size:1.25rem;}
  h3{font-size:1.05rem;}
  .top,.nav,.filters,.actions,.toolbar,.row,.form-row{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .top > *, .nav > *, .filters > *, .actions > *, .toolbar > *, .row > *, .form-row > *{max-width:100%;}
  a.btn,.btn,button,input[type="submit"]{width:100%;text-align:center;justify-content:center;}
  select,input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="date"],input[type="time"],input[type="url"],textarea{width:100%;}
  .card{padding:12px !important;border-radius:12px !important;}
  .card ul{grid-template-columns:1fr;}
  /* Make old fixed-width tables scroll instead of squeezing content off screen */
  th,td{padding:8px 10px;}
}
@media (max-width: 480px){
  body{width:min(100% - 14px, 1240px) !important;font-size:14px;}
  h1{font-size:1.35rem;}
  .card li a{padding:11px;}
}
