/* =========================================================
   Cheese.Graduation — Auth + Photographer workspace responsive v64
   Loads after premium-2026.css.
   ========================================================= */

/* ---------- Shared login ---------- */
body.portal-login .auth-layout{
  width:min(1240px,100%)!important;
  min-height:min(700px,calc(100svh - 128px))!important;
  grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr)!important;
}
body.portal-login .auth-story{
  min-width:0!important;
  padding:clamp(42px,5vw,72px)!important;
}
body.portal-login .auth-card{
  min-width:0!important;
  padding:clamp(34px,4vw,58px)!important;
}
body.portal-login .auth-card form{width:100%;max-width:460px}
body.portal-login .auth-card label{font-size:11px!important;font-weight:800!important}
body.portal-login .auth-card input{
  width:100%!important;
  min-height:56px!important;
  font-size:16px!important;
}
body.portal-login .auth-card .primary{
  min-height:56px!important;
  font-size:13px!important;
  font-weight:900!important;
}
.login-role-hint{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:2px 0 8px;
  max-width:460px;
}
.login-role-hint span{
  display:grid;
  gap:2px;
  padding:10px 12px;
  border:1px solid rgba(16,43,63,.09);
  border-radius:13px;
  background:#f8f5ee;
  color:#6c7b85;
  font-size:10px;
  line-height:1.4;
}
.login-role-hint b{color:#0b2b42;font-size:11px}
body.portal-login .login-demos{max-width:460px}
body.portal-login .auth-card>small{max-width:460px;line-height:1.55!important}

/* ---------- Photographer workspace ---------- */
body.portal-schedule main{width:min(1500px,100%);margin-inline:auto!important}
body.portal-schedule .workspace-heading{
  padding:4px 2px 2px;
}
body.portal-schedule .session-actions button{min-height:44px}
body.portal-schedule .stats>div{min-width:0}
body.portal-schedule .schedule-layout{
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)!important;
}
body.portal-schedule .agenda-panel{min-width:0}
body.portal-schedule .event-card{overflow:hidden}
body.portal-schedule .event-card h3,
body.portal-schedule .event-card p{overflow-wrap:anywhere}
body.portal-schedule .agenda-filters input,
body.portal-schedule .agenda-filters select{min-height:44px}

@media(max-width:1000px){
  body.portal-login .auth-layout{grid-template-columns:1fr!important}
  body.portal-schedule .schedule-layout{grid-template-columns:1fr!important}
}

