:root{
    --black:#0b0b0b;
    --ink:#161616;
    --white:#fff;
    --off:#f6f5f1;
    --line:#e3e1da;
    --muted:#737373;
    --gold:#c9a227;
    --gold-dark:#8b6f13;
    --danger:#a93d3d;
    --success:#2f7446;
    --radius:14px;
    --max:1120px;
}
*{box-sizing:border-box}
body{
    margin:0;
    background:var(--off);
    color:var(--ink);
    font-family:Arial,Helvetica,sans-serif;
    line-height:1.5;
}
a{color:inherit}
button,input,select,textarea{font:inherit}
.client-header{
    position:sticky;
    top:0;
    z-index:20;
    background:var(--black);
    color:#fff;
}
.client-header-inner{
    width:min(var(--max),calc(100% - 40px));
    min-height:76px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.client-brand{
    text-decoration:none;
    font-size:.9rem;
    font-weight:900;
    letter-spacing:.14em;
}
.client-brand span{color:var(--gold)}
.client-nav{display:flex;gap:8px;align-items:center}
.client-nav a{
    text-decoration:none;
    color:#b7b7b7;
    padding:9px 11px;
    border-radius:8px;
    font-size:.82rem;
    font-weight:700;
}
.client-nav a:hover,.client-nav a.active{
    color:#fff;
    background:#1b1b1b;
}
.client-main{
    width:min(var(--max),calc(100% - 40px));
    margin:auto;
    padding:48px 0 90px;
}
.page-header{margin-bottom:28px}
.eyebrow{
    margin:0 0 9px;
    color:var(--gold-dark);
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.14em;
}
.page-header h1{
    margin:0;
    font-size:clamp(2.2rem,5vw,4rem);
    letter-spacing:-.05em;
    line-height:1;
}
.page-header p{
    max-width:680px;
    margin:13px 0 0;
    color:var(--muted);
    line-height:1.65;
}
.notice{
    margin:0 0 22px;
    padding:14px 16px;
    background:#fffdf4;
    border:1px solid #e5d79b;
    border-left:3px solid var(--gold);
    border-radius:9px;
}
.notice.error{
    color:#8c3232;
    background:#fff7f7;
    border-color:#e8caca;
    border-left-color:var(--danger);
}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px;
}
.card h2,.card h3{margin-top:0}
.card h2{margin-bottom:8px;font-size:1.3rem}
.card-description{
    color:var(--muted);
    margin:0 0 20px;
    font-size:.9rem;
    line-height:1.6;
}
.metric{
    min-height:128px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}
