[hidden]{display:none!important}
/* warm auth + account + partner dashboard */
:root{--line-strong:rgba(33,30,25,.2)}

.auth-page{width:min(100rem,calc(100% - 2rem));margin:0 auto;padding:7rem 0 4rem}
.auth-shell{display:grid;grid-template-columns:1.05fr .95fr;min-height:36rem;border:1px solid var(--line);border-radius:2rem;overflow:hidden;background:var(--paper);box-shadow:0 2rem 5rem rgba(33,30,25,.08)}
.auth-aside{position:relative;display:flex;flex-direction:column;padding:3.2rem;background:var(--ink);color:var(--cream);overflow:hidden}
.auth-aside::after{content:"“";position:absolute;right:-.5rem;bottom:-4rem;font-family:var(--latin);font-size:22rem;line-height:1;color:rgba(246,240,228,.04);pointer-events:none}
.auth-kicker{font:600 .65rem/1 var(--mono);letter-spacing:.18em;color:var(--butter)}
.auth-aside h1{font-family:var(--serif);font-size:clamp(2.6rem,4.4vw,4rem);line-height:1.04;letter-spacing:-.045em;margin:1.2rem 0 1rem;position:relative;z-index:1}
.auth-aside h1 em{font-style:normal;color:var(--butter)}
.auth-aside p{font-size:.95rem;line-height:1.9;color:rgba(246,240,228,.72);max-width:30rem;position:relative;z-index:1}
.auth-list{list-style:none;padding:0;margin:2rem 0;border-top:1px solid rgba(246,240,228,.18);position:relative;z-index:1}
.auth-list li{display:flex;justify-content:space-between;align-items:baseline;padding:.75rem 0;border-bottom:1px solid rgba(246,240,228,.14);font-size:.85rem;color:rgba(246,240,228,.8)}
.auth-list b{font:600 1.1rem/1 var(--mono);color:var(--butter)}
.auth-quote{margin-top:auto;font-family:var(--serif);font-size:1.6rem;color:var(--cream);position:relative;z-index:1}
.auth-quote span{display:block;font:600 .6rem/1 var(--mono);letter-spacing:.16em;color:rgba(246,240,228,.5);margin-top:.6rem}
.auth-card{display:flex;flex-direction:column;justify-content:center;padding:3.2rem}
.seg{display:inline-flex;gap:.25rem;padding:.25rem;background:var(--cream);border:1px solid var(--line);border-radius:999px;align-self:flex-start;margin-bottom:1.8rem}
.seg-btn{border:0;background:transparent;border-radius:999px;padding:.5rem 1.1rem;font:600 .8rem/1 var(--sans);color:var(--muted);cursor:pointer;transition:background .15s,color .15s}
.seg-btn.on{background:var(--ink);color:var(--cream)}
.seg-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.auth-heading h2{font-family:var(--serif);font-size:2rem;line-height:1.1;letter-spacing:-.03em;margin:0 0 .5rem}
.auth-heading p{font-size:.85rem;line-height:1.75;color:var(--muted);margin:0}
.form{display:flex;flex-direction:column;gap:1rem;margin-top:1.6rem}
.field{display:flex;flex-direction:column;gap:.45rem}
.field label{font:600 .65rem/1 var(--mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.field input,.field select{width:100%;height:3rem;border:1px solid var(--line-strong);border-radius:.9rem;background:var(--cream);padding:0 1rem;font:500 .95rem/1 var(--sans);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s,background .15s}
.field input:focus,.field select:focus{border-color:var(--accent-text);background:var(--paper);box-shadow:0 0 0 4px rgba(223,90,53,.12)}
.field input[aria-invalid="true"]{border-color:var(--accent-text);background:var(--peach)}
.input-wrap{position:relative}
.input-wrap input{padding-right:4.8rem}
.eye{position:absolute;right:.55rem;top:50%;transform:translateY(-50%);border:1px solid var(--line);background:var(--paper);border-radius:.6rem;padding:.35rem .55rem;font:600 .6rem/1 var(--mono);letter-spacing:.06em;color:var(--muted);cursor:pointer}
.eye:hover{color:var(--ink)}
.field-hint{font:500 .65rem/1.6 var(--mono);color:var(--faint)}
.lbl-opt{font-weight:400;color:var(--faint);letter-spacing:.04em}
.form-row{display:flex;align-items:center;gap:1rem;margin-top:.3rem}
.form-row .btn{flex:1}
.btn-block{width:100%}
.link{border:0;background:none;padding:0;font:600 .78rem/1.4 var(--sans);color:var(--accent-text);cursor:pointer;text-align:left}
.link:hover{text-decoration:underline;text-underline-offset:3px}
.alert{padding:.8rem 1rem;border:1px solid rgba(94,122,94,.35);border-radius:.8rem;background:var(--sage);color:var(--moss-text);font-size:.8rem;line-height:1.65;margin-top:.2rem}
.alert.bad{border-color:rgba(223,90,53,.35);background:var(--peach);color:var(--accent-text)}
.alert[hidden]{display:none}
.form-intro{font-size:.85rem;line-height:1.7;color:var(--ink-2);margin:0 0 .2rem}
.form-note{font-size:.8rem;line-height:1.6;color:var(--muted);margin:.2rem 0 0}
.form-links{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.8rem;font:600 .75rem/1.4 var(--mono)}
.form-links a{color:var(--accent-text)}
.strength{display:flex;gap:.3rem;margin-top:.35rem}
.strength i{height:.22rem;flex:1;border-radius:999px;background:var(--line)}
.strength i.on{background:var(--moss)}
.strength i.mid{background:var(--ochre)}
.strength i.weak{background:var(--persimmon)}
.strength-text{font:500 .62rem/1 var(--mono);color:var(--faint)}

/* account panel */
.acct-shell{display:grid;grid-template-columns:17rem minmax(0,1fr);gap:1rem;align-items:start}
.acct-side{position:sticky;top:6.8rem;background:var(--paper);border:1px solid var(--line);border-radius:1.5rem;padding:1.6rem}
.acct-avatar{width:3.4rem;height:3.4rem;border-radius:50%;background:var(--ink);color:var(--butter);display:grid;place-items:center;font:600 1.2rem/1 var(--mono);margin-bottom:1rem}
.acct-side h2{font-family:var(--serif);font-size:1.45rem;line-height:1.1;margin:0 0 .3rem}
.acct-sub{font:500 .7rem/1.5 var(--mono);color:var(--muted);margin:0;overflow-wrap:anywhere}
.acct-nav{display:flex;flex-direction:column;gap:.1rem;margin:1.2rem 0;border-top:1px solid var(--line-2);padding-top:1rem}
.acct-nav a{padding:.65rem .6rem;border-radius:.6rem;font-size:.85rem;color:var(--muted)}
.acct-nav a:hover,.acct-nav a.on{background:var(--cream);color:var(--ink)}
.acct-main{min-width:0;display:flex;flex-direction:column;gap:1rem}
.acct-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border-bottom:1px solid var(--line);padding:.4rem 0 1.5rem}
.eyebrow{font:600 .62rem/1 var(--mono);letter-spacing:.16em;color:var(--accent-text)}
.acct-head h1{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.4rem);line-height:1.03;letter-spacing:-.04em;margin:.5rem 0 .4rem}
.acct-head p{font-size:.85rem;line-height:1.7;color:var(--muted);margin:0}
.badge{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.45rem .7rem;font:600 .62rem/1 var(--mono);letter-spacing:.06em;color:var(--muted);background:var(--paper);white-space:nowrap}
.badge.ok{color:var(--moss-text);border-color:rgba(94,122,94,.35);background:var(--sage)}
.badge.warn{color:var(--warning-text);border-color:rgba(168,115,31,.35);background:rgba(242,200,121,.25)}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.dash-main .stat-grid{grid-template-columns:repeat(4,1fr)}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:1.2rem;padding:1.2rem}
.stat span{display:block;font:600 .6rem/1 var(--mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.stat b{display:block;font:600 2rem/1.1 var(--mono);letter-spacing:-.03em;margin:.55rem 0 .3rem}
.stat small{font:500 .58rem/1 var(--mono);letter-spacing:.12em;color:var(--faint)}
.acct-card{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;background:var(--paper);border:1px solid var(--line);border-radius:1.25rem;padding:1.5rem}
.acct-card h2{font-family:var(--serif);font-size:1.2rem;line-height:1.2;margin:0 0 .35rem}
.acct-card p{font-size:.82rem;line-height:1.7;color:var(--muted);margin:0}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;flex-wrap:wrap}
.card-head .mono{font:500 .65rem/1 var(--mono);color:var(--faint)}
.points-list{width:100%;margin-top:.8rem}
.point-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line-2);font-size:.82rem}
.point-row:last-child{border:0}
.point-row .reason{color:var(--ink-2)}
.point-row .date{font:500 .65rem/1 var(--mono);color:var(--faint);margin-left:.6rem}
.point-row b{font:600 .85rem/1 var(--mono)}
.point-row b.plus{color:var(--moss-text)}
.point-row b.minus{color:var(--accent-text)}
.empty{font-size:.82rem;line-height:1.7;color:var(--muted);padding:1rem 0;margin:0}
.invite-row{display:flex;align-items:center;gap:.6rem;margin-top:.8rem}
.invite-row code{font:600 .85rem/1 var(--mono);background:var(--cream);border:1px solid var(--line);border-radius:.6rem;padding:.55rem .7rem}
.dash-main{min-width:0;display:flex;flex-direction:column;gap:1rem}
.dash-main .acct-card{display:block}
.dash-main .acct-card > .card-head{margin-bottom:.8rem}
.data-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line-2);font-size:.84rem}
.data-row:last-child{border:0}
.data-row .dr-main b{display:block;font-size:.9rem}
.data-row .dr-main span{font:500 .65rem/1.5 var(--mono);color:var(--muted)}
.data-row .dr-side{font:600 .72rem/1 var(--mono);color:var(--muted);text-align:right}
.cert-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--line-2)}
.cert-row:last-child{border:0}
.cert-row b{font-size:.9rem}
.cert-level{display:inline-block;margin-left:.5rem;font:600 .6rem/1 var(--mono);color:var(--accent-text);border:1px solid var(--line);border-radius:999px;padding:.2rem .5rem}
.cert-status{display:block;font-size:.7rem;color:var(--muted);margin-top:.25rem}
.cert-apply{margin-top:1rem;border-top:1px solid var(--line-2);padding-top:1rem}
.cert-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.cert-grid .field{gap:.3rem}
.cert-grid .field input,.cert-grid .field select{height:2.6rem;font-size:.85rem}
.recharge-row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.8rem}
.recharge-row input{width:8rem;height:2.8rem;border:1px solid var(--line-strong);border-radius:.7rem;background:var(--cream);padding:0 .8rem;font:500 .9rem/1 var(--mono);color:var(--ink);outline:none}
.recharge-row input:focus{border-color:var(--accent-text)}
.pay-card{margin-top:1rem;border:1px solid var(--line);border-radius:1rem;padding:1rem;background:#fdf8ef}
.pay-head{display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}
.pay-qr{display:block;width:12rem;height:12rem;margin:.8rem auto;background:#fff;border:1px solid var(--line);border-radius:.7rem;padding:.4rem}
.pay-code{display:block;word-break:break-all;font:500 .75rem/1.6 var(--mono);background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:.7rem;margin:.6rem 0}
.pay-status{margin-top:.6rem;font:500 .72rem/1.5 var(--mono);color:var(--accent-text)}
.skeleton{height:.9rem;border-radius:.4rem;background:linear-gradient(90deg,var(--cream),var(--paper-2),var(--cream));background-size:200% 100%;animation:sk 1.2s linear infinite;margin:.6rem 0}
@keyframes sk{to{background-position:-200% 0}}
@media(max-width:1100px){.acct-shell{grid-template-columns:1fr}.acct-side{position:static}.acct-nav{flex-direction:row;flex-wrap:wrap}.acct-nav a{flex:1 1 auto;text-align:center}.dash-main .stat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.auth-shell{grid-template-columns:1fr;min-height:0}.auth-aside{padding:2.2rem}.auth-aside h1{font-size:clamp(2.3rem,8vw,3.2rem)}.auth-list{display:none}.auth-quote{display:none}.auth-card{padding:2.2rem}.auth-page{padding:5.5rem 0 2.5rem}}
@media(max-width:600px){.auth-card{padding:1.5rem}.auth-aside{padding:1.6rem}.auth-page{padding:4.8rem 0 2rem}.stat-grid,.dash-main .stat-grid{grid-template-columns:1fr}.form-row{flex-direction:column;align-items:stretch}.form-row .btn{width:100%}.acct-card{padding:1.1rem}.acct-head{flex-direction:column}.cert-grid{grid-template-columns:1fr}.acct-nav a{flex:1 1 40%}}
@media(prefers-reduced-motion:reduce){.skeleton{animation:none}.seg-btn,.field input,.field select{transition:none}}
