/* Client and groomer workspaces extend the established Pawsome Pups palette. */
.portal-login { display:grid; grid-template-columns:1.1fr 1fr; gap:58px; align-items:center; padding-top:46px; padding-bottom:64px; }
.login-story { background:var(--ink); color:white; padding:42px; border-radius:22px 70px 22px 22px; }
.login-story .eyebrow { color:#f7d7bf; }
.login-story h1 { font-size:clamp(2.7rem,4vw,3.65rem); }
.login-story .lead { color:#dce9e3; font-size:1.05rem; margin-top:22px; }
.login-role-links { display:flex; flex-wrap:wrap; gap:24px; margin-top:27px; }
.login-role-links a { font-size:.95rem; padding-bottom:6px; text-decoration:none; border-bottom:2px solid transparent; }
.login-role-links a[aria-current] { border-color:#f7d7bf; color:#f7d7bf; }
.login-example { margin-top:30px; border-top:1px solid #53706a; padding-top:24px; }
.login-example strong { font-size:1rem; }
.login-example p { font-size:.9rem; line-height:1.6; color:#dce9e3; }
.login-form-card { width:100%; max-width:465px; padding:34px; }
.login-form-card h2 { margin-top:18px; font-size:2.25rem; }
.login-form-card form { margin-top:22px; }
.login-form-card .field label { font-size:.9rem; }
.login-form-card input[readonly] { background:#fafbf8; color:var(--ink); }
.login-form-card .fine-print { font-size:.875rem; }
.password-preview { position:relative; }
.password-preview input { padding-right:95px; }
.password-preview span { position:absolute; right:13px; top:13px; font-size:.8rem; color:var(--muted); pointer-events:none; }
.login-footnote { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); font-size:.875rem; color:var(--muted); }
#session-status { background:#eaf0e8; border-bottom:1px solid #d1dfd2; }
#session-status:empty { display:none; }
.session-inner { max-width:1264px; margin:auto; padding:12px 32px; display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; justify-content:space-between; font-size:.875rem; }
.session-inner>span { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.session-inner>div { display:flex; gap:22px; align-items:center; flex-wrap:wrap; }
.session-inner button { border:0; padding:0; background:none; text-decoration:underline; text-underline-offset:4px; font-size:.875rem; }
.session-inner .pill { font-size:.75rem; background:white; }
.portal-top { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:25px; }
.portal-top .eyebrow { margin-bottom:10px; }
.portal-top h1 { font-size:clamp(2.35rem,3.7vw,3.3rem); }
.portal-top .lead { margin-top:13px; font-size:1.05rem; }
.portal-top>.btn { flex-shrink:0; }
.portal-metrics { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:18px; margin:24px 0 30px; }
.portal-metrics>div { border:1px solid var(--line); background:white; border-radius:16px; padding:21px 23px; }
.portal-metrics>div:first-child { background:var(--ink); color:white; border-color:var(--ink); }
.portal-metrics span { display:block; font-size:.875rem; }
.portal-metrics strong { display:block; font:1.85rem/1.2 'Fraunces',Georgia,serif; margin-top:12px; }
.portal-metrics p { font-size:.875rem; color:var(--muted); margin-top:9px; }
.portal-metrics>div:first-child p { color:#dce9e3; }
.portal-tab-row { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:28px; }
.portal-tab-row .desk-tabs { margin-bottom:0; }
.portal-tab-row .desk-tab { font-size:.9rem; }
.portal-tab-row .desk-tab span { margin-left:5px; opacity:.75; }
.pup-filter { margin-top:0; min-width:165px; }
.pup-filter label { font-size:.875rem; }
.client-booking-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,.85fr); gap:26px; align-items:start; }
.client-booking-layout h2 { font-size:1.9rem; }
.client-help h3 { margin-top:18px; font-size:1.2rem; line-height:1.25; }
.client-help .small { font-size:.9rem; }
.client-help .fine-print { font-size:.875rem; }
.client-booking-layout .appointment-row { flex-wrap:wrap; padding:22px; }
.client-booking-layout .appointment-row strong { font-size:1.1rem; }
.client-booking-layout .appointment-row .actions { margin-left:auto; }
.portal-disclaimer { font-size:.875rem; border-top:1px solid var(--line); padding-top:22px; margin-top:34px; }
.groom-history { display:grid; gap:18px; }
.history-card { display:grid; grid-template-columns:128px minmax(0,1fr); align-items:start; gap:27px; }
.history-card h3 { margin-top:12px; font-size:1.3rem; line-height:1.3; }
.history-card .history-note { max-width:750px; line-height:1.65; }
.history-card .button-row { margin-top:17px; }
.history-photo { border:0; background:#f2e8dc; padding:7px; border-radius:13px; overflow:hidden; }
.history-photo img { width:100%; height:155px; object-fit:contain; }
.history-initial { width:100%; min-height:145px; border-radius:13px; background:#eaf0e8; display:grid; place-items:center; font:3rem 'Fraunces',Georgia,serif; color:#6d887c; }
.owner-note { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-bottom:24px; font-size:.9rem; color:var(--muted); }
.owner-note .pill { font-size:.875rem; }
.owner-tabs { margin:0 0 27px; }
.owner-tabs .desk-tab { font-size:.9rem; }
.owner-calendar-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr); gap:25px; align-items:start; }
.owner-month { padding:24px; }
.owner-month .calendar-nav { gap:12px; flex-wrap:wrap; }
.owner-month .calendar-nav h2 { font-size:1.6rem; }
.calendar-arrows { display:flex; gap:7px; }
.owner-grid { gap:6px; }
.owner-grid .weekday { font-size:.875rem; padding-bottom:6px; }
.owner-day { display:flex; flex-direction:column; align-items:flex-start; border:1px solid #e1e5de; background:#fff; border-radius:10px; padding:10px 8px; min-height:102px; text-align:left; }
.owner-day.home-day { background:#edf3ed; border-color:#ccdacf; }
.owner-day:hover { border-color:var(--ink); }
.owner-day.is-selected { background:var(--ink); color:white; border-color:var(--ink); box-shadow:0 0 0 2px white inset; }
.owner-day-number { font-size:.95rem; font-weight:600; display:flex; align-items:center; gap:6px; }
.today-mark { width:5px; height:5px; border-radius:50%; background:var(--red); }
.owner-day-count { font-size:.875rem; margin-top:7px; white-space:nowrap; }
.owner-day-indicators { display:flex; gap:5px; margin-top:auto; padding-top:7px; min-height:15px; }
.pending-mark,.confirmed-mark,.completed-mark,.blocked-mark { display:inline-block; width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.pending-mark { background:#c4712c; }.confirmed-mark { background:#28777e; }.completed-mark { background:#8c948e; }.blocked-mark { background:#b92439; border-radius:2px; }
.owner-day.is-selected .confirmed-mark { background:#a2d7d3; }
.owner-day.is-selected .pending-mark { background:#f2b573; }
.owner-day.is-selected .completed-mark { background:#c7d1c8; }
.owner-legend { display:flex; gap:10px 19px; flex-wrap:wrap; margin-top:21px; color:var(--muted); font-size:.875rem; }
.owner-legend>span { display:flex; gap:7px; align-items:center; }
.owner-agenda { padding:26px; }
.owner-agenda h2 { font-size:1.9rem; }
.owner-agenda .eyebrow { margin-bottom:12px; }
.day-agenda { margin:22px 0; display:grid; gap:15px; }
.agenda-entry { padding:17px 17px 15px; background:#f5f8f3; border-left:4px solid #28777e; border-radius:0 10px 10px 0; }
.agenda-entry.pending { background:#fff4e8; border-left-color:#c4712c; }
.agenda-entry.completed { background:#f1f1ed; border-left-color:#8c948e; }
.agenda-entry.blocked { background:#f9ecee; border-left-color:var(--red); }
.agenda-time { font-weight:700; font-size:.95rem; }
.agenda-time span { display:block; font-size:.875rem; font-weight:400; color:var(--muted); margin-top:3px; }
.agenda-entry h3 { margin-top:12px; font:1.55rem 'Fraunces',Georgia,serif; }
.agenda-entry p { margin-top:5px; }
.agenda-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:9px; margin:10px 0 5px; }
.agenda-entry>.btn { margin-top:9px; }
.empty-day { border:1px dashed #ccd5c9; border-radius:10px; padding:20px; color:var(--muted); }
.empty-day p { margin:0; font-size:.9rem; }
.portal-metrics>div,.portal-top>div,.history-card>div,.owner-agenda { min-width:0; }
.portal-metrics strong,.history-card h3,.agenda-entry h3,.owner-day-count { overflow-wrap:anywhere; }
@media(max-width:1080px) {
  nav { gap:16px; } nav a { font-size:.875rem; } nav .nav-account { padding:9px 14px; }
  .portal-login { gap:30px; }.login-story { padding:30px; }.login-form-card { padding:27px; }
  .owner-calendar-layout { grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr); gap:20px; }
  .owner-month { padding:18px; }.owner-day { min-height:93px; padding:8px 5px; }.owner-day-count { font-size:.8rem; }
  .owner-month .calendar-nav h2 { font-size:1.45rem; }.owner-month .calendar-nav>.btn { flex-basis:100%; }
  .portal-tab-row { flex-wrap:wrap; }
}
@media(max-width:850px) {
  .portal-login { grid-template-columns:1fr 1fr; gap:24px; }.login-story h1 { font-size:2.65rem; }
  .login-role-links { gap:16px; }.login-story .lead { font-size:1rem; }
  .session-inner { padding:12px 23px; gap:9px; }.session-inner>div { gap:16px; }
  .owner-calendar-layout { grid-template-columns:1fr; }.owner-month .calendar-nav>.btn { flex-basis:auto; }
  .owner-day { min-height:103px; padding:10px; }.owner-day-count { font-size:.875rem; }
  .client-booking-layout { grid-template-columns:1fr; }.client-help { display:none; }
  .portal-metrics { grid-template-columns:1.2fr 1fr 1fr; gap:12px; }.portal-metrics>div { padding:17px; }
  .portal-metrics strong { font-size:1.65rem; }
  .portal-top { align-items:flex-start; flex-wrap:wrap; }
}
@media(max-width:600px) {
  .portal-login { grid-template-columns:1fr; padding-top:26px; }.login-story { padding:28px; border-radius:20px 50px 20px 20px; }
  .login-story h1 { font-size:2.6rem; }.login-example { display:none; }.login-story .lead { margin-top:17px; }
  .login-form-card { max-width:none; }.login-form-card h2 { font-size:2rem; }
  .session-inner>span { font-size:.8rem; }.session-inner>div { gap:19px; }
  .portal-metrics { grid-template-columns:1fr 1fr; gap:12px; }.portal-metrics>div:first-child { grid-column:1/-1; }
  .portal-metrics>div:first-child strong { font-size:1.75rem; }.portal-metrics { margin-bottom:24px; }
  .portal-tab-row { align-items:stretch; gap:17px; }.portal-tab-row .desk-tabs { gap:7px; }
  .portal-tab-row .desk-tab { padding:9px 12px; font-size:.875rem; }.pup-filter { width:100%; }
  .history-card { grid-template-columns:80px minmax(0,1fr); gap:16px; padding:20px; }
  .history-card .pill { font-size:.75rem; }.history-card h3 { font-size:1.15rem; }.history-photo img { height:96px; }
  .history-initial { min-height:100px; }.history-card .history-note { grid-column:1/-1; font-size:.95rem; }
  .history-card .button-row { gap:8px; }.history-card .btn-small { font-size:.8rem; padding:8px 11px; }
  .owner-tabs { gap:8px; }.owner-tabs .desk-tab { padding:9px 12px; font-size:.875rem; }
  .owner-month { padding:16px 12px; }.owner-month .calendar-nav { margin-bottom:14px; }
  .owner-month .calendar-nav h2 { font-size:1.4rem; }.owner-month .calendar-nav>.btn { flex-basis:100%; }
  .owner-grid { gap:4px; }.owner-grid .weekday { font-size:.8rem; }.owner-day { min-height:91px; padding:8px 4px; }
  .owner-day-count { font-size:.75rem; white-space:normal; line-height:1.3; }.owner-day-number { font-size:.875rem; }
  .owner-legend { font-size:.8rem; gap:10px 14px; }.owner-agenda { padding:23px; }
  .client-booking-layout .appointment-row .actions { margin-left:0; }.portal-disclaimer { font-size:.8rem; }
}