.metric-label{
    color:var(--muted);
    font-size:.73rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.metric-value{
    font-size:2.2rem;
    font-weight:900;
    letter-spacing:-.04em;
}
.section-header{
    margin:34px 0 14px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
}
.section-header h2{margin:0;font-size:1.35rem}
.section-header p{margin:5px 0 0;color:var(--muted);font-size:.85rem}
.btn{
    min-height:42px;
    border:0;
    border-radius:8px;
    padding:0 15px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-weight:800;
    cursor:pointer;
}
.btn-primary{background:var(--gold);color:#111}
.btn-primary:hover{background:#b9951f}
.btn-dark{background:#111;color:#fff}
.btn-dark:hover{background:#262626}
.btn-light{background:#fff;border:1px solid #d5d3cc;color:#333}
.btn-danger{background:#fff;border:1px solid #e5c2c2;color:var(--danger)}
.btn-small{min-height:35px;padding:0 11px;font-size:.78rem}
.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.field{margin-bottom:17px}
.field label{
    display:block;
    margin-bottom:7px;
    font-size:.78rem;
    font-weight:800;
}
.field-help{margin-top:6px;color:var(--muted);font-size:.76rem}
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="number"],
select,
textarea{
    width:100%;
    padding:11px 12px;
    border:1px solid #d1cfc8;
    border-radius:8px;
    background:#fff;
    color:#111;
    outline:none;
}
textarea{min-height:105px;resize:vertical}
input:focus,select:focus,textarea:focus{
    border-color:var(--gold);
    box-shadow:0 0 0 3px rgba(201,162,39,.12);
}
.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 16px;
}
.form-grid .full{grid-column:1/-1}
.service-list{display:flex;flex-direction:column;gap:12px}
.service-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:20px;
}
.service-card-top{
    display:grid;
    grid-template-columns:130px minmax(0,1fr) auto;
    gap:18px;
    align-items:start;
}
.service-title{font-weight:900}
.meta{
    color:var(--muted);
    font-size:.82rem;
    line-height:1.55;
}
.badge{
    display:inline-flex;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    background:#efefec;
    color:#555;
    font-size:.68rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.badge.gold{background:#f5edcf;color:#7b6313}
.badge.success{background:#e7f2e9;color:var(--success)}
.badge.danger{background:#f7e4e4;color:#973737}
.notes{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #eee;
    color:#555;
    white-space:pre-wrap;
    font-size:.85rem;
}
.addon-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 12px;
}
.check-row{
    display:flex;
    align-items:center;
    gap:9px;
    padding:10px;
    border:1px solid #e4e2dc;
    border-radius:8px;
    font-size:.84rem;
}
.check-row input{width:auto;accent-color:var(--gold)}
.notification-preferences{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.notification-preferences .check-row{
    align-items:flex-start;
    padding:14px;
}
.notification-preferences .check-row span{
    display:block;
}
.notification-preferences .check-row strong,
.notification-preferences .check-row small{
    display:block;
}
.notification-preferences .check-row small{
    margin-top:4px;
    color:var(--muted);
    font-size:.72rem;
    line-height:1.45;
}
.empty{
    padding:32px;
    text-align:center;
    color:var(--muted);
    background:#fff;
    border:1px dashed #d6d4cd;
    border-radius:var(--radius);
}
.login-shell{
    min-height:100vh;
    padding:30px 18px;
    background:
        linear-gradient(rgba(8,8,8,.78),rgba(8,8,8,.78)),
        url("../images/hero.jpg") center/cover;
    display:grid;
    place-items:center;
}
.login-card{
    width:min(520px,100%);
    background:#fff;
    border-radius:18px;
    padding:34px;
    box-shadow:0 24px 80px rgba(0,0,0,.24);
}
.login-brand{
    display:inline-block;
    margin-bottom:35px;
    color:#111;
    text-decoration:none;
    font-size:.85rem;
    font-weight:900;
    letter-spacing:.14em;
}
.login-brand span{color:var(--gold-dark)}
.login-card h1{
    margin:0 0 12px;
    font-size:2.1rem;
    letter-spacing:-.04em;
}
.login-card p{color:var(--muted);line-height:1.65}
.login-card .btn{width:100%}
.portal-callout{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    background:#111;
    color:#fff;
}
.portal-callout p{color:#aaa;margin:7px 0 0}
.portal-callout .btn{flex:0 0 auto}
.referral-card{
    margin-top:18px;
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);
    gap:24px;
    align-items:center;
    background:linear-gradient(135deg,#fff,#fbf6e3);
    border-color:#dfd19a;
}
.referral-kicker{
    display:block;
    margin-bottom:7px;
    color:var(--gold-dark);
    font-size:.67rem;
    font-weight:900;
    letter-spacing:.12em;
}
.referral-card h2{margin:0 0 9px;font-size:1.35rem}
.referral-card p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.6}
.referral-status{
    margin-top:16px;
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    color:#6d6858;
    font-size:.75rem;
}
.referral-status strong{color:#111}
.referral-code-box{
    padding:20px;
    border:1px solid #dfd19a;
    border-radius:12px;
    background:#fff;
    text-align:center;
}
.referral-code-box>span{
    display:block;
    color:var(--muted);
    font-size:.64rem;
    font-weight:900;
    letter-spacing:.11em;
}
.referral-code-box>strong{
    display:block;
    margin:8px 0 14px;
    color:#7a6010;
    font-size:1.25rem;
    letter-spacing:.08em;
}
.referral-code-box small{
    display:block;
    min-height:16px;
    margin-top:6px;
    color:var(--success);
    font-size:.67rem;
}
.quick-info{display:grid;gap:8px;font-size:.9rem}
.quick-info a{text-decoration:none}
.price{font-weight:900;color:#785f10}
.warning{
    padding:14px 16px;
    border-left:3px solid var(--gold);
    background:#f5f1e2;
    color:#665a31;
    font-size:.84rem;
    line-height:1.55;
}
.property-card{
    display:flex;
    flex-direction:column;
    gap:18px;
}
.property-card-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    padding-bottom:14px;
    border-bottom:1px solid #eee;
}
.property-card-heading h3{
    margin:0 0 8px;
}
.property-details-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 12px;
}
.property-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding-top:16px;
    border-top:1px solid #eee;
}
.property-actions form{margin:0}
.workflow-heading{
    margin-bottom:18px;
}
.workflow-heading h3{
    margin:3px 0 6px;
}
.workflow-heading p{
    margin:0;
    max-width:720px;
    color:var(--muted);
    font-size:.84rem;
    line-height:1.55;
}
.workflow-kicker{
    display:block;
    color:var(--gold-dark);
    font-size:.65rem;
    font-weight:900;
    letter-spacing:.12em;
}
.workflow-kicker.danger{
    color:var(--danger);
}
.workflow-reason{
    padding-top:4px;
}
.cancel-panel{
    margin-top:22px;
    padding-top:22px;
    border-top:1px solid #eee;
}
.change-history{
    padding-top:6px;
    padding-bottom:6px;
}
.change-history-item{
    padding:17px 0;
    border-bottom:1px solid #eee;
}
.change-history-item:last-child{
    border-bottom:0;
}
.change-history-item>div:first-child{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:14px;
}
.change-route{
    margin-top:10px;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    font-size:.84rem;
}
.change-route span:nth-child(2){
    color:var(--gold-dark);
    font-weight:900;
}
.change-note{
    margin-top:9px;
    padding-top:9px;
}
@media(max-width:760px){
    .client-header-inner{width:calc(100% - 28px)}
    .client-header-inner{min-height:68px}
    .client-nav{gap:2px;overflow:auto}
    .client-nav a{padding:8px;font-size:.74rem}
    .client-main{width:calc(100% - 28px);padding:34px 0 70px}
    .grid-2,.grid-3{grid-template-columns:1fr}
    .form-grid{grid-template-columns:1fr}
    .form-grid .full{grid-column:auto}
    .service-card-top{grid-template-columns:1fr}
    .addon-grid{grid-template-columns:1fr}
    .property-details-grid{grid-template-columns:1fr 1fr}
    .portal-callout{align-items:flex-start;flex-direction:column}
    .referral-card{grid-template-columns:1fr}
}

@media(max-width:700px){.notification-preferences{grid-template-columns:1fr}}


/* Referral readability */
.referral-intro{
    max-width:720px;
}
.referral-steps{
    display:grid;
    gap:8px;
    margin-top:18px;
}
.referral-step{
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    gap:10px;
    align-items:start;
    padding:11px 12px;
    border:1px solid #ece5c9;
    border-radius:9px;
    background:rgba(255,255,255,.72);
}
.referral-step>span{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#f4e9bd;
    color:#72590e;
    font-size:.72rem;
    font-weight:900;
}
.referral-step strong,
.referral-step small{
    display:block;
}
.referral-step strong{
    font-size:.8rem;
}
.referral-step small{
    margin-top:2px;
    color:var(--muted);
    font-size:.7rem;
    line-height:1.45;
}
.referral-status-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
    margin-top:16px;
}
.referral-status-card{
    padding:12px 13px;
    border:1px solid #e8e3d1;
    border-radius:10px;
    background:#fff;
}
.referral-status-card.highlight{
    border-color:#d9c36d;
    background:#fffaf0;
}
.referral-status-card>span,
.referral-status-card>strong,
.referral-status-card>small{
    display:block;
}
.referral-status-card>span{
    color:var(--muted);
    font-size:.64rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.referral-status-card>strong{
    margin-top:5px;
    font-size:1.45rem;
    letter-spacing:-.04em;
}
.referral-status-card>small{
    margin-top:2px;
    color:#6f6b61;
    font-size:.67rem;
    line-height:1.35;
}
.referral-rules{
    margin-top:14px !important;
    padding-top:12px;
    border-top:1px solid #ebe3c5;
    font-size:.72rem !important;
    line-height:1.5 !important;
}
.referral-code-box p{
    margin:0 0 13px;
    color:var(--muted);
    font-size:.7rem;
    line-height:1.4;
}

@media(max-width:900px){
    .referral-status-grid{
        grid-template-columns:1fr;
    }
}


/* Client invoices */
.invoice-client-list{
    display:grid;
    gap:12px;
}
.invoice-client-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    color:inherit;
    text-decoration:none;
}
.invoice-client-card:hover{
    border-color:#c7b56d;
}
.invoice-client-card>div:first-child strong,
.invoice-client-card>div:first-child small{
    display:block;
}
.invoice-client-card>div:first-child strong{
    margin-top:5px;
    font-size:1rem;
}
.invoice-client-card>div:first-child small{
    margin-top:3px;
    color:var(--muted);
}
.invoice-client-total{
    text-align:right;
}
.invoice-client-total strong{
    display:block;
    margin-top:7px;
    font-size:1.15rem;
}
.client-invoice-document{
    width:min(920px,100%);
}
.invoice-actions{
    margin-bottom:18px;
}
.invoice-document{
    margin:0 auto;
    padding:48px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
}
.invoice-header{
    display:flex;
    justify-content:space-between;
    gap:36px;
    padding-bottom:28px;
    border-bottom:2px solid #111;
}
.invoice-header h2{
    margin:0 0 10px;
    font-size:1.7rem;
}
.invoice-header p{
    margin:2px 0;
    color:var(--muted);
    font-size:.78rem;
}
.invoice-number-block{
    min-width:190px;
    display:grid;
    grid-template-columns:auto auto;
    gap:7px 14px;
    align-content:start;
    font-size:.78rem;
}
.invoice-number-block span{color:var(--muted)}
.invoice-number-block strong{text-align:right}
.invoice-heading-message{
    margin:24px 0 0;
    font-size:1rem;
    font-weight:800;
}
.invoice-parties{
    display:grid;
    grid-template-columns:1.5fr 1fr;
    gap:36px;
    padding:28px 0;
}
.invoice-parties>div{
    display:grid;
    gap:3px;
}
.invoice-parties p{
    margin:0;
    color:var(--muted);
    font-size:.8rem;
}
.invoice-label{
    margin-bottom:6px;
    color:var(--muted);
    font-size:.65rem;
    font-weight:900;
    letter-spacing:.08em;
}
.invoice-table{
    width:100%;
    border-collapse:collapse;
}
.invoice-table th{
    padding:11px 10px;
    border-bottom:1px solid #cfcfc9;
    background:#fafaf8;
    color:#777;
    text-align:left;
    font-size:.65rem;
    text-transform:uppercase;
}
.invoice-table td{
    padding:13px 10px;
    border-bottom:1px solid #ecece8;
    font-size:.82rem;
}
.invoice-table th:nth-child(n+2),
.invoice-table td:nth-child(n+2){
    text-align:right;
}
.invoice-totals{
    width:min(370px,100%);
    margin:26px 0 0 auto;
    display:grid;
    gap:9px;
}
.invoice-totals>div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    color:#555;
    font-size:.82rem;
}
.invoice-total-final{
    margin-top:7px;
    padding-top:12px;
    border-top:2px solid #111;
    color:#111 !important;
    font-size:1rem !important;
}
.invoice-footer-message{
    margin:32px 0 0;
    padding-top:18px;
    border-top:1px solid #e7e7e2;
    color:#666;
    font-size:.78rem;
    line-height:1.55;
}
.invoice-tax-numbers{
    display:flex;
    flex-wrap:wrap;
    gap:10px 20px;
    margin-top:18px;
    color:#777;
    font-size:.7rem;
}
@media(max-width:760px){
    .invoice-client-card{
        align-items:flex-start;
    }
    .invoice-document{
        padding:24px 18px;
    }
    .invoice-header,
    .invoice-parties{
        grid-template-columns:1fr;
        display:grid;
        gap:20px;
    }
    .invoice-number-block{
        min-width:0;
    }
}
@media print{
    .client-header,
    .page-header,
    .invoice-actions,
    .notice{
        display:none !important;
    }
    .client-main{
        width:100%;
        padding:0;
    }
    .invoice-document{
        width:100%;
        border:0;
        padding:0;
    }
}


/* Contract proof and payment reauthorization */
.payment-reauthorization-card{
    margin:18px 0;
    border-color:#d9b1a9;
    background:#fff9f7;
}
.contract-version-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:22px 0;
}
.contract-version-grid>div{
    padding:10px 12px;
    border:1px solid #e6e5df;
    border-radius:9px;
    background:#fafaf8;
}
.contract-version-grid span,
.contract-version-grid strong{
    display:block;
}
.contract-version-grid span{
    color:var(--muted);
    font-size:.63rem;
    font-weight:900;
    text-transform:uppercase;
}
.contract-version-grid strong{
    margin-top:4px;
    font-size:.78rem;
}
.contract-snapshot{
    margin:0;
    padding:18px;
    border:1px solid #e7e6e0;
    border-radius:10px;
    background:#fff;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    font:inherit;
    font-size:.78rem;
    line-height:1.55;
}
.contract-links-footer{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}
.contract-links-footer a{
    color:#222;
    font-size:.72rem;
    font-weight:800;
}
@media(max-width:760px){
    .contract-version-grid{
        grid-template-columns:1fr;
    }
}


/* Customer communications, issues and support */
.portal-support-callout{
    margin-top:14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.portal-support-callout>div>strong{
    display:block;
    margin-top:3px;
    font-size:1.15rem;
}
.portal-support-callout p{
    max-width:680px;
    margin:6px 0 0;
    color:var(--muted);
    font-size:.84rem;
}
.portal-support-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px 14px;
    margin-top:11px;
    color:#666;
    font-size:.72rem;
}
.support-unread{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:3px 8px;
    border-radius:999px;
    background:#fff1c6;
    color:#7b6110;
    font-size:.68rem;
    font-weight:900;
}
.support-contact-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.support-contact-card h2{
    margin:4px 0 5px;
}
.support-contact-card .card-description{
    margin-bottom:0;
}
.support-contact-methods{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.support-contact-methods a{
    min-width:170px;
    padding:12px 14px;
    border:1px solid #dfddd5;
    border-radius:9px;
    background:#fafaf8;
    text-decoration:none;
}
.support-contact-methods span,
.support-contact-methods strong{
    display:block;
}
.support-contact-methods span{
    color:var(--muted);
    font-size:.64rem;
    font-weight:900;
    text-transform:uppercase;
}
.support-contact-methods strong{
    margin-top:3px;
    font-size:.8rem;
}
.support-compose-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-top:18px;
}
.issue-form-card{
    border-color:#e5d2ce;
    background:#fffdfc;
}
.conversation-list,
.issue-list{
    display:grid;
    gap:10px;
}
.conversation-list-item,
.issue-list-item{
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:flex-start;
    text-decoration:none;
}
.conversation-list-item:hover,
.issue-list-item:hover{
    border-color:#c7b56d;
}
.conversation-list-title{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
}
.conversation-list-item p{
    margin:6px 0 4px;
    color:#555;
    font-size:.82rem;
}
.conversation-list-item small{
    color:var(--muted);
    font-size:.68rem;
}
.issue-list-item>div:first-child strong,
.issue-list-item>div:first-child span{
    display:block;
}
.issue-list-item>div:first-child span{
    margin-top:4px;
    color:var(--muted);
    font-size:.75rem;
}
.issue-list-item>div:last-child{
    display:grid;
    justify-items:end;
    gap:6px;
}
.issue-list-item small{
    color:var(--muted);
    font-size:.67rem;
}
.conversation-panel{
    padding:0;
    overflow:hidden;
}
.conversation-messages{
    display:grid;
    gap:10px;
    padding:22px;
    background:#fafaf8;
}
.conversation-message{
    max-width:78%;
    padding:12px 14px;
    border-radius:12px;
    border:1px solid #e4e2dc;
    background:#fff;
}
.conversation-message.from-customer{
    margin-left:auto;
    background:#fff9e7;
    border-color:#ead99c;
}
.conversation-message span{
    display:block;
    margin-bottom:5px;
    color:var(--muted);
    font-size:.64rem;
    font-weight:800;
}
.conversation-message p{
    margin:0;
    line-height:1.55;
    white-space:normal;
}
.conversation-reply{
    padding:20px 22px;
    border-top:1px solid #e8e6df;
}
.support-issue-summary{
    margin-bottom:14px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
    align-items:start;
}
.support-issue-summary strong,
.support-issue-summary small{
    display:block;
}
.support-issue-summary strong{
    margin-top:4px;
}
.support-issue-summary small{
    margin-top:3px;
    color:var(--muted);
}
.issue-photo-strip{
    grid-column:1/-1;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.issue-photo-strip a{
    padding:7px 10px;
    border:1px solid #ddd9cd;
    border-radius:8px;
    background:#fff;
    color:#555;
    text-decoration:none;
    font-size:.72rem;
    font-weight:800;
}
.privacy-request-list{
    display:grid;
    gap:10px;
}
@media(max-width:760px){
    .portal-support-callout,
    .support-contact-card{
        align-items:flex-start;
        flex-direction:column;
    }
    .support-compose-grid{
        grid-template-columns:1fr;
    }
    .conversation-message{
        max-width:92%;
    }
    .support-contact-methods{
        width:100%;
    }
    .support-contact-methods a{
        width:100%;
    }
}

.text-link{
    color:var(--gold-dark);
    text-decoration:none;
    font-weight:800;
}
.text-link:hover{text-decoration:underline}
.stack{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
}
.small{font-size:.76rem}


/* =========================================================
   CLIENT SPACE REDESIGN — CLEAN NAVIGATION
   ========================================================= */

:root{
    --client-shadow:0 10px 30px rgba(17,17,17,.055);
    --client-shadow-hover:0 14px 38px rgba(17,17,17,.085);
}

html{
    scroll-behavior:smooth;
}

body{
    background:#f7f6f2;
}

.client-header{
    border-bottom:1px solid #222;
}

.client-header-inner{
    width:min(1240px,calc(100% - 48px));
    min-height:70px;
    gap:18px;
}

.client-brand{
    flex:0 0 auto;
}

.client-nav-desktop{
    margin-left:auto;
    gap:3px;
}

.client-nav-desktop a{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:9px 10px;
    color:#bcbcbc;
    font-size:.78rem;
}

.client-nav-desktop a.active{
    background:#202020;
}

.nav-count{
    min-width:19px;
    height:19px;
    padding:0 5px;
    display:inline-grid;
    place-items:center;
    border-radius:999px;
    background:var(--gold);
    color:#111;
    font-size:.62rem;
    font-weight:900;
}

.client-header-actions{
    display:flex;
    align-items:center;
    gap:8px;
    padding-left:6px;
    border-left:1px solid #2b2b2b;
}

.client-header-actions a{
    text-decoration:none;
    font-size:.75rem;
    font-weight:800;
}

.header-booking-link{
    padding:9px 13px;
    border-radius:8px;
    background:var(--gold);
    color:#111;
}

.header-booking-link:hover{
    background:#d4ad2f;
}

.header-account-link{
    display:none;
    color:#fff;
}

.header-logout-link{
    color:#8f8f8f;
    padding:8px 4px;
}

.header-logout-link:hover{
    color:#fff;
}

.client-main{
    width:min(1120px,calc(100% - 48px));
    padding:36px 0 96px;
}

.page-header{
    margin-bottom:22px;
}

.page-header h1{
    max-width:900px;
    font-size:clamp(2rem,4vw,3.25rem);
    letter-spacing:-.045em;
}

.page-header p{
    margin-top:9px;
    font-size:.9rem;
}

.card,
.service-card{
    box-shadow:var(--client-shadow);
}

.client-mobile-nav{
    display:none;
}

.client-page-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}

.section-jump-nav{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.section-jump-nav a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:38px;
    padding:0 12px;
    border:1px solid #dedcd5;
    border-radius:999px;
    background:#fff;
    color:#555;
    text-decoration:none;
    font-size:.76rem;
    font-weight:800;
}

.section-jump-nav a:hover{
    border-color:#c9b55f;
    color:#111;
}

.section-jump-nav span{
    min-width:20px;
    height:20px;
    padding:0 5px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:#f0eee7;
    font-size:.65rem;
}

.client-section{
    scroll-margin-top:92px;
}

.section-header.compact{
    margin-top:26px;
}

.service-summary-strip{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin:18px 0 8px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    box-shadow:var(--client-shadow);
}

.service-summary-strip>div{
    padding:17px 20px;
    border-right:1px solid #eceae4;
}

.service-summary-strip>div:last-child{
    border-right:0;
}

.service-summary-strip span,
.service-summary-strip strong{
    display:block;
}

.service-summary-strip span{
    color:var(--muted);
    font-size:.67rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.service-summary-strip strong{
    margin-top:3px;
    font-size:1.35rem;
}

.clean-service-list{
    display:grid;
    gap:10px;
}

.clean-service-card{
    display:grid;
    grid-template-columns:145px minmax(0,1fr) auto;
    gap:18px;
    align-items:center;
    padding:18px 20px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    box-shadow:var(--client-shadow);
}

.clean-service-card:hover{
    border-color:#d7cfad;
    box-shadow:var(--client-shadow-hover);
}

.service-date-block strong,
.service-date-block span{
    display:block;
}

.service-date-block strong{
    font-size:.92rem;
}

.service-date-block span{
    margin-top:3px;
    color:var(--muted);
    font-size:.76rem;
}

.service-main-info{
    min-width:0;
}

.service-heading-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.service-heading-row h2,
.service-heading-row h3{
    margin:3px 0 0;
}

.service-heading-row h3{
    font-size:.96rem;
}

.service-heading-row p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:.76rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.service-inline-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 16px;
    margin-top:9px;
    color:#666;
    font-size:.71rem;
}

.service-inline-meta span{
    position:relative;
}

.service-inline-meta span+span:before{
    content:"";
    position:absolute;
    left:-9px;
    top:50%;
    width:3px;
    height:3px;
    border-radius:50%;
    background:#b7b3aa;
}

.service-open-button{
    min-width:74px;
}

.recurring-plan-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.recurring-plan-card{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.clean-detail-list{
    display:grid;
    gap:10px;
    padding:14px 0;
    border-top:1px solid #eee;
    border-bottom:1px solid #eee;
}

.clean-detail-list span{
    display:grid;
    grid-template-columns:125px minmax(0,1fr);
    gap:12px;
    color:#555;
    font-size:.78rem;
}

.clean-detail-list b{
    color:#777;
    font-size:.68rem;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.history-list{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    box-shadow:var(--client-shadow);
}

.history-row{
    display:grid;
    grid-template-columns:145px minmax(0,1fr) auto;
    gap:18px;
    align-items:center;
    min-height:72px;
    padding:13px 18px;
    border-bottom:1px solid #efede8;
}

.history-row:last-child{
    border-bottom:0;
}

.history-row>div>strong,
.history-row>div>span{
    display:block;
}

.history-row>div>strong{
    font-size:.82rem;
}

.history-row>div>span{
    margin-top:2px;
    color:var(--muted);
    font-size:.7rem;
}

.history-actions{
    display:flex;
    align-items:flex-end;
    gap:5px;
    flex-direction:column;
}

.clean-empty{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
}

.clean-empty strong{
    color:#222;
}

.clean-empty span{
    max-width:500px;
    font-size:.82rem;
}

.clean-empty .btn{
    margin-top:6px;
}

/* Home */

.home-command-bar{
    display:grid;
    grid-template-columns:1.25fr repeat(3,1fr);
    gap:10px;
    margin-bottom:14px;
}

.home-command{
    min-height:118px;
    padding:18px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    text-decoration:none;
    box-shadow:var(--client-shadow);
    transition:.18s ease;
}

.home-command:hover{
    transform:translateY(-1px);
    border-color:#d6ceb0;
    box-shadow:var(--client-shadow-hover);
}

.home-command.primary{
    background:#111;
    border-color:#111;
    color:#fff;
}

.home-command-label{
    margin-bottom:auto;
    color:var(--gold-dark);
    font-size:.63rem;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.home-command.primary .home-command-label{
    color:#e5c75c;
}

.home-command strong{
    font-size:1rem;
}

.home-command small{
    margin-top:4px;
    color:var(--muted);
    font-size:.69rem;
    line-height:1.4;
}

.home-command.primary small{
    color:#a9a9a9;
}

.home-attention{
    margin:14px 0 2px;
    padding:16px 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    border:1px solid #e2d6a7;
    border-radius:12px;
    background:#fffaf0;
}

.home-attention strong{
    display:block;
    margin-top:3px;
}

.home-attention p{
    margin:3px 0 0;
    color:#75683e;
    font-size:.76rem;
}

.home-next-section{
    margin-top:0;
}

.next-service-card{
    display:grid;
    grid-template-columns:170px minmax(0,1fr) auto;
    gap:22px;
    align-items:stretch;
    overflow:hidden;
    border:1px solid #d8d3c3;
    border-radius:14px;
    background:#fff;
    box-shadow:var(--client-shadow);
}

.next-service-date{
    padding:24px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:#111;
    color:#fff;
}

.next-service-date span{
    color:#c5a83d;
    font-size:.62rem;
    font-weight:900;
    letter-spacing:.11em;
}

.next-service-date strong{
    margin-top:7px;
    font-size:1.3rem;
}

.next-service-date small{
    margin-top:3px;
    color:#aaa;
}

.next-service-body{
    min-width:0;
    padding:24px 0;
}

.next-service-body h2{
    font-size:1.22rem;
}

.next-service-address{
    margin:8px 0 0;
    color:var(--muted);
    font-size:.8rem;
}

.next-service-meta{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
    margin-top:17px;
}

.next-service-meta span{
    display:flex;
    flex-direction:column;
    gap:2px;
    color:var(--muted);
    font-size:.65rem;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.next-service-meta strong{
    color:#222;
    font-size:.78rem;
    text-transform:none;
    letter-spacing:0;
}

.next-service-action{
    padding:24px 24px 24px 0;
    display:flex;
    align-items:center;
}

.next-service-empty{
    padding:26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border:1px dashed #cfcbc0;
    border-radius:14px;
    background:#fff;
}

.next-service-empty strong{
    display:block;
}

.next-service-empty p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:.8rem;
}

.home-overview-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:14px;
}

.home-overview-card{
    padding:17px 18px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:3px 14px;
    align-items:center;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    box-shadow:var(--client-shadow);
}

.home-overview-card:hover{
    border-color:#d6ceb0;
}

.home-overview-card span{
    color:#666;
    font-size:.72rem;
    font-weight:800;
}

.home-overview-card strong{
    grid-row:1/3;
    grid-column:2;
    font-size:1.45rem;
}

.home-overview-card small{
    color:var(--muted);
    font-size:.66rem;
}

.home-upcoming-list{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    box-shadow:var(--client-shadow);
}

.home-upcoming-row{
    display:grid;
    grid-template-columns:130px minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    min-height:68px;
    padding:12px 17px;
    border-bottom:1px solid #efede8;
    color:inherit;
    text-decoration:none;
}

.home-upcoming-row:last-child{
    border-bottom:0;
}

.home-upcoming-row:hover{
    background:#fbfaf7;
}

.home-upcoming-row strong,
.home-upcoming-row span{
    display:block;
}

.home-upcoming-row strong{
    font-size:.78rem;
}

.home-upcoming-row span{
    margin-top:2px;
    color:var(--muted);
    font-size:.68rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.home-row-arrow{
    color:#8d7a2d !important;
    font-size:1rem !important;
}

.home-secondary-grid{
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);
    gap:12px;
    margin-top:30px;
}

.home-referral-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) 190px;
    gap:18px 24px;
    align-items:start;
    border-color:#e2d7ad;
    background:linear-gradient(135deg,#fff,#fffbef);
}

.home-referral-card h2{
    margin:5px 0 6px;
    font-size:1.08rem;
}

.home-referral-card p{
    margin:0;
    color:var(--muted);
    font-size:.78rem;
}

.home-referral-code{
    padding:14px;
    border:1px solid #e1d6ab;
    border-radius:10px;
    background:#fff;
    text-align:center;
}

.home-referral-code>span,
.home-referral-code>strong,
.home-referral-code>small{
    display:block;
}

.home-referral-code>span{
    color:var(--muted);
    font-size:.6rem;
    font-weight:900;
    letter-spacing:.08em;
}

.home-referral-code>strong{
    margin:6px 0 10px;
    color:#7a6010;
    font-size:1.06rem;
    letter-spacing:.05em;
}

.home-referral-code>small{
    min-height:14px;
    margin-top:5px;
    color:var(--success);
    font-size:.62rem;
}

.home-referral-stats{
    grid-column:1/-1;
    display:flex;
    flex-wrap:wrap;
    gap:8px 20px;
    padding-top:13px;
    border-top:1px solid #eee5c6;
    color:#6f6955;
    font-size:.7rem;
}

.home-referral-stats b{
    margin-right:3px;
    color:#111;
}

.referral-details{
    grid-column:1/-1;
    color:#666;
    font-size:.72rem;
}

.referral-details summary{
    cursor:pointer;
    color:#6f5a12;
    font-weight:800;
}

.referral-details ol{
    margin:10px 0 0;
    padding-left:18px;
    line-height:1.6;
}

.home-help-card{
    display:flex;
    flex-direction:column;
}

.home-help-card h2{
    margin:5px 0 7px;
}

.home-help-card p{
    margin:0;
    color:var(--muted);
    font-size:.78rem;
    line-height:1.55;
}

.home-help-links{
    margin-top:auto;
    padding-top:18px;
    display:grid;
    gap:9px;
}

.home-help-links .text-link{
    width:max-content;
    font-size:.72rem;
}

/* Slightly cleaner support/profile pages */
.support-contact-card{
    box-shadow:none;
}

.support-compose-grid>.card,
.property-card{
    box-shadow:var(--client-shadow);
}

.invoice-client-card{
    padding:18px 20px;
}

@media(max-width:1020px){
    .client-header-inner{
        width:calc(100% - 32px);
    }

    .client-nav-desktop a{
        padding:8px 7px;
        font-size:.72rem;
    }

    .header-logout-link{
        display:none;
    }

    .home-command-bar{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .home-secondary-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:760px){
    body{
        padding-bottom:74px;
    }

    .client-header{
        position:sticky;
    }

    .client-header-inner{
        width:calc(100% - 28px);
        min-height:62px;
    }

    .client-nav-desktop,
    .header-booking-link,
    .header-logout-link{
        display:none;
    }

    .client-header-actions{
        margin-left:auto;
        padding-left:0;
        border-left:0;
    }

    .header-account-link{
        display:inline-flex;
        min-height:34px;
        align-items:center;
        padding:0 10px;
        border:1px solid #333;
        border-radius:999px;
        color:#ddd;
        font-size:.7rem;
    }

    .client-main{
        width:calc(100% - 28px);
        padding:28px 0 38px;
    }

    .page-header{
        margin-bottom:18px;
    }

    .page-header h1{
        font-size:2rem;
    }

    .page-header p{
        font-size:.82rem;
    }

    .client-mobile-nav{
        position:fixed;
        z-index:50;
        left:0;
        right:0;
        bottom:0;
        min-height:64px;
        padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
        display:grid;
        grid-template-columns:repeat(5,1fr);
        gap:3px;
        border-top:1px solid #ddd9cf;
        background:rgba(255,255,255,.96);
        backdrop-filter:blur(12px);
    }

    .client-mobile-nav a{
        position:relative;
        min-width:0;
        min-height:48px;
        display:grid;
        place-items:center;
        border-radius:9px;
        color:#666;
        text-decoration:none;
        font-size:.64rem;
        font-weight:800;
    }

    .client-mobile-nav a:hover{
        background:#f4f2eb;
        color:#111;
    }

    .client-mobile-nav .mobile-booking-link{
        background:#111;
        color:#fff;
    }

    .client-mobile-nav b{
        position:absolute;
        top:2px;
        right:8px;
        min-width:17px;
        height:17px;
        padding:0 4px;
        display:grid;
        place-items:center;
        border-radius:999px;
        background:var(--gold);
        color:#111;
        font-size:.58rem;
    }

    .client-page-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .section-jump-nav{
        overflow:auto;
        flex-wrap:nowrap;
        padding-bottom:2px;
    }

    .section-jump-nav a{
        white-space:nowrap;
    }

    .service-summary-strip{
        grid-template-columns:repeat(3,1fr);
    }

    .service-summary-strip>div{
        padding:13px 10px;
        text-align:center;
    }

    .service-summary-strip strong{
        font-size:1.12rem;
    }

    .clean-service-card{
        grid-template-columns:1fr auto;
        gap:12px;
        padding:16px;
    }

    .service-date-block{
        grid-column:1;
    }

    .service-main-info{
        grid-column:1/-1;
        grid-row:2;
    }

    .service-open-button{
        grid-column:2;
        grid-row:1;
    }

    .recurring-plan-grid{
        grid-template-columns:1fr;
    }

    .clean-detail-list span{
        grid-template-columns:1fr;
        gap:2px;
    }

    .history-row{
        grid-template-columns:1fr auto;
        gap:10px;
    }

    .history-row>div:nth-child(2){
        grid-column:1;
    }

    .history-actions{
        grid-column:2;
        grid-row:1/3;
        align-self:center;
    }

    .home-command-bar{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }

    .home-command{
        min-height:105px;
        padding:15px;
    }

    .home-command strong{
        font-size:.9rem;
    }

    .home-command small{
        font-size:.64rem;
    }

    .home-attention{
        align-items:flex-start;
        flex-direction:column;
    }

    .next-service-card{
        grid-template-columns:1fr;
        gap:0;
    }

    .next-service-date{
        padding:17px 18px;
    }

    .next-service-date strong{
        margin-top:3px;
        font-size:1.05rem;
    }

    .next-service-body{
        padding:19px 18px 12px;
    }

    .next-service-action{
        padding:0 18px 18px;
    }

    .next-service-action .btn{
        width:100%;
    }

    .next-service-empty{
        align-items:flex-start;
        flex-direction:column;
    }

    .next-service-empty .btn{
        width:100%;
    }

    .home-overview-grid{
        grid-template-columns:1fr;
    }

    .home-overview-card{
        min-height:66px;
    }

    .home-upcoming-row{
        grid-template-columns:92px minmax(0,1fr) auto;
        gap:11px;
    }

    .home-secondary-grid{
        margin-top:24px;
    }

    .home-referral-card{
        grid-template-columns:1fr;
    }

    .home-referral-code,
    .home-referral-stats,
    .referral-details{
        grid-column:1;
    }

    .home-referral-stats{
        gap:7px 14px;
    }

    .support-compose-grid{
        gap:12px;
    }
}

@media(max-width:420px){
    .home-command-bar{
        grid-template-columns:1fr 1fr;
    }

    .home-command{
        min-height:96px;
    }

    .client-brand{
        font-size:.78rem;
    }

    .header-account-link{
        max-width:110px;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .client-mobile-nav a{
        font-size:.59rem;
    }

    .service-heading-row{
        align-items:flex-start;
    }

    .service-heading-row .badge{
        flex:0 0 auto;
    }
}


.section-header[id],
#coordonnees,
#ecrire,
#probleme,
#conversations{
    scroll-margin-top:92px;
}

@media(max-width:760px){
    .client-mobile-nav a.active{
        background:#f0eee7;
        color:#111;
    }

    .client-mobile-nav a.active:not(.mobile-booking-link):after{
        content:"";
        position:absolute;
        left:50%;
        bottom:4px;
        width:16px;
        height:2px;
        border-radius:999px;
        background:var(--gold);
        transform:translateX(-50%);
    }
}
