.portal{max-width:1400px;margin:auto;padding:55px 5vw 90px;font-size:16px}.portal h1{font-size:clamp(2rem,5vw,4rem);margin:16px 0}.portal h2{font-size:1.7rem;line-height:1.2;margin:0 0 18px}.portal h3{font-size:1.2rem}.portal p{line-height:1.6}.portal-top,.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.portal-card{background:#181615;border:1px solid #403a33;padding:28px;margin:24px 0}.portal-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.portal-columns .portal-card{margin:0}.portal-form{display:grid;gap:18px}.portal-form label{display:grid;gap:8px}.portal-form input:not([type=checkbox]),.portal-form select,.portal-form textarea{padding:12px;background:#24201d;color:#fff;border:1px solid #645649;border-radius:3px;width:100%;box-sizing:border-box;font:inherit;color-scheme:dark}.portal button{background:#d5baa0;color:#17120e;padding:10px 17px;border:0;border-radius:3px;font:inherit;cursor:pointer}.portal button:disabled{opacity:.5;cursor:wait}.portal .portal-check{display:flex;gap:10px;align-items:center}.portal-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px}.calendar-grid,.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-week{text-align:center;margin:18px 0 8px}.calendar-grid>div{min-height:85px;background:#24201d;padding:8px;overflow-wrap:anywhere}.calendar-grid>div.empty{background:transparent}.calendar-grid .calendar-item{display:block;font-size:14px;background:#554536;border-radius:3px;padding:4px;margin-top:5px}.calendar-grid .today{outline:1px solid #d5baa0}.calendar-heading>div{display:flex;align-items:center;gap:15px}.session-item,.delivery-item,.client-item{padding:18px 0;border-bottom:1px solid #403a33;overflow-wrap:anywhere}.session-item button,.delivery-item button{margin:8px 10px 0 0}.session-item p,.delivery-item p{margin:8px 0;white-space:pre-wrap}.portal-muted{color:#c6b9aa}.status-tag{font-size:14px;display:inline-block;padding:4px 9px;border:1px solid #7c6651;border-radius:20px}.portal [hidden]{display:none!important}@media(max-width:800px){.portal-columns{grid-template-columns:1fr}.portal-card{padding:18px}.calendar-grid>div{min-height:65px;padding:4px}.calendar-grid .calendar-item{font-size:12px;padding:3px}.portal-pair{grid-template-columns:1fr}.portal{padding:30px 4vw}.calendar-week{font-size:14px}}

.private-photo-gallery{margin:55px 0;padding:35px 0;border-top:1px solid #493d32;border-bottom:1px solid #493d32}.private-gallery-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:20px 0 0}.private-gallery-heading h2{font-size:clamp(2rem,4vw,3.4rem);font-weight:400}.private-gallery-heading p{color:#d5baa0}#client-photo-grid{columns:3;column-gap:18px;margin-top:30px}.client-photo{margin:0 0 22px;break-inside:avoid}.portal .client-photo-open{position:relative;display:block;width:100%;padding:0;border:0;background:#0e0d0c;overflow:hidden;border-radius:0;cursor:zoom-in}.client-photo-open img{display:block;width:100%;height:auto;transition:transform .4s}.client-photo-open:hover img{transform:scale(1.025)}.client-photo-hint{position:absolute;left:14px;bottom:14px;background:#080808b3;color:#fff;padding:8px 12px;font-size:14px;opacity:0;transition:opacity .2s}.client-photo-open:hover .client-photo-hint,.client-photo-open:focus-visible .client-photo-hint{opacity:1}.client-photo figcaption{display:flex;justify-content:space-between;gap:12px;padding:12px 0;font-size:14px;line-height:1.5}.client-photo figcaption span{overflow-wrap:anywhere;color:#c6b9aa}.client-photo figcaption a{flex-shrink:0}.gallery-empty{padding:45px 20px;text-align:center;border:1px solid #403a33;font-style:italic;color:#c6b9aa;margin-top:25px}#client-gallery-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:18px;box-sizing:border-box;background:#0b0a09;color:#eee6dd;border:0}#client-gallery-viewer::backdrop{background:#000e}.gallery-viewer-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;height:45px}.gallery-viewer-toolbar button,.gallery-viewer-stage>button{padding:10px 16px;background:transparent;border:1px solid #6d5e4e;color:#fff;cursor:pointer;font:inherit}.gallery-viewer-stage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:20px;align-items:center;height:calc(100% - 60px)}.gallery-viewer-stage figure{margin:0;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;min-height:0}.gallery-viewer-stage img{max-width:100%;max-height:calc(100% - 70px);object-fit:contain}.gallery-viewer-stage figcaption{padding:20px 0;text-align:center;font-size:14px;overflow-wrap:anywhere}.gallery-viewer-stage>button{font-size:30px;padding:4px}#gallery-photo-error{color:#dbc4af}button:focus-visible,a:focus-visible{outline:2px solid #d5baa0;outline-offset:4px}@media(max-width:900px){#client-photo-grid{columns:2}}@media(max-width:550px){#client-photo-grid{columns:1}.gallery-viewer-stage{grid-template-columns:30px minmax(0,1fr) 30px;gap:6px}#client-gallery-viewer{padding:12px}.private-photo-gallery{margin:30px 0}.client-photo-hint{opacity:1}}
@media(prefers-reduced-motion:reduce){.client-photo-open img,.client-photo-hint{transition:none}}
#client-gallery-viewer[open]{display:block}#client-gallery-viewer button{position:static;z-index:auto}#client-gallery-viewer figure{width:100%}#client-gallery-viewer figcaption{margin-top:0}

.client-auth-actions{display:flex;gap:16px;flex-wrap:wrap;margin:28px 0}.client-auth-actions a{display:inline-block;padding:14px 25px;border-radius:3px;font-weight:600;border:1px solid #d5baa0}.client-auth-primary{background:#d5baa0;color:#17120e}.client-auth-secondary{background:transparent;color:#eee6dd}.client-auth-actions a:hover{filter:brightness(1.15)}#client-auth-choice{max-width:850px;padding:clamp(24px,5vw,55px)}#client-auth-choice h2{font-size:clamp(1.8rem,4vw,3rem);line-height:1.15}@media(max-width:480px){.client-auth-actions{flex-direction:column}.client-auth-actions a{text-align:center}}

.discussion-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem;flex-wrap:wrap}.discussion-heading h2{margin-top:0}.discussion-card select{display:block;width:100%;margin:.75rem 0 1.25rem;padding:.85rem;background:#211d1a;color:#fff;border:1px solid #655448;font:inherit}.discussion-history{max-height:480px;overflow-y:auto;padding:1rem 0;display:flex;flex-direction:column;gap:1rem}.discussion-message{width:90%;max-width:760px;padding:1rem 1.25rem;background:#24201d;border:1px solid #54483e;border-radius:12px}.discussion-message.from-me{align-self:flex-end;background:#30261f;border-color:#8b7054}.discussion-meta{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;font-size:.875rem}.discussion-meta time{color:#c6b9ac}.discussion-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:.7rem 0 0;line-height:1.6;font-size:1rem}.discussion-card textarea{width:100%;box-sizing:border-box}.discussion-card button{min-height:44px}.client-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.client-item p{overflow-wrap:anywhere}.discussion-history:focus-visible{outline:2px solid #bca082;outline-offset:4px}@media(max-width:600px){.discussion-message{width:100%;box-sizing:border-box}.discussion-heading button{width:100%}.discussion-meta{flex-direction:column;gap:.2rem}}

#gallery-client{display:block;width:100%;max-width:650px;background:#24201d;color:#fff;border:1px solid #645649;padding:12px;margin:10px 0 20px;font:inherit}.client-photo figcaption{flex-wrap:wrap;align-items:center}.portal .client-photo figcaption button{padding:6px 10px;font-size:14px}.client-photo figcaption span{flex:1 1 160px}
