.portal-body{min-height:100vh;background:var(--ivory)}.portal-body main{min-height:70vh}.portal-nav{display:flex;gap:30px}.portal-nav a,.logout-form button{border:0;background:none;color:var(--charcoal);font-size:14px;font-weight:500;cursor:pointer}.logout-form{margin:0}.logout-form button{color:var(--taupe)}.portal-footer{padding:28px 0;background:#1d120d;color:rgba(255,255,255,.75)}.portal-footer>div{display:flex;justify-content:space-between}.portal-hero{position:relative;overflow:hidden;padding:76px 0 68px;background:linear-gradient(120deg,#f4eee4,#faf7f1 54%,#eee4d4)}.portal-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(183,147,72,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(183,147,72,.055) 1px,transparent 1px);background-size:72px 72px}.portal-hero>div{position:relative}.portal-hero.compact{padding:56px 0}.portal-hero h1,.portal-auth h1{margin:0;color:var(--espresso);font:500 clamp(38px,5vw,60px)/1.05 var(--serif)}.portal-auth h1 em{color:var(--champagne);font-weight:400}.portal-hero p:last-child,.portal-auth>div>p{color:var(--taupe);font-size:17px}.portal-section{padding:64px 0 96px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:-96px;position:relative}.metric-grid article{padding:26px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.metric-grid small{display:block;color:var(--taupe);text-transform:uppercase;letter-spacing:.08em}.metric-grid strong{display:block;margin-top:8px;color:var(--espresso);font-size:27px}.metric-grid .dark{background:var(--espresso)}.metric-grid .dark small{color:var(--gold-light)}.metric-grid .dark strong{color:#fff}.portal-heading{display:flex;align-items:center;justify-content:space-between;margin:55px 0 24px}.portal-heading .eyebrow{margin-bottom:8px}.portal-heading h2,.detail-card h2{margin:0;color:var(--espresso);font-size:28px}.outline-button{padding:11px 18px;border:1px solid var(--champagne);border-radius:999px;color:var(--champagne);font-weight:600}.order-list{display:grid;gap:14px}.order-card{display:flex;justify-content:space-between;gap:30px;padding:24px 26px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 10px 35px rgba(52,35,24,.06)}.order-card small,.order-card p{color:var(--taupe)}.order-card h3{margin:2px 0;color:var(--espresso);font-size:23px}.order-card p{margin:0}.order-meta{display:flex;align-items:flex-end;flex-direction:column;gap:7px}.order-meta a,.payment-row a{color:var(--champagne);font-weight:600}.status-badge{display:inline-block;padding:4px 10px;border:1px solid rgba(183,147,72,.4);border-radius:999px;color:#735a25;background:#fbf5e8;font-size:13px;font-weight:600}.status-reservation_confirmed,.status-fully_paid,.status-delivered{color:#326b37;background:#edf7ed;border-color:#a5c7a7}.status-cancelled,.status-expired,.status-payment_failed{color:#8b332c;background:#fff0ee;border-color:#ddb0ab}.portal-empty{text-align:center;padding:65px;border:1px dashed var(--champagne);border-radius:14px;background:var(--cream)}.portal-empty>span{font-size:35px;color:var(--champagne)}.portal-empty h3{font-size:27px;margin:8px}.portal-auth{display:grid;place-items:center;min-height:calc(100vh - 190px);padding:60px 20px;background:linear-gradient(120deg,#f4eee4,#faf7f1 54%,#eee4d4)}.auth-card,.profile-card{width:min(590px,100%);padding:42px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.auth-card .field{margin:28px 0 18px}.auth-card .submit-button,.profile-card .submit-button{width:100%}.resend-form{text-align:center;margin-top:18px}.resend-form button{border:0;background:none;color:var(--champagne);cursor:pointer;font-weight:600}.portal-messages{padding-top:15px}.portal-messages p{padding:12px 16px;border-radius:8px;background:#edf7ed;color:#326b37}.portal-messages .error{background:#fff0ee;color:#8b332c}.profile-card{width:min(840px,100%);margin:auto}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px}.detail-card{margin-bottom:20px;padding:28px;border:1px solid var(--line);border-radius:14px;background:#fff}.detail-card .portal-heading{margin:0 0 15px}.detail-row,.payment-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.detail-row small,.payment-row small,.timeline-row small{display:block;color:var(--taupe)}.timeline-row{display:flex;gap:15px;padding:12px 0}.timeline-row i{width:10px;height:10px;margin-top:8px;border-radius:50%;background:var(--champagne)}.money-card{height:max-content;padding:27px;border-radius:14px;background:var(--espresso);color:rgba(255,255,255,.8);box-shadow:var(--shadow)}.money-card>p{color:var(--gold-light);text-transform:uppercase;letter-spacing:.08em}.money-card h2{color:#fff}.money-card>div{display:flex;justify-content:space-between;padding:10px 0}.money-card .saving{color:var(--gold-light)}.money-card .total{margin:9px 0;padding:16px 0;border-block:1px solid rgba(255,255,255,.15);color:#fff;font-size:18px}.money-card .button{width:100%;margin-top:20px}.field input:disabled{background:var(--cream);color:var(--taupe)}
@media(max-width:1000px){.portal-nav{display:none}.detail-layout{grid-template-columns:1fr}.money-card{grid-row:1}.logout-form{margin-left:12px}}
@media(max-width:760px){.portal-body .nav-shell{width:calc(100% - 28px)}.portal-body .nav-cta{display:inline-flex;margin-left:auto;margin-right:4px;padding:9px 12px}.portal-body .logout-form button{font-size:12px}.portal-hero{padding:50px 0}.portal-section{padding:50px 0 75px}.metric-grid{grid-template-columns:1fr;margin-top:-70px}.metric-grid article{padding:20px}.portal-heading{margin-top:38px}.order-card{flex-direction:column}.order-meta{align-items:flex-start}.auth-card,.profile-card{padding:27px 20px}.detail-card{padding:21px 18px}.payment-row{align-items:flex-start;flex-wrap:wrap}.portal-empty{padding:45px 20px}}
@media(max-width:430px){.announcement-bar{padding-inline:8px}.portal-body .brand-logo{width:58px}.portal-body .nav-cta{font-size:10px}.logout-form button{padding:0}.metric-grid strong{font-size:23px}.detail-row{align-items:flex-start}.portal-footer>div{flex-direction:column;gap:8px}}
