.account-entry{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f7f5f1}.account-entry>.account-card{width:min(100%,540px)}.account-card{background:#fff;border:1px solid #e9e1d7;border-radius:16px;padding:30px;margin:20px 0}.account-card h1{font-size:32px}.account-card label{display:block;margin:18px 0 8px}.account-card input,.account-card select{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:12px}.account-card button{margin:8px 8px 8px 0}.account-card [role=status]{min-height:24px;overflow-wrap:anywhere}.account-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(340px,2fr);gap:24px;align-items:start}.member-row{border-top:1px solid #e9e1d7;padding:20px 0}.member-row strong,.member-row small{display:block;overflow-wrap:anywhere}.account-card ul{padding-left:20px;overflow-wrap:anywhere}@media(max-width:850px){.account-layout{grid-template-columns:1fr}.account-card{padding:22px}}
.google-login{width:100%;border:1px solid #ccc;background:#fff;color:#252525;font-weight:600;min-height:48px}.login-divider{text-align:center;color:#80776e;margin:18px 0;border-bottom:1px solid #e9e1d7;padding-bottom:16px}
.billing-card{grid-column:1/-1}.billing-head{display:flex;justify-content:space-between;gap:24px;align-items:start}.point-balance{min-width:150px;padding:18px;border-radius:14px;background:#f7f5f1;text-align:center}.point-balance strong,.point-balance span{display:block}.point-balance strong{font:400 34px Georgia,serif}.billing-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}.billing-facts p{padding:14px;background:#faf8f4;border:1px solid #eee7dc;border-radius:10px}.billing-facts span,.billing-facts strong{display:block}.billing-facts span{color:#80776e;font-size:12px;margin-bottom:5px}.point-costs{margin:0 0 24px}.point-costs summary{cursor:pointer;color:#85332d}.point-costs ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;list-style:none;padding:14px 0 0;margin:0}.point-costs li{display:flex;justify-content:space-between;border-bottom:1px solid #eee7dc;padding:8px 0}.point-packs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.point-packs button{display:flex;justify-content:space-between;align-items:center;gap:8px}.point-packs span{color:#80776e}@media(max-width:650px){.billing-head{display:block}.point-balance{margin-bottom:18px}.billing-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.point-costs ul,.point-packs{grid-template-columns:1fr}}
.session-expired{position:fixed;inset:auto 16px 16px auto;margin:0;max-width:min(420px,calc(100vw - 32px));display:flex;align-items:center;gap:14px;padding:14px 16px;color:#302a26;background:#fffdf8;border:1px solid #7b2d26;border-radius:10px;box-shadow:0 8px 24px rgba(48,42,38,.18);z-index:200}
.session-expired p{margin:0;font-size:14px;line-height:1.5}
.session-expired button{flex:none}
/* HappyPoints card v2: balance and expiry at a glance, one next step. */
.point-balance small{display:block;margin-top:6px;color:#80776e;font-size:12px}
.point-balance strong{font-size:40px;color:#2f2a25}
.point-warning{margin:16px 0 0;padding:10px 14px;border-radius:10px;background:#fff4e5;border:1px solid #f2d3a6;color:#8a4b08;font-weight:600}
.billing-card h3{margin:22px 0 10px}
.plan-cards button{flex-direction:column;align-items:flex-start;padding:16px}
.plan-cards button strong{font-size:18px}
.point-batches{margin-top:20px}
.point-batches summary{cursor:pointer;color:#85332d}
.point-batches table{width:100%;border-collapse:collapse;margin-top:10px}
.point-batches th,.point-batches td{text-align:left;padding:8px;border-bottom:1px solid #eee7dc;font-variant-numeric:tabular-nums}
.point-batches th{color:#80776e;font-weight:400;font-size:12px}
.team-page{display:grid;gap:4px}.team-page .account-card{margin:12px 0}
.team-invite fieldset{border:0;padding:0;margin:18px 0 8px}.team-invite legend{margin-bottom:8px}
.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.account-card label.role-card{position:relative;display:flex;flex-direction:column;gap:4px;margin:0;padding:14px 14px 12px;border:1px solid #e9e1d7;border-radius:12px;cursor:pointer;background:#fff}
.role-card input{position:absolute;opacity:0;pointer-events:none}.account-card .role-card input{width:auto;margin:0}
.role-card strong{font-size:16px}.role-card span{color:#5f574f;font-size:13px;line-height:1.4}.role-card small{color:#9a9087;font-size:12px}
.role-card:has(input:checked){border-color:#85332d;background:#fbf4f2;box-shadow:inset 0 0 0 1px #85332d}
.role-card:has(input:focus-visible){outline:2px solid #85332d;outline-offset:2px}
.role-card.full{opacity:.5;cursor:not-allowed}
.team-list h2 .count{display:inline-block;min-width:24px;padding:0 8px;border-radius:12px;background:#f2ece4;color:#80776e;font-size:14px;text-align:center;vertical-align:middle}
.member-head,.team-list .member-row{display:grid;grid-template-columns:40px minmax(0,1.6fr) minmax(110px,.8fr) minmax(100px,.7fr) auto;gap:12px;align-items:center}
.member-head{padding:0 0 8px;border-bottom:1px solid #e9e1d7;color:#9a9087;font-size:12px}
.team-list .member-row{padding:14px 0;border-top:0;border-bottom:1px solid #f0eae2}
.team-list .member-row select{margin:0;padding:8px}.team-list .member-row button{margin:0 0 0 6px;padding:6px 12px}
.member-row .avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f2ece4;color:#85332d;font-weight:500}
.member-row .who small{display:inline-block;margin:4px 6px 0 0;padding:1px 8px;border-radius:10px;background:#f2ece4;color:#80776e;font-size:12px}
.member-row .who small.warn{background:#fbf0dc;color:#7a5410}.member-row .who small.bad{background:#fbe7e5;color:#8f2a22}
.member-row.suspended .who strong,.member-row.suspended .avatar{opacity:.45}
.member-row .row-actions{display:flex;justify-content:flex-end;white-space:nowrap}
.member-row>[role=status]{grid-column:2/-1;margin:0;min-height:0;color:#8f2a22;font-size:13px}.member-row>[role=status]:empty{display:none}
.team-log{margin-top:18px}.team-log summary{cursor:pointer;color:#85332d}.team-log ul{list-style:none;padding:8px 0 0;margin:0}
.team-log li{padding:6px 0;border-bottom:1px solid #f4efe8;font-size:13px}.team-log time{display:inline-block;min-width:110px;color:#9a9087}
@media(max-width:700px){.member-head{display:none}.team-list .member-row{grid-template-columns:40px 1fr 1fr}.member-row .who{grid-column:2/-1}.member-row select[name=role]{grid-column:2}.member-row .row-actions{grid-column:2/-1;justify-content:flex-start}.member-row .row-actions button:first-child{margin-left:0}}
.member-row button[hidden]{display:none}
