:root{--portal-accent:var(--primary,#1f4f78);--portal-accent-contrast:#fff;--portal-danger:#b42318;--portal-border:#dbe3eb;--portal-muted:#617085;--portal-bg:#f3f6f9;--portal-card:#fff}
*{box-sizing:border-box}.customer-portal-page{margin:0;min-height:100vh;background:radial-gradient(circle at top,#fff 0,var(--portal-bg) 52%);color:#172033;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.portal-shell{width:min(100% - 28px,520px);margin:clamp(24px,7vh,72px) auto}.portal-account-shell{width:min(100% - 28px,980px);margin-top:28px}.portal-card,.portal-header,.booking-card,.portal-dialog{background:#fff;color:#172033;border:1px solid var(--portal-border);border-radius:18px;box-shadow:0 14px 38px rgba(15,35,55,.09)}.portal-card{padding:clamp(20px,5vw,34px)}.portal-login-card{overflow:hidden;border-top:5px solid var(--portal-accent)}.portal-brand{display:flex;align-items:center;gap:16px}.portal-brand h1{margin:3px 0 6px;color:#172033;font-size:clamp(1.65rem,5vw,2.15rem);line-height:1.12;letter-spacing:-.025em}.portal-brand-compact h1{font-size:1.55rem;margin-bottom:0}.portal-company-name{margin:0;color:var(--portal-accent);font-weight:800;font-size:.86rem;letter-spacing:.04em;text-transform:uppercase}.portal-subheading,.portal-muted{margin:0;color:var(--portal-muted);line-height:1.55}.portal-logo-wrap{display:grid;place-items:center;flex:0 0 68px;width:68px;height:68px;border-radius:16px;background:#f7f9fb;border:1px solid var(--portal-border);overflow:hidden}.portal-logo{display:block;max-width:100%;max-height:100%;object-fit:contain;padding:6px}.portal-logo-fallback{display:grid;place-items:center;width:100%;height:100%;background:var(--portal-accent);color:var(--portal-accent-contrast);font-size:1.25rem;font-weight:900}.portal-header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 24px;border-top:4px solid var(--portal-accent)}.portal-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;margin:20px 0;background:#e9eef3;border-radius:13px;overflow-x:auto}.portal-tabs button{min-height:44px;padding:9px 14px;border:0;border-radius:10px;background:transparent;color:#344255;font-weight:750;white-space:nowrap;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.portal-tabs button:hover{background:rgba(255,255,255,.65)}.portal-tabs button.active{background:#fff;color:var(--portal-accent);box-shadow:0 2px 8px rgba(15,35,55,.12)}.portal-form{display:grid;gap:8px}.portal-form label{margin-top:7px;font-size:.9rem;font-weight:750;color:#344255}.portal-form input{width:100%;min-height:48px;padding:11px 13px;border:1px solid #bdc9d5;border-radius:10px;background:#fff;color:#172033;font:inherit;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.portal-form input:focus{border-color:var(--portal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent) 20%,transparent)}.portal-form input:disabled{background:#eef2f5;color:#68778a}.password-field{position:relative}.password-field input{padding-right:68px}.password-toggle{position:absolute;right:5px;top:5px;min-height:38px;padding:0 10px;border:0;background:transparent;color:var(--portal-accent);font-weight:750;cursor:pointer}.portal-primary-button,.portal-secondary-button,.booking-actions button,.portal-form button{min-height:46px;border:0;border-radius:10px;padding:11px 17px;font:inherit;font-weight:800;cursor:pointer;transition:filter .16s ease,transform .16s ease,box-shadow .16s ease}.portal-primary-button,.booking-actions button,.portal-form button{background:var(--portal-accent);color:var(--portal-accent-contrast)}.portal-primary-button:hover,.booking-actions button:hover,.portal-form button:hover{filter:brightness(.92);box-shadow:0 5px 13px rgba(15,35,55,.15)}.portal-secondary-button{background:#edf2f6;color:#26374a}.portal-secondary-button:hover{background:#dfe7ee}.portal-tabs button:focus-visible,.portal-primary-button:focus-visible,.portal-secondary-button:focus-visible,.booking-actions button:focus-visible,.portal-form button:focus-visible,.link-button:focus-visible,.portal-back-link:focus-visible,.dialog-close:focus-visible{outline:3px solid color-mix(in srgb,var(--portal-accent) 35%,transparent);outline-offset:2px}.link-button{display:block;margin:13px auto 0;padding:8px;border:0;background:transparent;color:var(--portal-accent);font:inherit;font-weight:750;cursor:pointer}.portal-back-link{display:block;margin-top:20px;padding-top:18px;border-top:1px solid var(--portal-border);color:var(--portal-muted);text-align:center;text-decoration:none}.portal-back-link:hover{color:var(--portal-accent)}.portal-notice{margin:14px 0;padding:12px 14px;border:1px solid #b8d3eb;border-radius:11px;background:#edf7ff;color:#174f78;line-height:1.45}.portal-notice[data-kind="error"]{border-color:#f2b8b5;background:#fff1f0;color:#8f2119}.portal-notice[data-kind="success"]{border-color:#a9d7bd;background:#edf9f2;color:#17633a}.booking-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-card{padding:20px;min-width:0;transition:transform .16s ease,box-shadow .16s ease}.booking-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(15,35,55,.12)}.booking-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.booking-reference{color:var(--portal-accent);font-size:1.08rem}.booking-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:18px 0}.booking-card dt,.booking-detail-item small{color:var(--portal-muted);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.035em}.booking-card dd{margin:3px 0 0;line-height:1.4;overflow-wrap:anywhere}.booking-wide-field{grid-column:1/-1}.booking-actions{display:flex;gap:8px;margin-top:14px}.booking-actions button{width:100%}.portal-status{display:inline-block;padding:5px 9px;border-radius:999px;background:#edf2f6;color:#344255;font-size:.76rem;font-weight:800;white-space:nowrap}.payment-status{color:var(--portal-accent);font-weight:800}.portal-profile-card{max-width:620px}.portal-dialog{width:min(100% - 28px,760px);max-height:calc(100vh - 28px);padding:0;border:0;overflow:auto}.portal-dialog::backdrop{background:rgba(15,23,42,.62);backdrop-filter:blur(2px)}.portal-dialog-header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:#fff;border-bottom:1px solid var(--portal-border)}.dialog-close{min-height:40px;padding:8px 12px;border:0;border-radius:9px;background:#edf2f6;color:#243548;font-weight:750;cursor:pointer}#customerBookingDetail{padding:22px}.booking-detail-title{margin:0 0 18px;color:var(--portal-accent)}.booking-detail-section{margin-top:18px}.booking-detail-section h3{margin:0 0 9px;font-size:1rem}.booking-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.booking-detail-item{min-width:0;padding:11px;border:1px solid #e2e8ef;border-radius:10px;background:#fbfcfd}.booking-detail-item strong{display:block;margin-top:4px;line-height:1.4;overflow-wrap:anywhere}.customer-change-panel{margin-top:22px;padding:17px;border-radius:13px;background:#f7f9fb;border:1px solid var(--portal-border)}.customer-change-panel h3{margin-top:0}.customer-change-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.customer-change-actions{display:flex;gap:9px;margin-top:14px}.customer-change-actions button{flex:1}.customer-change-actions .danger-button{background:#fff;color:var(--portal-danger);border:1px solid #e7aaa6}.customer-change-actions .danger-button:hover{background:#fff1f0;box-shadow:none}.portal-info-panel{display:block;margin-top:14px;padding:11px 12px;border-left:4px solid var(--portal-accent);border-radius:6px;background:#edf4f8;color:#405267;line-height:1.45}.portal-empty{grid-column:1/-1;text-align:center;color:var(--portal-muted)}
@media(max-width:700px){.portal-account-shell{margin-top:14px}.portal-header{align-items:flex-start;padding:16px}.portal-header .portal-logo-wrap{width:52px;height:52px;flex-basis:52px}.portal-brand{gap:11px}.portal-account-tabs{grid-auto-columns:minmax(105px,1fr)}.booking-card-list{grid-template-columns:1fr}.customer-change-fields{grid-template-columns:1fr}.portal-dialog{width:calc(100% - 16px);max-height:calc(100vh - 16px)}#customerBookingDetail{padding:16px}.customer-change-actions{flex-direction:column}}
@media(max-width:430px){.portal-shell{width:calc(100% - 20px);margin:10px auto}.portal-login-shell{margin-top:20px}.portal-card{padding:20px 17px}.portal-logo-wrap{width:56px;height:56px;flex-basis:56px}.portal-brand h1{font-size:1.5rem}.portal-header{flex-wrap:wrap}.portal-header .portal-secondary-button{width:100%}.portal-tabs{margin:14px 0}.portal-auth-tabs button{padding-inline:8px}.booking-card{padding:17px}.booking-card dl,.booking-detail-grid{grid-template-columns:1fr}.booking-wide-field{grid-column:auto}.portal-primary-button,.portal-secondary-button,.booking-actions button,.portal-form button{width:100%}}
