.customer-command{display:grid;grid-template-columns:1.45fr .75fr;gap:18px;margin-bottom:18px}
.customer-welcome,.next-booking-card{position:relative;overflow:hidden;border:1px solid #dcece3;border-radius:22px;background:linear-gradient(135deg,#fff,#f2fbf4);box-shadow:0 24px 60px rgba(6,48,29,.12);padding:24px;animation:portalRise .42s ease both}
.customer-welcome:before,.next-booking-card:before{content:"";position:absolute;right:-40px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,#91cf33,rgba(145,207,51,0) 68%);opacity:.26}
.customer-welcome>* ,.next-booking-card>*{position:relative}
.customer-welcome h2{font:800 36px/1 var(--display);text-transform:uppercase;color:#0d3d26;margin:5px 0 10px}
.customer-welcome p:not(.eyebrow){max-width:620px;color:#66786d}
.customer-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.next-booking-card{display:grid;align-content:center;gap:8px;background:linear-gradient(140deg,#073b28,#0b7043);color:#fff}
.next-booking-card small{text-transform:uppercase;letter-spacing:.12em;color:#bceecf;font-weight:900}
.next-booking-card b{font:800 29px/1 var(--display);text-transform:uppercase}
.next-booking-card span{color:#dff4e7}
.next-booking-card em{width:max-content;font-style:normal}
.customer-portal-panels{display:grid;grid-template-columns:1.4fr .72fr;gap:18px;margin-top:22px}
.btn.danger,.btn.btn-outline.danger{border-color:#f2b6af;color:#a8342d;background:#fff4f3}
.btn.danger:hover,.btn.btn-outline.danger:hover{background:#a8342d;color:#fff;border-color:#a8342d}
@media(max-width:980px){.customer-command,.customer-portal-panels{grid-template-columns:1fr}}
.cancellation-flow{margin-top:18px;border:1px solid #dfece5;border-radius:18px;box-shadow:0 18px 48px rgba(6,48,29,.1)}
.cancel-estimate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0}
.cancel-estimate-grid span{display:block;border:1px solid #dfece5;border-radius:14px;background:linear-gradient(135deg,#fff,#f4fbf6);padding:12px}
.cancel-estimate-grid small{display:block;font-size:9px;color:#708176;text-transform:uppercase;letter-spacing:.08em}
.cancel-estimate-grid b{display:block;margin-top:5px;font-size:16px;color:#0b6239}
.cancel-note{margin:8px 0 0;color:#708176;font-size:12px}
.operation-result.error{color:#a8342d}
.cancellation-status{margin:18px 0}
@media(max-width:720px){.cancel-estimate-grid{grid-template-columns:1fr 1fr}}
