*{box-sizing:border-box}
body.member-portal{margin:0;background:#f7f4ef;color:#302922;font:16px/1.55 system-ui,sans-serif}
.portal-header{padding:20px 24px;background:transparent;border-bottom:0}
.portal-header>a{display:block;max-width:900px;margin:auto;text-decoration:none;color:#8b242b;font:bold 24px Georgia,serif}
.portal-header .portal-logo{display:block;position:relative;overflow:hidden;width:180px;aspect-ratio:85/76;margin:0 auto;background:transparent;mix-blend-mode:multiply} .portal-logo img{position:absolute;display:block;width:117.647059%;height:auto;max-width:none;left:-8.235294%;top:-10.526316%}
.portal-main{max-width:760px;margin:40px auto;padding:0 22px}
.portal-panel{max-width:520px;margin:auto;background:#fff;padding:30px;border:1px solid #e5dcd3;border-radius:20px}
.privacy-panel{max-width:none}
.portal-main h1{font:normal 34px/1.15 Georgia,serif;margin:8px 0 20px}
.kicker{font-size:11px;font-weight:750;letter-spacing:.14em;color:#8b242b}
.portal-main label{display:flex;flex-direction:column;gap:5px;margin:16px 0;font-weight:600}
.portal-main input:not([type=checkbox]){width:100%;padding:12px;border:1px solid #bdb4aa;border-radius:8px;font:inherit;background:#fff}
.portal-main button{border:0;border-radius:9px;background:#8b242b;color:white;padding:13px 20px;font:600 16px system-ui;cursor:pointer}
.portal-main a{color:#8b242b}
.portal-main .check{flex-direction:row;align-items:flex-start;gap:12px;font-size:14px;font-weight:400}
.check input{width:18px;height:18px;flex-shrink:0}
.portal-error{padding:16px;border-radius:8px;background:#ffe5e3;color:#8a1515;margin-bottom:18px}
.portal-footer{text-align:center;padding:25px;color:#74695f;font-size:13px}
.portal-heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;margin-bottom:20px}.portal-heading h1{margin-bottom:8px}.portal-heading form{margin:0}.portal-heading button.quiet{font-size:13px;padding:4px 10px}
.portal-main button.quiet{background:transparent;color:#8b242b;padding:8px;text-decoration:underline;font-size:14px}
.privacy-document{font-size:14px}
.privacy-document h2{font-size:19px}
.privacy-preference{margin-top:32px;font-size:13px;text-align:center}
.card-hint{text-align:center;color:#6f6459;font-size:14px}
.member-card{width:100%;max-width:550px;margin:24px auto;background:linear-gradient(120deg,#fffdf7,#f4e8d3);border:1px solid #dec8a6;border-radius:24px;box-shadow:0 18px 45px #563a1921;overflow:hidden;padding:26px 30px;color:#4e2924}
.member-card-top{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #dbc5a6;padding-bottom:15px}
.member-card-top img{width:92px;height:92px;object-fit:contain}
.member-card-top>span{text-align:right;font:10px/1.7 system-ui;letter-spacing:.12em}
.member-card-top strong{font:normal 24px Georgia,serif;letter-spacing:0}
.member-card-name{font:normal 29px/1.2 Georgia,serif;margin-top:20px;overflow-wrap:anywhere}
.member-number{display:flex;gap:12px;align-items:center;margin:10px 0 18px;font:10px system-ui;letter-spacing:.09em}
.member-number strong{font-size:15px;letter-spacing:.13em}
.barcode-panel{padding:12px 16px 5px;background:#fff;border-radius:10px;text-align:center;color:#000}
.member-barcode{display:block;width:100%;height:80px}
.barcode-panel>span{font:12px monospace;letter-spacing:4px}
.member-scan{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.member-scan label{flex:1;min-width:200px}
.loyalty-member-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.loyalty-member-grid .member-card{margin-top:0}
.member-purchases{width:100%;border-collapse:collapse}
.member-purchases td,.member-purchases th{text-align:left;padding:10px;border-bottom:1px solid #eee}
.member-purchases td:last-child{text-align:right}
.loyalty-total{font-size:30px;font-weight:bold;color:#28613e}
.member-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.member-summary strong{font-size:32px}
.portal-main :focus-visible{outline:3px solid #8b242b;outline-offset:3px}
@media(max-width:600px){
.portal-main{margin:25px auto;padding:0 14px}
.portal-panel{padding:22px}
.member-card{padding:20px;border-radius:20px}
.member-card-top strong{font-size:20px}
.member-card-name{font-size:25px}
.member-card-top img{width:72px;height:72px}
.member-barcode{height:70px}
.loyalty-member-grid{grid-template-columns:1fr}
}
.member-scan .required-legend{flex-basis:100%;margin:0;font-size:12px}
.loyalty-member-grid{margin:20px 0}
@media print{
.member-portal .portal-header,.member-portal .portal-heading,.member-portal .portal-footer,.member-portal .card-hint,.member-portal .privacy-preference{display:none}
.member-portal .portal-main{margin:0;padding:0}
.member-card{box-shadow:none;break-inside:avoid}
}
.scan-card-wrap{max-width:550px;margin:0 auto 30px}
.scan-card-wrap .member-card{margin:0}
.scan-card{text-align:center}
.scan-card h2{margin:4px 0;font:28px Georgia,serif}
.scan-card p{font-size:14px;margin:10px 0}
.scan-symbol{max-width:260px;margin:22px auto 18px;padding:10px 12px;background:#fff;border-radius:8px}
.scan-symbol .member-barcode{width:100%;height:56px}
.card-scan-form{padding:14px 0;gap:8px}
.card-scan-form .required-legend{display:none}
.card-scan-form label{margin:0;font-size:13px}
.card-scan-form button{margin-bottom:0}
.loyalty-count{text-align:right;color:#786959;margin-bottom:12px}
.member-data dl{display:grid;grid-template-columns:130px 1fr;gap:14px;font-size:16px}
.member-data dt{color:#73675f}
.member-data dd{margin:0;overflow-wrap:anywhere;font-weight:600}
.member-balance{background:#edf6ef;border-color:#c8dfcd}
.balance-amount{font-size:54px;color:#28613e;font-weight:700;line-height:1.3}
.purchase-total{border-top:1px solid #c8dfcd;padding-top:20px;margin-top:25px;display:flex;justify-content:space-between;gap:15px}
.purchase-total strong{font-size:24px;color:#28613e}
.member-new-purchase{margin:20px 0}
.member-new-purchase form{display:flex;flex-wrap:wrap;align-items:end;gap:16px}
.member-new-purchase form .required-legend{width:100%;margin:0}
.member-new-purchase label{flex:1;min-width:160px;margin:0}
.member-new-purchase button{margin:0}
@media(max-width:600px){
.member-data dl{grid-template-columns:1fr;gap:5px}
.member-data dd{margin-bottom:12px}
.purchase-total{flex-direction:column}
}
.loyalty-table-wrap{overflow:auto;margin-top:20px}
.loyalty-table-wrap td,.loyalty-table-wrap th{font-size:14px}
.loyalty-table-wrap td{vertical-align:top}
.tier-head,.tier-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:10px}
.tier-head{font-size:14px;font-weight:650}
.tier-row input{width:100%;min-width:0}
.member-type-form,.redeem-form{margin-top:20px}
.member-type-form{display:flex;gap:12px;align-items:end}
.member-type-form label{flex:1;margin:0}
.wallet-credit{color:#28613e;font-weight:650}
.wallet-debit{color:#9c3333;font-weight:650}
/* Controls alineats: el marge de les etiquetes no desplaça els botons. */
.member-scan{align-items:flex-end}
.member-scan label,.member-scan button{margin:0}
.member-scan input,.member-scan button{min-height:48px}
.member-scan button{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center}
.member-form-actions,.member-row-actions{display:flex;align-items:center;gap:8px}
.member-row-actions{flex-wrap:nowrap}
.member-row-actions form,.member-row-actions button{margin:0}
.member-row-actions .button,.member-row-actions button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.member-form-actions{margin-top:22px;justify-content:flex-end}
.member-delete-button{color:#9c3333}
.members-list-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.members-list-heading h2{margin:4px 0}
.member-count-pill{display:flex;align-items:center;justify-content:center;text-align:center;gap:10px;padding:14px 22px;border:1px solid #e6d9c7;background:#faf4e9;border-radius:14px;color:#72362d}
.member-count-pill strong{font:36px/1 Georgia,serif}
.member-count-pill span{font-size:14px;line-height:1.2}
.member-privacy-card{margin:28px 0;padding:26px;border:1px solid #e5d8c5;border-radius:16px;background:#fbf7ef}
.privacy-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:18px;border-bottom:1px solid #e5d8c5;margin-bottom:20px}
.privacy-heading h2{margin:6px 0}
.privacy-heading p{margin:5px 0}
.privacy-heading button{margin:0;flex-shrink:0}
.member-privacy-card .privacy-document>h2{display:none}
.member-privacy-card .privacy-document{font-size:15px;line-height:1.7}
.member-privacy-card .privacy-document strong{color:#72362d}
#loyalty-print-sheet{display:none}
@media(max-width:640px){
.privacy-heading{align-items:flex-start;flex-direction:column}
.member-privacy-card{padding:18px}
.members-list-heading{align-items:flex-start}
.member-count-pill{padding:10px 14px}
}
@media print{
@page{size:A4;margin:15mm}
body.loyalty-print>*:not(#loyalty-print-sheet){display:none!important}
body.loyalty-print{background:white!important;font:10pt/1.4 Arial,sans-serif;color:#111}
body.loyalty-print #loyalty-print-sheet{display:block!important}
#loyalty-print-sheet header{display:flex;gap:20px;align-items:center;border-bottom:1px solid #ccc;padding-bottom:10px;margin-bottom:14px}
#loyalty-print-sheet header img{width:65px;height:65px;object-fit:contain}
#loyalty-print-sheet h1{font:bold 17pt Georgia,serif;color:#111;margin:0}
#loyalty-print-sheet h2{font-size:12pt}
#loyalty-print-sheet dl{display:grid;grid-template-columns:150px 1fr;gap:5px;border:1px solid #ccc;padding:12px}
#loyalty-print-sheet dd{margin:0;overflow-wrap:anywhere}
#loyalty-print-sheet dt{font-weight:bold}
#loyalty-print-sheet .privacy-document{font-size:9pt;line-height:1.4}
#loyalty-print-sheet p{margin:8px 0;break-inside:avoid}
#loyalty-print-sheet .printed-signature{margin-top:28px;padding:18px 0;break-inside:avoid}

}
.loyalty-home-heading{grid-column:1/-1;margin-bottom:0}
.loyalty-home-heading .button{flex-shrink:0}
.loyalty-home-heading h2{margin:0}
.prepaid-card{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:30px;margin:20px 0;border-color:#c9dce4;background:#f2f8fb}
.prepaid-card .balance-amount{color:#245c77}
.prepaid-topup label:not(.check){margin-top:0}
.prepaid-topup .check{font-size:14px}
.prepaid-topup button{margin-bottom:0}
.payment-source{display:inline-block;font-size:12px;font-weight:600;border-radius:5px;padding:4px 7px;background:#f1efeb;white-space:nowrap}
.payment-source.wallet{background:#dfeef7;color:#245c77}
.payment-source.topup{background:#e5f2ea;color:#28613e}
.member-prepaid{max-width:550px;margin:28px auto}
.member-prepaid .balance-amount{color:#245c77;font-size:42px}
.member-prepaid h2{font:24px Georgia,serif;margin-top:28px}
.member-prepaid table{font-size:13px}
.member-prepaid td:last-child{white-space:nowrap}
.wallet-pagination{display:flex;justify-content:space-between;gap:14px;margin-top:20px;font-size:14px}
@media(max-width:600px){
.prepaid-card{grid-template-columns:1fr;gap:14px}
.member-prepaid td,.member-prepaid th{padding:8px 4px}
.member-prepaid table{font-size:12px}
}
@media print{
.member-portal .member-prepaid{display:none}
}
.member-number-badge{display:inline-block;padding:7px 10px;border:1px solid #d7b8b8;border-radius:7px;background:#faf0ed;color:#7d252b;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.06em;white-space:nowrap;text-decoration:none}
.member-number-badge:hover{background:#f4e1dc;text-decoration:underline}
.members-directory th:nth-child(n+7):nth-child(-n+10),.members-directory td:nth-child(n+7):nth-child(-n+10){text-align:center;vertical-align:middle;font-variant-numeric:tabular-nums}
.members-directory td:nth-child(n+7):nth-child(-n+10){white-space:nowrap}
.loyalty-overview{display:grid;grid-template-columns:minmax(300px,440px) repeat(2,minmax(0,1fr));gap:24px;align-items:start;margin:24px 0}
.loyalty-overview-scanner .scan-card-wrap{margin:0}
.loyalty-overview-scanner .member-card{margin:0 0 16px}
.loyalty-stat-column{min-width:0;padding:22px;border:1px solid #d8e5dc;border-radius:20px;background:#f3f8f4}
.loyalty-stat-column.business{border-color:#d9e4ed;background:#f2f6fa}
.loyalty-stat-column h3{margin:0 0 16px;font-size:23px;color:#285d43}
.loyalty-stat-column.business h3{color:#315a78}
.loyalty-stat-column dl{margin:0;display:grid;gap:12px}
.loyalty-stat-column dl>div{padding:18px 22px;border:1px solid #e7dfd7;border-radius:16px;background:#fff}
.loyalty-stat-column dl>div:nth-child(3){background:#edf6f0;border-color:#cfe5d6}
.loyalty-stat-column.business dl>div:nth-child(3){background:#eef5fa;border-color:#d5e4ef}
.loyalty-stat-column dt{font-size:15px;font-weight:650;margin-bottom:8px}
.loyalty-stat-column dd{margin:0;font-size:26px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;color:#285d43}
.loyalty-stat-column.business dd{color:#315a78}
@media(max-width:1100px){
.loyalty-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
.loyalty-overview-scanner{grid-column:1/-1;max-width:440px;width:100%}
}
@media(max-width:650px){
.loyalty-overview{grid-template-columns:1fr}
.loyalty-stat-column dl>div{padding:16px 20px}
}
.loyalty-stat-help{display:block;margin-top:7px;color:#716c65;font-size:13px;font-weight:400;line-height:1.45;white-space:normal}
.member-detail-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:28px;margin-bottom:24px}
.member-detail-top .scan-card-wrap{margin:0}
.member-detail-top .member-new-purchase{margin:0}
.member-detail-top .member-new-purchase form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.member-detail-top .member-new-purchase .required-legend,.member-detail-top .member-new-purchase label:last-of-type{grid-column:1/-1}
.member-detail-top .member-new-purchase label{min-width:0}
.member-detail-top .member-new-purchase button{grid-column:1/-1;justify-self:end}
@media(max-width:850px){
.member-detail-top{grid-template-columns:1fr}
.member-detail-top>.member-new-purchase{width:100%}
}
@media(max-width:480px){
.member-detail-top .member-new-purchase form{grid-template-columns:1fr}
}
.balance-icon{display:block;width:42px;height:42px;margin-bottom:14px;color:#28613e}
.prepaid-card .balance-icon{color:#245c77}
.member-detail-card .scan-card-wrap{margin-left:0;width:100%}
.member-detail-navigation{display:flex;justify-content:flex-end;margin-bottom:20px}
.member-identity .scan-card-wrap{max-width:550px;margin:0 auto 24px}
.member-identity dl{margin:24px 0}
.member-detail-top>.prepaid-card{grid-template-columns:1fr;margin:0;gap:20px}
.member-identity{padding:0;overflow:hidden}
.member-identity .scan-card-wrap{max-width:none;margin:0}
.member-identity .member-card{max-width:none;width:100%;margin:0;border:0;border-bottom:1px solid #dec8a6;border-radius:0;box-shadow:none}
.member-identity dl{margin:24px}
.member-identity>.button{margin:0 24px 24px}
.member-detail-top{align-items:stretch}
.member-detail-top>.card{height:100%;box-sizing:border-box}
.member-detail-top .member-new-purchase form{grid-template-columns:1fr;gap:24px}
.member-detail-top .member-new-purchase label{font-size:20px;gap:10px}
.member-detail-top .member-new-purchase input,.member-detail-top .member-new-purchase select{min-height:64px;padding:15px 18px;font-size:23px;line-height:1.4;width:100%}
.member-detail-top .member-new-purchase button{font-size:20px;min-height:60px;padding:14px 26px}
.member-detail-top>.prepaid-card{align-content:start}
.card .loyalty-box-title{font-family:Georgia,serif;font-size:32px;font-weight:400;line-height:1.2;letter-spacing:0;text-transform:none;color:#302922;margin:0 0 24px}
@media(max-width:600px){
.card .loyalty-box-title{font-size:28px}
}
.member-detail-top>.member-balance,.member-detail-top>.prepaid-card{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:28px;border-radius:18px}
.member-detail-top .redeem-form,.member-detail-top .prepaid-topup{margin-top:auto;padding-top:24px}
.member-detail-top .redeem-form label:not(.check),.member-detail-top .prepaid-topup label:not(.check){display:flex;flex-direction:column;font-size:20px;font-weight:600;gap:10px;margin:0 0 20px}
.member-detail-top .redeem-form input:not([type=checkbox]),.member-detail-top .prepaid-topup input:not([type=checkbox]){min-height:64px;padding:15px 18px;font-size:23px;line-height:1.4;width:100%;box-sizing:border-box}
.member-detail-top .redeem-form button,.member-detail-top .prepaid-topup button{font-size:20px;min-height:60px;padding:14px 26px;margin:0}
.member-detail-top .prepaid-topup .check{margin:0 0 20px;line-height:1.5}
@media(max-width:600px){
.member-detail-top>.member-balance,.member-detail-top>.prepaid-card{padding:22px}
}
.member-detail-top .redeem-form input:not([type=checkbox]),.member-detail-top .prepaid-topup input:not([type=checkbox]){width:50%;max-width:none;min-width:0}
@media(max-width:600px){
.member-detail-top .redeem-form input:not([type=checkbox]),.member-detail-top .prepaid-topup input:not([type=checkbox]){width:100%}
}
.member-detail-top .redeem-form .check,.member-detail-top .prepaid-topup .check{display:flex;align-items:flex-start;gap:10px;margin:0 0 20px;font-size:14px;font-weight:400;line-height:1.5}
.member-detail-top .redeem-form .help,.member-detail-top .prepaid-topup .help{margin:14px 0 0;line-height:1.5}
.member-transactions .transaction-money{display:block;width:100%;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.transaction-filter{max-width:620px;margin-bottom:20px}
.transaction-filter label{margin:0}
.transaction-filter button{margin:0}
.member-transactions .payment-source.discount{background:#edf6ef;color:#28613e;border:1px solid #c8dfcd}
.member-transactions .payment-source.wallet,.member-transactions .payment-source.topup{background:#f2f8fb;color:#245c77;border:1px solid #c9dce4}
.member-transactions .wallet-credit,.member-transactions .wallet-debit{color:#28613e;background:#edf6ef}
.member-transactions tbody td:nth-child(10){color:#245c77;background:#f2f8fb;font-weight:650}
.member-identity{display:flex;flex-direction:column}
.member-identity .scan-card-wrap{flex-shrink:0}
.member-identity dl{grid-template-columns:minmax(155px,.8fr) minmax(0,2fr);column-gap:24px;row-gap:0;margin:20px 24px 26px}
.member-identity dt,.member-identity dd{padding:14px 0;border-bottom:1px solid #eee8e1;align-content:center}
.member-identity dt{display:flex;align-items:center;gap:12px;font-size:15px}
.member-identity dd{font-size:17px}
.member-contact-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:#f7f0e7;color:#895a36}
.member-contact-icon svg{width:20px;height:20px}
.member-identity>.button{margin-top:auto;align-self:flex-start}
.member-identity dt:last-of-type,.member-identity dd:last-of-type{border-bottom:0}
@media(max-width:600px){
.member-identity dl{grid-template-columns:1fr;gap:0}
.member-identity dt{padding-bottom:4px;border:0}
.member-identity dd{padding:0 0 14px 48px;margin:0}
}
.reward-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}
.reward-heading .balance-icon{margin:0}
.reward-tier{text-align:right;color:#28613e}
.reward-tier>span{display:block;font-size:14px;margin-bottom:4px}
.reward-tier>strong{display:block;font-size:46px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:600px){
.reward-tier>strong{font-size:36px}
}
.card-tier-incentive{display:flex;align-items:center;gap:22px;padding:16px 18px;margin:18px 0;border:1px solid #dbc5a6;border-radius:12px;background:#fff9ed}
.card-tier-incentive>div{flex-shrink:0}
.card-tier-incentive span{display:block;font-size:12px}
.card-tier-incentive strong{font-size:30px;white-space:nowrap;color:#28613e}
.card-tier-incentive p{margin:0;font-size:16px;line-height:1.45}
.card-tier-incentive small{display:block;margin-top:5px;font-size:12px;color:#73675f}
@media(max-width:480px){
.card-tier-incentive{flex-direction:column;align-items:flex-start;gap:10px}
}
.purchase-heading{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.purchase-icon{width:42px;height:42px;flex-shrink:0;color:#28613e}
.reward-tier{padding:14px 20px;border:1px solid #bfdac8;border-radius:14px;background:rgba(255,255,255,.72);text-align:center}
.reward-tier>span{margin-bottom:6px}
.member-detail-top .balance-icon,.member-detail-top .purchase-icon{width:56px;height:56px}
.member-detail-top .reward-heading,.member-detail-top .wallet-heading{height:112px;flex-shrink:0;margin:0 0 16px}
.member-detail-top .wallet-heading .balance-icon{margin:0}
.member-detail-top .member-balance>.loyalty-box-title,.member-detail-top .prepaid-card>div>.loyalty-box-title{min-height:1.2em;margin:0 0 24px}
.members-directory{table-layout:fixed;min-width:1300px}
.members-directory th,.members-directory td{overflow-wrap:anywhere;vertical-align:middle}
.members-directory th:nth-child(2){width:15%}
.members-directory th:nth-child(6){width:15%}
.members-directory th:last-child{width:220px}
.members-directory .member-list-name{font-size:16px;line-height:1.35;font-weight:600;text-decoration:none}
.members-directory .member-list-name:hover{ text-decoration:none}
.members-directory .member-row-actions{flex-wrap:nowrap;justify-content:flex-start}
.members-directory .member-row-actions>*{flex-shrink:0}
.members-directory .member-row-actions .button,.members-directory .member-row-actions button{padding:10px 12px;font-size:15px}
.members-directory td:nth-child(n+7):nth-child(-n+10){white-space:normal}
.members-directory .member-number-badge{font-size:14px;letter-spacing:.02em;padding:6px}
.loyalty-table-wrap{max-width:100%}
.members-directory th:nth-child(n+7):nth-child(-n+10){text-align:center}
.member-transactions th:nth-child(n+4),.member-transactions td:nth-child(n+4){text-align:center;vertical-align:middle}


.install-panel{max-width:520px;margin:22px auto;padding:24px;border:1px solid #dfcfb7;border-radius:20px;background:#faf2e4}.install-heading{display:flex;gap:14px;align-items:flex-start}.install-heading svg{width:36px;height:36px;flex-shrink:0;color:#8b242b}.install-heading h2{font:23px Georgia,serif;margin:0 0 8px}.install-heading p{font-size:14px;margin:0 0 18px;color:#685d53}.install-panel button{width:100%;letter-spacing:.04em}.install-help{font-size:14px;line-height:1.5;margin:12px 0 0}.install-help:empty{display:none}.install-panel[hidden]{display:none}

@media(max-width:600px){.member-portal .portal-header{padding:10px 16px}.portal-header .portal-logo{width:90px}.member-portal .portal-main{margin-top:20px}}

.login-motto{text-align:center;font:17px/1.5 Georgia,serif;margin:12px 0 0}.card-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.card-metric{display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0;padding:16px 8px;border:1px solid #dbc5a6;border-radius:12px;background:#fffaf2;text-align:center}.card-metric.rewards{background:#edf7ef;border-color:#cce0d1}.card-metric.prepaid{background:#edf5fa;border-color:#c9deec}.card-metric span{display:flex;justify-content:center;align-items:center;gap:5px;font-size:12px;min-height:30px}.card-metric strong{font-size:clamp(16px,2.5vw,27px);white-space:nowrap;color:#28613e}.card-metric.prepaid strong{color:#255e7a}.card-metric svg{width:18px;height:18px;flex-shrink:0}.card-benefits p{grid-column:1/-1;margin:4px 0 0;font-size:14px}.card-benefits small{display:block;font-size:12px;color:#73675f}@media(max-width:450px){.card-benefits{gap:6px}.card-metric{padding:12px 3px}.card-metric span{font-size:10px;gap:3px}.card-metric svg{width:14px;height:14px}.card-metric strong{font-size:16px}}

.purchase-amount-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:18px}.member-detail-top .purchase-amount-row>label{grid-column:auto}.member-detail-top .purchase-amount-row .purchase-bonus{display:flex;align-items:center;gap:10px;font-size:16px;padding:12px;background:#edf7ef;border:1px solid #cce0d1;border-radius:10px;min-height:64px}.member-detail-top .purchase-bonus input{width:22px;height:22px;min-height:22px;padding:0;flex-shrink:0}@media(max-width:480px){.purchase-amount-row{grid-template-columns:1fr}}

.member-transactions{width:100%}.transaction-delete-form{margin:0}.member-transactions .transaction-delete-button{font-size:13px;white-space:nowrap;padding:8px 10px;min-height:36px}.loyalty-table-wrap{min-width:0;overflow-x:auto}.member-transactions th,.member-transactions td{padding-left:8px;padding-right:8px}
