/* Shared DEstilo identity: customer, team, authentication and legacy calendar. */
:root{color-scheme:light;--bg:#fff8fb;--paper:#fff;--ink:#382832;--muted:#78616e;--line:#f0dbe5;--green:#9d3d65;--light:#fff0f6;--pink:#f8c6dc;--rose:#fff0f5;--amber:#fff5e5;--red:#a03b50;--olive:#9d3d65;--radius:24px}
body.portal-view,body.legacy-view{background-color:var(--bg);background-image:radial-gradient(ellipse at 0% 15%,#ffdfec70,transparent 42%),radial-gradient(ellipse at 100% 85%,#fbe7f460,transparent 40%);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
.portal-view button,.portal-view a,.legacy-view button,.legacy-view a{-webkit-tap-highlight-color:transparent}
.portal-view a,.legacy-view a{color:var(--green)}
.portal-view em,.legacy-view em{color:var(--green);font-weight:400}
.portal-view h1,.legacy-view h1{color:var(--ink);font-weight:400;letter-spacing:-1.2px}
.portal-view h2,.legacy-view h2{color:#583544;letter-spacing:-.5px}
.portal-view h3,.legacy-view h3{color:#503541}
.portal-view .brand,.legacy-view .brand{display:inline-flex;flex-direction:column;align-items:center;text-decoration:none;letter-spacing:0;max-width:100%;line-height:1}
.brand .brand-logo{display:block;width:190px;max-width:100%;height:auto;mix-blend-mode:multiply}
.brand .brand-caption{display:block;background:none;border-radius:0;width:auto;height:auto;font:8px/1.6 Arial,Helvetica,sans-serif;letter-spacing:1.5px;color:#8a6879;text-transform:uppercase;margin:1px 0 0;white-space:nowrap;vertical-align:initial}
.portal-view .sidebar{background:#fffafd;border-right:1px solid #efdce6;padding:24px 18px}
.portal-view .sidebar .brand{margin:0 auto 30px}
.portal-view .sidebar .brand-logo{width:174px}
.portal-view .sidebar .brand-caption{font-size:7px;letter-spacing:1.1px}
.portal-view .nav{gap:9px}
.portal-view .nav button{border:1px solid transparent;border-radius:13px;padding:14px 15px;font-size:13px;color:#806171}
.portal-view .nav button:hover{background:#fff1f7;color:#9d3d65}
.portal-view .nav button.active{background:#fce4ee;color:#91385e;border-color:#efc7d9;font-weight:600}
.portal-view .sidebar-foot{background:#fff1f7;border:1px solid #f1d5e3;border-radius:18px;color:#7d5067;padding:19px 17px}
.portal-view .sidebar-foot>.icon{stroke:#bd7394}
.portal-view .sidebar-foot p{font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.5;margin:10px 0}
.portal-view .sidebar-foot small{font-size:10px;color:#8a6979}
.portal-view .topbar{background:#fffafdcc;border-color:#f1dfe7;height:82px}
.portal-view .topbar>.eyebrow{font-size:9px;font-weight:500;letter-spacing:2.3px;color:#9a6b80;margin:0}
.portal-view .profile{gap:10px}
.portal-view .profile strong{font-size:12px;font-weight:600}
.portal-view .profile small{color:#927080;margin-top:3px}
.portal-view .avatar{background:#fce0ec;color:#963e63;border:1px solid #eec1d5}
.portal-view .content{max-width:1260px;padding-top:34px}
.portal-view .hero{padding:4px 0 4px}
.portal-view .hero h1{font-size:41px;line-height:1.16;margin:0 0 13px}
.portal-view .hero>.hero-flourish{color:#dd8aae;font:42px/1 Georgia,serif;margin-right:16px;flex:none}
.portal-view .hero .eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:#a06982}
.portal-view .hero p{font-size:13px;line-height:1.8}
.portal-view .card,.portal-view .entry-card,.legacy-view .card,.legacy-view .entry-card{border-color:#efd8e4;background:#fff;box-shadow:0 8px 30px #a65a7a06;border-radius:23px}
.portal-view .card-head h2{font-size:25px}
.portal-view .card-head>.icon{color:#c17b9a}
.portal-view .stat{border-color:#eed5e1;border-radius:20px;background:#fff;padding:21px 19px}
.portal-view .stat .label{font-size:11px;color:#876171;align-items:center}
.portal-view .stat .label .icon{color:#bc7697;width:18px;height:18px}
.portal-view .stat strong{color:#7e3d59;font-size:31px;line-height:1.25}
.portal-view .stat small{font-size:10px;color:#856878}
.portal-view .stat.highlight{background:#fce4ef;border-color:#eec3d7;color:#753451}
.portal-view .stat.highlight strong{color:#853054}
.portal-view .stat.highlight .label,.portal-view .stat.highlight small{color:#82556c}
.portal-view .primary,.legacy-view .primary{background:#9d3d65;color:#fff;border:1px solid #9d3d65;border-radius:12px;font-size:13px;font-weight:600}
.portal-view .primary:hover,.legacy-view .primary:hover{background:#843052;border-color:#843052}
.portal-view .secondary{background:#fff;color:#98496c;border:1px solid #e8c5d5;border-radius:12px;font-size:12px}
.portal-view .secondary:hover{background:#fff1f7;border-color:#ce8dab}
.portal-view .quiet{color:#95617a;font-size:12px}
.portal-view .quiet:hover{background:#fff0f6}
.portal-view .danger{background:#fff0f2;color:#9d354c;border-color:#ecc0ca;border-radius:12px}
.portal-view button:focus-visible,.portal-view a:focus-visible,.portal-view input:focus-visible,.portal-view textarea:focus-visible,.legacy-view button:focus-visible,.legacy-view a:focus-visible,.legacy-view input:focus-visible{outline:3px solid #b54e7c;outline-offset:3px}
.portal-view .calendar-head{padding-bottom:13px;border-bottom:1px solid #f5e4ec}
.portal-view .calendar-head strong{font:20px/1.2 Georgia,'Times New Roman',serif;color:#724257}
.portal-view .calendar-controls .quiet{border:1px solid #f0d9e4;border-radius:50%;width:34px;height:34px;min-width:34px;min-height:34px;padding:7px}
.portal-view .week{color:#9c7689;font-size:10px}
.portal-view .day{background:#fff0f6;border:1px solid #f4d6e4;color:#8e4265;min-height:62px;border-radius:13px}
.portal-view .day:hover:not(:disabled){background:#fce1ed;border-color:#ca85a5}
.portal-view .day:disabled{background:#f8f5f7;border-color:#f0e9ed;color:#a3929b}
.portal-view .day.busy:disabled{background:#efe7ee;border-color:#e1d3dd;color:#78616f}
.portal-view .day.selected{background:#9d3d65;border-color:#9d3d65;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 3px #cd8baa}
.portal-view .day small{font-size:8px}
.portal-view .dot{background:#d78aac}
.portal-view .dot.busy{background:#a68a9a}
.portal-view .dot.gray{background:#c9bfc5}
.portal-view .connection{color:#927584;font-size:10px;line-height:1.7}
.portal-view .selected-date{color:#9d3d65;font-size:29px}
.portal-view .steps{gap:19px}
.portal-view .steps li{font-size:12px;line-height:1.8}
.portal-view .steps li:before{background:#fce3ef;border:1px solid #edc7d9;color:#934365}
.portal-view .booking{border-color:#efdae4;border-radius:17px;padding:20px;background:#fff}
.portal-view .booking h3{font-size:15px}
.portal-view .booking p{font-size:12px;line-height:1.8;color:#836472}
.portal-view .booking p .icon{width:15px;height:15px;vertical-align:-3px;margin-right:3px;color:#b97594}
.portal-view .booking .actions{gap:10px;margin-top:15px}
.portal-view .booking .actions small{color:#926b7e;font-size:10px}
.portal-view .badge{background:#fff4e4;color:#86613a;border:1px solid #efdfc4;border-radius:99px;font-size:9px;padding:5px 10px}
.portal-view .badge.confirmed,.portal-view .badge.paid{background:#fce5ef;color:#873657;border-color:#efc9da}
.portal-view .badge.rejected,.portal-view .badge.expired{background:#f3edf1;color:#755966;border-color:#e3d3dc}
.portal-view .badge.visit_approved{background:#f7edf8;border-color:#e8d0eb;color:#815a88}
.portal-view .chip{border-color:#ebd2de;border-radius:12px;color:#8c6075;background:#fff;font-size:12px}
.portal-view .chip.active,.portal-view .chip[aria-pressed=true]{background:#9d3d65;color:#fff;border-color:#9d3d65}
.portal-view .chip:not(.active):hover{border-color:#c483a2}
.portal-view .filters{gap:9px}
.portal-view .notice{background:#fff6e9;border:1px solid #f0dfc7;color:#876342;border-radius:13px;font-size:12px;line-height:1.75}
.portal-view .notice.good{background:#fff0f6;border-color:#f0d0e0;color:#85506a}
.portal-view .notice.error{background:#fff0f2;border-color:#ecc5ce;color:#963b50}
.portal-view .amounts{background:#fff1f7;border:1px solid #f0ccdf;border-radius:15px;padding:18px;gap:25px}
.portal-view .amounts>div{flex:1;min-width:0}
.portal-view .amounts small{font-size:10px;color:#92627a;line-height:1.6}
.portal-view .amounts strong{font-size:21px;font-family:Georgia,serif;font-weight:400;color:#8b365c;overflow-wrap:anywhere}
.portal-view .amounts>div+div{border-left:1px dashed #ddb1c7;padding-left:22px}
.portal-view .field label{color:#63404f;font-size:12px;font-weight:600}
.portal-view input:not([type=checkbox]),.portal-view textarea,.legacy-view .entry-card input{border:1px solid #e5cbd8;background:#fffcfe;color:#503541;border-radius:11px;min-height:48px;padding:13px}
.portal-view input::placeholder,.portal-view textarea::placeholder{color:#aa8e9d}
.portal-view input[type=file]{font-size:12px;padding:9px;line-height:1.6}
.portal-view input[type=file]::file-selector-button{border:0;border-radius:7px;padding:8px 10px;margin-right:9px;background:#fbe2ed;color:#8c4666;font:12px Arial,sans-serif}
.portal-view .check{font-size:12px;line-height:1.8;color:#745566}
.portal-view .check input{accent-color:#9d3d65}
.portal-view .field small,.portal-view .hint{color:#886b79;font-size:11px;line-height:1.8}
.portal-view .form-error{color:#a03754;font-size:12px;line-height:1.8}
.portal-view .divider{border-color:#eed7e2}
.portal-view .info-line{border-color:#f0dee7;font-size:12px;line-height:1.7}
.portal-view .info-line span{color:#926c7d}
.portal-view .info-line strong{text-align:right;color:#72465b}
.portal-view .payout strong{color:#933c62}
.portal-view .empty{padding:30px 18px;color:#957384}
.portal-view .empty>.icon{color:#cd8aab;width:30px;height:30px}
.portal-view .empty h3{font:20px/1.3 Georgia,serif;color:#85516a}
.portal-view .empty p{font-size:12px;line-height:1.8}
.portal-view .entry{max-width:520px;justify-content:center;padding:30px 24px 35px}
.portal-view .entry>.brand,.legacy-view .entry>.brand{display:flex;margin:0 auto 23px}
.portal-view .entry .brand-logo,.legacy-view .entry .brand-logo{width:248px}
.portal-view .entry .brand-caption,.legacy-view .entry .brand-caption{font-size:8px;letter-spacing:1.8px}
.portal-view .entry-card{padding:30px 34px 28px}
.portal-view .entry-card>.eyebrow{text-align:center;font-size:9px;color:#ad7891;margin:0 0 16px;letter-spacing:1.8px}
.portal-view .entry-card>h1{font-size:34px;line-height:1.17;text-align:center;letter-spacing:-1px;margin:0 0 14px}
.portal-view .entry-card>.hint{text-align:center;font-size:12px;margin-bottom:22px}
.portal-view .entry-links{padding-top:10px;border-top:1px solid #f1e1e9;margin-top:21px}
.portal-view .entry-links .quiet{font-size:12px;min-height:44px;color:#9d3d65}
.portal-view .entry-foot{font-family:Georgia,serif;font-size:12px;line-height:1.8;color:#927281}
.portal-view .entry-foot a{font:11px Arial,sans-serif;color:#9d3d65;text-decoration:none}
.auth-bow .client-bow{width:83px;height:44px;margin:0 auto 13px}
.portal-view .overlay{background:#50324465;backdrop-filter:blur(6px)}
.portal-view .modal{border:1px solid #efcfdf;border-radius:26px;background:#fffafd;box-shadow:0 24px 90px #692e4c24;padding:26px 29px 30px}
.modal-bow .client-bow{width:61px;height:33px;margin:0 auto 12px;color:#d793b0}
.portal-view .modal-head{gap:15px;align-items:center;padding-bottom:15px;border-bottom:1px solid #f1dce6;margin-bottom:19px}
.portal-view .modal-head h2{font-size:27px;line-height:1.2;color:#7c425c;overflow-wrap:anywhere}
.portal-view .modal-head>.quiet{background:#fff;border:1px solid #f0d8e4;border-radius:50%;min-width:34px;min-height:34px;width:34px;height:34px;padding:7px;flex:none}
.portal-view .receipt{border-color:#edcddd;border-radius:16px}
.portal-view .appointment-days{padding-top:5px}
.portal-view .date-chip{min-width:71px;padding:10px 12px;border-radius:15px}
.portal-view .date-chip strong{font-size:28px}
.portal-view .date-chip small,.portal-view .date-chip span{font-size:10px;color:inherit;text-transform:capitalize}
.portal-view .slots .chip{min-height:44px}
.portal-view #toast{background:#7f3554;color:#fff;border:1px solid #ad6a88;box-shadow:0 8px 24px #7d304820}
.portal-view .bottomnav{background:#fffafdF5;border-color:#efd8e3}
.portal-view .bottomnav button{color:#967284}
.portal-view .bottomnav button.active{background:#fbe3ee;color:#943e64}
.portal-view .settings-layout form>h2{margin-bottom:25px}
.legacy-view .entry-card{margin-top:18px}
.legacy-view .entry-card h1{font-size:37px}
.legacy-view .entry-card>p,.legacy-view .entry-foot,.legacy-view .fine{color:#896575}
.legacy-view .entry-icon,.legacy-view .detail-icon{color:#c77e9e}
.legacy-view .private{background:#fff0f7;border-color:#eac8d9;color:#9b5c7b}
.legacy-view .intro .eyebrow{color:#9d3d65}
.legacy-view .status{background:#fff5e7;border-color:#efddc3;color:#835e3c}
.legacy-view .status.fresh{background:#fff0f6;border-color:#efd0df}
.legacy-view .status.fresh .dot{background:#c9799e}
.legacy-view .status p,.legacy-view .note,.legacy-view .note p,.legacy-view footer,.legacy-view dt,.legacy-view .calendar-note{color:#886a79}
.legacy-view .day.free{background:#fff0f6;border-color:#f0d0e0;color:#934468}
.legacy-view .day.busy{background:#eee5ed;border-color:#dfd0db;color:#7b5e70}
.legacy-view .day.unknown{background:#f8f4f7;color:#a48a99}
.legacy-view .day.selected{outline-color:#b3537e}
.legacy-view .legend .sage{background:#d284a8}
.legacy-view .legend .rose{background:#aa8c9f}
.legacy-view .selected-detail{background:#fff0f6}
.legacy-view .selected-detail p{color:#8c657a}
.legacy-view .setup-note{background:#fff1f7;color:#9d5273}
.legacy-view .logout{color:#915d77}
@media(min-width:1500px){.portal-view .day{min-height:72px}}
@media(max-width:1100px){.portal-view .stat{padding:17px 15px}.portal-view .stat strong{font-size:26px}.portal-view .sidebar .brand-logo{width:150px}.portal-view .hero h1{font-size:37px}}
@media(max-width:700px){
 .portal-view .topbar{height:76px;padding:0 18px;gap:10px}
 .portal-view .mobile-brand .brand-logo{width:124px}
 .portal-view .mobile-brand .brand-caption{display:none}
 .portal-view .profile{gap:5px}
 .portal-view .profile .avatar{width:31px;height:31px;font-size:12px}
 .portal-view .profile .quiet{min-width:35px;min-height:40px;padding:7px}
 .portal-view .content{padding:27px 17px 110px}
 .portal-view .hero h1{font-size:33px;letter-spacing:-.9px}
 .portal-view .hero p{font-size:12px}
 .portal-view .hero>.hero-flourish{display:none}
 .portal-view .stats{gap:11px}
 .portal-view .stat{border-radius:18px;padding:18px 15px}
 .portal-view .stat strong{font-size:27px}
 .portal-view .stat .label{font-size:10px}
 .portal-view .stat small{font-size:9px}
 .portal-view .card{padding:19px;border-radius:21px}
 .portal-view .card-head h2{font-size:23px}
 .portal-view .day{min-height:49px;border-radius:10px;font-size:13px}
 .portal-view .day small{font-size:7px}
 .portal-view .calendar-head strong{font-size:19px}
 .portal-view .week,.portal-view .days{gap:4px}
 .portal-view .booking{padding:17px;border-radius:17px}
 .portal-view .booking>.row{gap:10px}
 .portal-view .booking h3{font-size:14px;overflow-wrap:anywhere}
 .portal-view .booking p{font-size:11px;overflow-wrap:anywhere}
 .portal-view .booking .actions{gap:9px}
 .portal-view .badge{font-size:8px;padding:5px 9px}
 .portal-view .booking .actions .secondary{font-size:10px}
 .portal-view .card-head{flex-wrap:wrap}
 .portal-view .entry{padding:23px 17px 30px;justify-content:flex-start}
 .portal-view .entry .brand-logo{width:222px}
 .portal-view .entry>.brand{margin-bottom:20px}
 .portal-view .entry-card{padding:25px 24px;border-radius:23px}
 .portal-view .entry-card>h1{font-size:31px}
 .portal-view .entry-card>.hint{font-size:11px}
 .portal-view .modal{border-radius:25px 25px 0 0;padding:20px 20px 30px;max-height:94dvh}
 .portal-view .modal-head h2{font-size:25px}
 .portal-view .amounts{padding:16px;gap:15px}
 .portal-view .amounts>div+div{padding-left:15px}
 .portal-view .amounts strong{font-size:20px}
 .portal-view input:not([type=checkbox]),.portal-view textarea{font-size:16px}
 .portal-view .bottomnav button{border-radius:12px;padding:8px 9px;min-width:58px;font-size:9px}
 .portal-view .bottomnav .icon{width:20px;height:20px}
 .legacy-view .brand .brand-logo{width:155px}
 .legacy-view .brand .brand-caption{display:none}
}
@media(max-width:359px){.portal-view .card{padding:16px 13px}.portal-view .day{min-height:45px}.portal-view .stat strong{font-size:23px}.portal-view .stat .label .icon{display:none}.portal-view .entry-card{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.portal-view *, .legacy-view *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.portal-view .stat strong{overflow-wrap:anywhere}
@media(max-width:520px){.legacy-view header .brand-logo{width:118px}.legacy-view header{gap:10px}.legacy-view .header-actions{gap:2px}}