@media(max-width:760px){
  /* Login: form first, visual story second */
  body.portal-login .topbar{
    top:7px!important;
    width:calc(100% - 14px)!important;
    height:58px!important;
    padding:0 12px!important;
    border-radius:18px!important;
  }
  body.portal-login .topbar .brand{width:112px!important;padding:5px 8px!important}
  body.portal-login .topbar .portal-label{display:none!important}
  body.portal-login .topbar .home-link{
    margin-left:auto!important;
    padding:8px 10px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:999px!important;
    font-size:10px!important;
    white-space:nowrap!important;
  }
  body.portal-login main{
    display:block!important;
    min-height:100svh!important;
    padding:74px 7px 7px!important;
  }
  body.portal-login .auth-layout{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
    border-radius:23px!important;
    overflow:hidden!important;
  }
  body.portal-login .auth-card{
    order:1!important;
    padding:28px 20px 30px!important;
    border-radius:0!important;
  }
  body.portal-login .auth-card>.eyebrow{font-size:9px!important}
  body.portal-login .auth-card h2{
    margin-top:10px!important;
    font-size:clamp(32px,10vw,42px)!important;
    line-height:1.05!important;
  }
  body.portal-login .auth-card>p{font-size:12px!important;line-height:1.6!important;margin-bottom:12px!important}
  .login-role-hint{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:4px}
  .login-role-hint span{padding:9px 10px;font-size:9px}
  .login-role-hint b{font-size:10px}
  body.portal-login .auth-card label{margin-top:13px!important;font-size:10px!important}
  body.portal-login .auth-card input{min-height:54px!important;border-radius:13px!important}
  body.portal-login .auth-card .primary{min-height:54px!important;margin-top:18px!important}
  body.portal-login .auth-divider{margin:18px 0!important}
  body.portal-login .login-demos summary{min-height:42px;display:flex;align-items:center}
  body.portal-login .auth-card>small{font-size:10px!important;margin-top:14px!important}
  body.portal-login .auth-story{
    order:2!important;
    min-height:230px!important;
    padding:56px 20px 22px!important;
    justify-content:flex-end!important;
  }
  body.portal-login .auth-story::before{top:18px!important;left:20px!important;font-size:8px!important}
  body.portal-login .auth-story::after{display:none!important}
  body.portal-login .auth-story .eyebrow{display:none!important}
  body.portal-login .auth-story h1{
    max-width:360px!important;
    margin:0 0 8px!important;
    font-size:clamp(36px,12vw,50px)!important;
    line-height:.96!important;
  }
  body.portal-login .auth-story p{font-size:11px!important;line-height:1.6!important}

  /* Photographer top navigation */
  body.portal-schedule .topbar{
    top:6px!important;
    width:calc(100% - 12px)!important;
    height:58px!important;
    margin-top:6px!important;
    padding:0 11px!important;
    gap:9px!important;
    border-radius:17px!important;
  }
  body.portal-schedule .topbar .brand{width:105px!important;flex:0 0 105px!important}
  body.portal-schedule .topbar .portal-label{display:none!important}
  body.portal-schedule .topbar .home-link{
    margin-left:auto!important;
    padding:8px 10px!important;
    border:1px solid rgba(23,61,93,.10)!important;
    border-radius:999px!important;
    background:#fff!important;
    font-size:9px!important;
    white-space:nowrap!important;
  }
  body.portal-schedule main{
    padding:20px 8px calc(28px + env(safe-area-inset-bottom))!important;
  }
  body.portal-schedule .workspace-heading{
    display:grid!important;
    gap:14px!important;
    margin-bottom:14px!important;
    padding:16px 14px!important;
    border:1px solid rgba(16,43,63,.08)!important;
    border-radius:20px!important;
    background:rgba(255,253,248,.88)!important;
    box-shadow:0 10px 30px rgba(9,35,54,.05)!important;
  }
  body.portal-schedule .workspace-heading .eyebrow{font-size:8px!important}
  body.portal-schedule .workspace-heading h1{
    margin:5px 0 4px!important;
    font-size:clamp(34px,10vw,44px)!important;
    line-height:1.03!important;
  }
  body.portal-schedule .workspace-heading p{font-size:11px!important}
  body.portal-schedule .session-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
    gap:7px!important;
  }
  body.portal-schedule .session-actions button{
    width:100%!important;
    min-height:44px!important;
    padding:0 10px!important;
    font-size:10px!important;
    border-radius:12px!important;
  }
  body.portal-schedule .stats{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    margin-bottom:12px!important;
  }
  body.portal-schedule .stats>div{
    padding:13px!important;
    border-radius:16px!important;
  }
  body.portal-schedule .stats span{font-size:9px!important;line-height:1.35!important}
  body.portal-schedule .stats strong{font-size:24px!important;margin-top:7px!important}
  body.portal-schedule .schedule-layout{gap:12px!important}
  body.portal-schedule .calendar-panel,
  body.portal-schedule .agenda-panel{
    padding:13px 10px!important;
    border-radius:19px!important;
  }
  body.portal-schedule .panel-heading{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:flex-start!important;
    gap:9px!important;
    margin-bottom:13px!important;
  }
  body.portal-schedule .panel-heading h2{font-size:18px!important;line-height:1.2!important}
  body.portal-schedule .calendar-controls{margin-left:auto!important;gap:4px!important}
  body.portal-schedule .calendar-controls button{
    min-width:40px!important;
    min-height:40px!important;
    padding:0 7px!important;
    font-size:11px!important;
  }
  body.portal-schedule .weekdays,
  body.portal-schedule .calendar{gap:2px!important}
  body.portal-schedule .weekdays span{padding-bottom:7px!important;font-size:8px!important}
  body.portal-schedule .day{
    height:54px!important;
    min-height:54px!important;
    padding:5px 1px!important;
    border-radius:8px!important;
    gap:2px!important;
  }
  body.portal-schedule .day .day-number{font-size:11px!important}
  body.portal-schedule .day small{font-size:6.5px!important;line-height:1.1!important}
  body.portal-schedule .dots{height:5px!important;gap:2px!important}
  body.portal-schedule .dots i{width:4px!important;height:4px!important}
  body.portal-schedule .legend{gap:7px!important;margin-top:12px!important;font-size:8px!important}
  body.portal-schedule .calendar-note{font-size:9px!important;margin-top:10px!important;line-height:1.5!important}
  body.portal-schedule .agenda-filters{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
  body.portal-schedule .agenda-filters input,
  body.portal-schedule .agenda-filters select{
    width:100%!important;
    min-height:46px!important;
    font-size:16px!important;
  }
  body.portal-schedule .result-count{font-size:9px!important;margin:10px 0!important}
  body.portal-schedule .event-card{
    padding:13px!important;
    margin-bottom:8px!important;
    border-radius:14px!important;
  }
  body.portal-schedule .event-meta{font-size:9px!important}
  body.portal-schedule .pill{font-size:8px!important;padding:4px 6px!important}
  body.portal-schedule .event-card h3{font-size:13px!important;margin:8px 0 4px!important}
  body.portal-schedule .event-card p{font-size:10px!important;line-height:1.45!important}
  body.portal-schedule .event-card .event-end{font-size:9px!important;gap:8px!important}
  body.portal-schedule .sync-note,
  body.portal-schedule .footer-note{font-size:9px!important;line-height:1.5!important}

  /* Schedule detail dialog becomes a comfortable bottom sheet */
  body.portal-schedule dialog{
    width:100%!important;
    max-width:none!important;
    max-height:88svh!important;
    margin:auto 0 0!important;
    border-radius:22px 22px 0 0!important;
    padding:20px 15px calc(18px + env(safe-area-inset-bottom))!important;
  }
  body.portal-schedule dialog[open]{display:block!important}
  body.portal-schedule #detailTitle{font-size:24px!important;margin:14px 0 17px!important}
  body.portal-schedule #detailBody dl>div{padding:10px 0!important}
  body.portal-schedule dt{font-size:9px!important}
  body.portal-schedule dd{font-size:12px!important}
  body.portal-schedule #confirmSchedule,
  body.portal-schedule #detailDone{min-height:48px!important;font-size:12px!important}
}

@media(max-width:380px){
  .login-role-hint{grid-template-columns:1fr!important}
  body.portal-login .auth-card{padding-inline:17px!important}
  body.portal-schedule .stats{gap:6px!important}
  body.portal-schedule .stats>div{padding:11px!important}
  body.portal-schedule .stats strong{font-size:22px!important}
  body.portal-schedule .day{height:49px!important;min-height:49px!important}
  body.portal-schedule .day small{display:none!important}
}
