/* Fresha Editorial — separate role-scoped customer & partner portal UI v1.3.0 */
body.fep-portal-page,body.fep-portal-page *{box-sizing:border-box}
body.fep-portal-page{--ink:#171717;--muted:#747474;--rule:#e8e8e8;--paper:#fff;--surface:#f8f8f8;margin:0;background:var(--paper)!important;color:var(--ink);font-family:Manrope,Arial,sans-serif!important;font-weight:400;font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}
.fep-portal-page h1,.fep-portal-page h2,.fep-portal-page h3,.fep-portal-page p,.fep-portal-page label,.fep-portal-page input,.fep-portal-page textarea,.fep-portal-page button,.fep-portal-page select,.fep-portal-page a,.fep-portal-page strong,.fep-portal-page small{font-family:Manrope,Arial,sans-serif!important}
.fep-portal-page a{text-decoration:none;color:inherit}.fep-portal-page button,.fep-portal-page input,.fep-portal-page select,.fep-portal-page textarea{font:inherit}.fep-portal-page button{cursor:pointer}.fep-portal-page :focus-visible{outline:2px solid #343434;outline-offset:3px}
.fep-portal-page h1,.fep-portal-page h2,.fep-portal-page h3{letter-spacing:-.045em;font-weight:600;line-height:1.23}.fep-portal-page h1 em,.fep-portal-page h2 em{font-style:normal;font-weight:300}
.portal-logo,.portal-side-brand{display:inline-flex;align-items:center;gap:10px;font-size:27px;letter-spacing:-.075em;font-weight:800;white-space:nowrap}.portal-logo img,.portal-side-brand img{max-height:45px;width:auto}.portal-brand-type{font-size:27px;font-weight:800;letter-spacing:-.085em;color:#0f0f0f}
.portal-auth-top{height:88px;border-bottom:1px solid var(--rule);padding:0 max(32px,calc((100vw - 1360px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff}.portal-auth-top nav{display:flex;align-items:center;gap:35px;color:#454545;font-size:12px;font-weight:600}.portal-auth-top nav a:hover{text-decoration:underline;text-underline-offset:5px}
.portal-auth-shell{min-height:calc(100vh - 88px);display:grid;grid-template-columns:minmax(0,1fr) minmax(410px,46%);background:#fff}.portal-auth-main{min-width:0;display:flex;flex-direction:column;justify-content:space-between}.portal-auth-content{width:min(100%,460px);margin:auto;padding:60px 25px}.portal-overline{font-size:10px;font-weight:800;letter-spacing:.19em;color:#777;text-transform:uppercase}.portal-auth-content h1{font-size:clamp(36px,4vw,53px);line-height:1.11;margin:18px 0 18px;letter-spacing:-.065em}.portal-lead{font-size:14px;color:#606060;margin:0 0 38px;line-height:1.8;max-width:440px}
.portal-form{display:grid;gap:19px}.portal-form>label,.portal-form .portal-two-input label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650;color:#282828;line-height:1.5}.portal-form input:not([type=checkbox]),.portal-form textarea,.portal-form select{appearance:auto;display:block;border:1px solid #dedede;border-radius:5px;background:white;color:#171717;width:100%;padding:14px 15px;font-size:13px;font-weight:450;outline:0;transition:border-color .15s;box-shadow:none}.portal-form input:not([type=checkbox]):focus,.portal-form textarea:focus,.portal-form select:focus{border-color:#1c1c1c}.portal-form input::placeholder{color:#a5a5a5}.portal-form textarea{resize:vertical}.portal-input-wrap{position:relative;display:block}.portal-input-wrap input{padding-right:75px!important}.portal-password-toggle{position:absolute;right:9px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:#303030;padding:7px;font-size:12px;font-weight:700}.portal-form-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}.portal-form-row>a{font-weight:700;text-decoration:underline;text-underline-offset:3px}.portal-checkbox{font-size:11px!important;display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;color:#555!important;font-weight:500!important;line-height:1.6}.portal-checkbox input{accent-color:#151515;width:16px;height:16px;margin:2px 0 0;flex-shrink:0}
.portal-primary{border:1px solid #171717;background:#171717;color:white!important;border-radius:4px;min-height:51px;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:12px;font-weight:800;letter-spacing:.018em;transition:background .15s}.portal-primary:hover{background:#383838}.portal-primary>span{font-size:19px;font-weight:400}.portal-primary.portal-inline{display:inline-flex;width:auto;gap:35px;margin-top:16px}.portal-auth-alternate{margin-top:26px;padding-top:21px;border-top:1px solid var(--rule);font-size:12px;color:#888}.portal-auth-alternate a{font-weight:800;color:#171717;margin-left:5px}.portal-helper{color:#808080;font-size:11px;line-height:1.75;margin:4px 0}.portal-auth-foot{padding:24px 45px;color:#888;font-size:10px;display:flex;gap:15px;justify-content:space-between;border-top:1px solid #f3f3f3}.portal-auth-photo{height:calc(100vh - 88px);min-height:760px;position:sticky;top:0;overflow:hidden;background:#d0d0d0}.portal-auth-photo:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(0deg,rgba(0,0,0,.58),transparent);pointer-events:none}.portal-auth-photo>img{width:100%;height:100%;object-fit:cover;display:block}.portal-photo-caption{z-index:1;position:absolute;bottom:64px;left:65px;right:60px;color:#fff;display:grid;gap:16px}.portal-photo-caption span{letter-spacing:.2em;font-size:10px;font-weight:700}.portal-photo-caption strong{font-size:clamp(24px,2.5vw,38px);letter-spacing:-.055em;font-weight:500;line-height:1.3}.portal-photo-caption small{opacity:.75;font-size:10px}
.portal-message{border:1px solid #e5e5e5;background:#fafafa;border-radius:6px;padding:15px 18px;margin:0 0 18px;font-size:12px;color:#373737;line-height:1.7}.portal-message.error{background:#fff6f5;border-color:#eccac7;color:#9d2924}.portal-message.success{background:#f4faf5;border-color:#d6e7d8;color:#285b33}.portal-message.pending{background:#fffdf6;border-color:#ece3c9}
.portal-app{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh;background:#fff}.portal-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:34px 21px 22px;border-right:1px solid #e9e9e9;background:#fff;z-index:20}.portal-side-brand{padding:0 13px 29px;font-size:22px}.portal-side-brand img{max-width:175px;max-height:43px}.portal-side-title{color:#777;letter-spacing:.16em;font-size:9px;font-weight:800;padding:0 13px 28px}.portal-side-identity{display:flex;align-items:center;gap:10px;margin:0 5px;padding:17px 9px;border:1px solid #ededed;border-radius:7px}.portal-avatar,.portal-top-circle{width:38px;height:38px;border-radius:50%;background:#222;color:white;display:grid;place-items:center;font-size:16px;font-weight:700;flex-shrink:0}.portal-side-identity strong{display:block;font-size:12px;line-height:1.25;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:135px}.portal-side-identity small{color:#888;display:block;font-size:10px;margin-top:3px}.portal-side-divider{height:1px;background:#f1f1f1;margin:24px 11px}.portal-nav-label{font-size:10px;letter-spacing:.16em;color:#8a8a8a;padding:0 14px;margin-bottom:15px;font-weight:700}.portal-side-nav{display:grid;gap:5px}.portal-side-nav a{display:flex;align-items:center;gap:12px;border-radius:6px;min-height:47px;padding:0 14px;color:#5d5d5d;font-size:12px;font-weight:650;transition:.15s}.portal-side-nav a:hover{background:#f6f6f6;color:#000}.portal-side-nav a.active{background:#161616;color:#fff}.portal-nav-icon{font-size:18px;width:21px;text-align:center;font-family:Arial,sans-serif}.portal-nav-arrow{margin-left:auto;font-size:20px;font-weight:300;opacity:.5}.portal-side-bottom{margin-top:auto;border-top:1px solid #eee;padding:15px 12px 0;display:grid;gap:12px}.portal-side-bottom a{font-size:12px;color:#555}.portal-side-bottom a:hover{color:#000;text-decoration:underline}.portal-side-bottom p{margin:14px 0 0;color:#aaa;font-size:10px}
.portal-body{min-width:0;display:flex;flex-direction:column}.portal-topbar{height:75px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 clamp(25px,4.4vw,70px);border-bottom:1px solid #ededed}.portal-top-context{color:#343434;font-size:10px;font-weight:800;letter-spacing:.14em}.portal-top-context span{color:#aaa;margin:0 8px}.portal-top-actions{display:flex;align-items:center;gap:29px;font-size:11px;font-weight:700}.portal-top-circle{height:31px;width:31px;font-size:13px}.portal-main{padding:46px clamp(25px,4.4vw,70px) 25px;max-width:1680px;width:100%;margin:0 auto;flex:1}.portal-content-header{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:33px}.portal-content-header h1{font-size:clamp(30px,3.2vw,44px);margin:9px 0 10px;letter-spacing:-.055em}.portal-content-header p:not(.portal-overline){font-size:12px;color:#777;margin:0}.portal-current-date{color:#999;font-size:11px;margin-bottom:6px}.portal-content-header .portal-overline{margin:0}.portal-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:21px}.portal-stats article{min-width:0;border:1px solid #ebebeb;padding:22px 23px 20px;background:#fff;display:flex;flex-direction:column;gap:7px}.portal-stats article>span{font-size:10px;letter-spacing:.1em;font-weight:800;color:#777}.portal-stats article>strong{font-size:31px;font-weight:550;line-height:1.25;letter-spacing:-.055em;word-break:break-word}.portal-stats article>strong.portal-money{font-size:clamp(18px,1.55vw,23px)}.portal-stats article>small{font-size:10px;color:#999}.portal-customer-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.portal-columns{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,.85fr);gap:20px;align-items:start}.portal-columns.portal-management{grid-template-columns:minmax(0,1fr) minmax(310px,.8fr)}.portal-card{min-width:0;border:1px solid #e9e9e9;background:#fff;padding:25px;margin-bottom:20px}.portal-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.portal-card-head span{font-size:10px;letter-spacing:.14em;color:#888;font-weight:800}.portal-card-head h2{font-size:20px;margin:6px 0 0;font-weight:650}.portal-card-head>a{font-size:11px;font-weight:750;white-space:nowrap}.portal-card-head small{font-size:10px;color:#888}.portal-venue-photo{display:block;width:100%;aspect-ratio:1.65;object-fit:cover;background:#f4f4f4;margin:0 0 17px}.portal-side-feature h3{font-size:17px;margin:12px 0 7px}.portal-side-feature p{font-size:12px;color:#777}.portal-venue-foot{border-top:1px solid #eee;padding-top:14px;margin-top:19px;display:flex;justify-content:space-between;font-size:11px;font-weight:700}.portal-venue-foot>span{color:#717171}.portal-table-scroll{width:100%;overflow-x:auto}.portal-table{border-collapse:collapse;width:100%;min-width:640px;text-align:left}.portal-table thead tr{border-bottom:1px solid #ddd}.portal-table th{color:#777;font-size:10px;letter-spacing:.05em;font-weight:750;padding:0 13px 13px 0;white-space:nowrap}.portal-table td{border-bottom:1px solid #f0f0f0;vertical-align:middle;padding:17px 13px 17px 0;font-size:11px;color:#4d4d4d;line-height:1.6}.portal-table td strong{display:block;color:#252525;font-weight:700;font-size:11px;white-space:nowrap}.portal-table td small{display:block;color:#929292;font-size:10px}.portal-table tr:last-child td{border-bottom:0}.portal-status{display:inline-block;font-size:10px;white-space:nowrap;border-radius:3px;padding:5px 8px;background:#f3f4f3;color:#444;font-weight:750}.portal-status.status-confirmed{background:#edf5f0;color:#38634a}.portal-status.status-completed{background:#edf0f4;color:#385a76}.portal-status.status-cancelled{background:#fcf0ee;color:#9f5143}.portal-status.status-no_show{background:#fff4e1;color:#9c711f}.portal-table-empty{text-align:center;padding:50px 20px;color:#777;font-size:12px}.portal-table-empty strong{color:#222;font-weight:650}.portal-table-empty a{font-weight:700;color:#171717;text-decoration:underline}.portal-table-empty p{margin:8px 0 0}.portal-inline-form{display:flex;align-items:center;gap:6px}.portal-inline-form select{border:1px solid #ddd;border-radius:3px;background:white;padding:6px;min-width:84px;color:#333;font-size:10px}.portal-inline-form button,.portal-danger,.portal-favorite button{border:0;background:transparent;text-decoration:underline;padding:7px 0;color:#303030;font-size:10px;font-weight:750;white-space:nowrap}.portal-danger{color:#aa3333}.portal-list-row{display:flex;gap:11px;align-items:center;border-top:1px solid #f0f0f0;padding:15px 0}.portal-list-initial{height:38px;width:38px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#eee;color:#333;font-size:16px}.portal-list-main{flex:1;min-width:0}.portal-list-main strong{display:block;font-size:12px}.portal-list-main small{font-size:10px;color:#888;display:block}.portal-edit-link{font-size:11px;font-weight:750;text-decoration:underline!important}.portal-two-input{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portal-day-list{display:flex;flex-wrap:wrap;gap:8px}.portal-day-list label{display:flex;gap:3px;align-items:center;font-size:10px;padding:8px 9px;border:1px solid #e4e4e4}.portal-day-list input{accent-color:#171717}.portal-body-copy{font-size:12px;line-height:1.9;color:#777}.portal-steps{counter-reset:step;list-style:none;padding:0;margin:22px 0}.portal-steps li{padding:14px 0;border-bottom:1px solid #eee;font-size:12px;display:flex;gap:15px}.portal-steps li:before{counter-increment:step;content:'0' counter(step);font-weight:800;color:#777}.portal-report-list>div{border-bottom:1px solid #eee;padding:12px 0;display:flex;justify-content:space-between;gap:12px;font-size:11px}.portal-report-list strong{white-space:nowrap}.portal-customer-promo{background:#f8f8f8;display:flex;flex-direction:column;align-items:flex-start;padding:35px}.portal-customer-promo h2{font-size:27px;margin:18px 0 8px}.portal-customer-promo p{font-size:12px;color:#777;line-height:1.8}.portal-profile{max-width:680px}.portal-favorites{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.portal-favorite{min-width:0}.portal-favorite img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;background:#eee}.portal-favorite h3{font-size:14px;margin:13px 0 3px}.portal-favorite p{margin:0;color:#888;font-size:10px}.portal-content-footer{border-top:1px solid #ededed;color:#999;font-size:10px;margin-top:50px;padding:20px 0 0;display:flex;justify-content:space-between;gap:20px}.portal-empty{border:1px solid #e6e6e6;padding:50px 45px;margin:10px 0 35px;max-width:720px}.portal-empty>span{font-size:10px;letter-spacing:.12em;color:#888}.portal-empty h2{font-size:29px;margin:13px 0}.portal-empty p{font-size:12px;color:#777;line-height:1.8;max-width:520px}
.portal-menu-toggle{display:none;border:0;background:transparent;font-size:21px;padding:8px 10px}.portal-mobile-overlay{display:none}
@media(max-width:1200px){.portal-columns{grid-template-columns:minmax(0,1.4fr) minmax(260px,.9fr)}.portal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-main{padding:35px 28px}.portal-topbar{padding:0 28px}.portal-card{padding:21px}}
@media(max-width:980px){.portal-app{grid-template-columns:1fr}.portal-sidebar{position:fixed;left:0;top:0;height:100dvh;width:280px;transform:translateX(-102%);transition:transform .2s;box-shadow:0 10px 40px rgba(0,0,0,.05)}.portal-mobile-open .portal-sidebar{transform:translateX(0)}.portal-mobile-open .portal-mobile-overlay{display:block;position:fixed;inset:0;z-index:19;background:rgba(0,0,0,.4)}.portal-menu-toggle{display:block}.portal-topbar{height:65px}.portal-top-actions{gap:15px}.portal-auth-shell{grid-template-columns:1fr 38%}.portal-auth-photo{min-height:680px}}
@media(max-width:740px){.portal-auth-shell{display:block;min-height:calc(100vh - 76px)}.portal-auth-top{height:76px;padding:0 20px}.portal-auth-top nav{gap:14px;font-size:10px}.portal-auth-top nav a:first-child{display:none}.portal-auth-photo{display:none}.portal-auth-main{min-height:calc(100dvh - 76px)}.portal-auth-content{padding:45px 24px;margin:0 auto}.portal-auth-content h1{font-size:38px}.portal-auth-foot{padding:22px 24px;flex-wrap:wrap}.portal-columns,.portal-columns.portal-management{grid-template-columns:1fr}.portal-favorites{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-current-date{display:none}.portal-top-context{font-size:9px}.portal-top-actions>a{display:none}.portal-main{padding:30px 17px 18px}.portal-topbar{padding:0 17px}.portal-content-header{margin-bottom:25px}.portal-content-header h1{font-size:32px}.portal-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.portal-customer-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-stats article{padding:16px 15px}.portal-stats article>strong{font-size:24px}.portal-stats article>strong.portal-money{font-size:18px}.portal-card{padding:19px}.portal-card-head{gap:12px}.portal-content-footer{flex-direction:column;gap:5px}.portal-two-input{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.portal-two-input{grid-template-columns:1fr}.portal-favorites{grid-template-columns:1fr}.portal-stats{grid-template-columns:1fr 1fr}.portal-top-context{letter-spacing:.07em}}
/* On narrow screens bookings become readable cards, not a clipped wide table. */
@media(max-width:740px){
 .portal-table{min-width:0;display:block}
 .portal-table thead{display:none}
 .portal-table tbody{display:grid;gap:12px}
 .portal-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 14px;border:1px solid #efefef;padding:13px 14px}
 .portal-table td{display:block;border:0!important;min-width:0;overflow-wrap:anywhere;padding:5px 0;font-size:11px}
 .portal-table td:nth-child(1){grid-column:1 / -1;border-bottom:1px solid #eee!important;padding-bottom:12px;margin-bottom:5px}
 .portal-table td:nth-child(2){grid-column:1 / -1}
 .portal-table td:nth-child(3){grid-column:1 / -1;color:#444}
 .portal-table td:nth-child(4),.portal-table td:nth-child(5){align-self:center}
 .portal-table td:nth-child(6){grid-column:1 / -1;padding-top:12px;border-top:1px solid #eee!important}
}
