@font-face{font-family:'Akkurat';src:url('/assets/fonts/akkurat-regular.ttf') format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:'Gotham';src:url('/assets/fonts/gotham-bold.ttf') format('truetype');font-weight:400 800;font-display:swap}
@font-face{font-family:'Flama Condensed';src:url('/assets/fonts/flama-condensed-medium.woff2') format('woff2');font-weight:400 700;font-display:swap}
:root{--bg:#F8F7F2;--panel:#fff;--field:#F1F0EA;--ink:#404041;--muted:#6E7074;--line:#E6E4DC;--line2:#D3D1C8;--accent:#4D4D4F;--yellow:#FEDB00;--soft:#FFF4BF;--danger:#B54331;--danger-soft:#FBEDEA;
  font-family:Akkurat,Inter,ui-sans-serif,system-ui,sans-serif;color:var(--ink)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);min-height:100%}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
.app{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;position:relative;background:var(--bg)}
@media (min-width:640px){ body{background:#ECEAE3} .app{box-shadow:0 0 0 1px var(--line);} }
.top{display:flex;align-items:center;gap:10px;padding:calc(16px + env(safe-area-inset-top)) 18px 10px;position:sticky;top:0;background:var(--bg);z-index:2}
.top img{height:40px}
.top .sp{flex:1}
.av{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--yellow);display:grid;place-items:center;font-family:Gotham,sans-serif;font-size:12px;border:0}
.scroll{flex:1;padding:4px 16px 96px}
h1{font-family:'Flama Condensed',Gotham,sans-serif;font-weight:500;font-size:30px;line-height:1.05;margin:6px 0 12px}
h2{font-family:'Flama Condensed',Gotham,sans-serif;font-weight:500;font-size:22px;margin:20px 0 8px}
.lab{font-family:Gotham,sans-serif;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted);font-size:14px;line-height:1.5}
.chips{display:flex;gap:6px;overflow:auto;margin:0 -16px 12px;padding:0 16px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips button{flex:none;border:1px solid var(--line2);background:var(--panel);border-radius:999px;padding:6px 13px;font-size:13.5px}
.chips button[aria-pressed=true],.days button[aria-pressed=true],.slots button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--yellow)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px}
.list{display:flex;flex-direction:column;gap:10px}
.mail{display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px;text-align:left;width:100%}
.mail .th{width:86px;height:54px;flex:none;border-radius:6px;border:1px solid var(--line);background:var(--field) center/cover no-repeat}
.mail .mi{flex:1;min-width:0}
.mail .sd{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mail .dt{font-size:13px;color:var(--muted);margin:2px 0 6px}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--field);color:var(--ink);white-space:nowrap}
.pill.ok{background:var(--soft)}
.pill.err{background:var(--danger-soft);color:var(--danger)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:0 16px;border-radius:12px;border:1px solid var(--line2);background:var(--panel);font-weight:600;font-size:15px;text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--yellow)}
.btn.block{width:100%}
.btn.sm{min-height:34px;font-size:13.5px;padding:0 12px;border-radius:9px}
.btn:disabled{opacity:.45;cursor:default}
.act:disabled,.lnk:disabled{opacity:.45;cursor:default}
.acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.act{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:12px;text-align:left}
.act b{font-size:15px}.act span{font-size:12.5px;color:var(--muted)}
.act svg{width:20px;height:20px;margin-bottom:4px}
.row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px}
.row:first-child{border-top:0}
.row span{color:var(--muted)}
.row b{font-weight:600;text-align:right}
.row.tot{font-weight:700}.row.tot span{color:var(--ink)}
.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:var(--panel);padding:6px 4px calc(8px + env(safe-area-inset-bottom));z-index:3}
.tabs button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11.5px;color:var(--muted);padding:5px 0;position:relative}
.tabs svg{width:22px;height:22px}
.tabs button[aria-current=true]{color:var(--ink);font-weight:700}
.tabs .dot{position:absolute;top:2px;left:calc(50% + 8px);min-width:16px;height:16px;border-radius:8px;background:var(--yellow);color:var(--ink);font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px}
svg.i{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sheetback{position:fixed;inset:0;background:rgba(40,40,41,.4);z-index:5}
.sheet{position:fixed;left:50%;transform:translateX(-50%);width:100%;max-width:520px;bottom:0;max-height:92vh;overflow:auto;background:var(--bg);border-radius:22px 22px 0 0;z-index:6;padding:8px 16px calc(22px + env(safe-area-inset-bottom));animation:up .22s cubic-bezier(.22,1,.36,1)}
@keyframes up{from{transform:translate(-50%,30px);opacity:.4}to{transform:translate(-50%,0);opacity:1}}
@media (prefers-reduced-motion:reduce){.sheet{animation:none}}
.grab{width:40px;height:5px;border-radius:3px;background:var(--line2);margin:4px auto 8px}
.shd{display:flex;align-items:center;gap:8px}.shd h1{flex:1;margin:4px 0 10px;font-size:26px}
.x{border:0;background:var(--field);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none}
.x svg{width:16px;height:16px}
.big{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--line);background:#fff}
.opt{display:flex;gap:12px;align-items:center;border:1.5px solid var(--line);background:var(--panel);border-radius:12px;padding:12px;width:100%;text-align:left;margin-bottom:8px}
.opt[aria-checked=true],.plan[aria-checked=true]{border-color:var(--accent);background:#FFFDF0}
.opt .r{width:18px;height:18px;border-radius:50%;border:2px solid var(--line2);flex:none}
.opt[aria-checked=true] .r{border:6px solid var(--accent)}
.opt .t{flex:1;min-width:0}.opt .t b{display:block;font-size:15px}.opt .t span{font-size:13px;color:var(--muted)}
.opt .p{font-weight:700;white-space:nowrap}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.slots button{border:1px solid var(--line2);background:var(--panel);border-radius:10px;padding:9px 0;font-size:14px}
.days{display:flex;gap:6px;overflow:auto;margin:0 -16px 10px;padding:0 16px;scrollbar-width:none}
.days::-webkit-scrollbar{display:none}
.days button{flex:none;width:58px;border:1px solid var(--line2);background:var(--panel);border-radius:12px;padding:8px 0;display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--muted)}
.days button b{font-size:18px;color:var(--ink)}
.days button[aria-pressed=true]{color:#ddd}.days button[aria-pressed=true] b{color:var(--yellow)}
.addr{font-size:16px;line-height:1.5;font-weight:600}
.meter{height:7px;border-radius:4px;background:var(--field);overflow:hidden;margin-top:6px}.meter i{display:block;height:100%;background:var(--yellow)}
.use{padding:8px 0}.use .h{display:flex;justify-content:space-between;font-size:14px}.use .h span{color:var(--muted)}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.field label{font-size:13.5px;font-weight:600}
.field input,.field select{min-height:46px;border:1px solid var(--line2);border-radius:10px;padding:0 12px;background:var(--panel);font-size:16px;width:100%}
.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(254,219,0,.35)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.note{font-size:13px;color:var(--muted);margin-top:-4px}
.err{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:14px;margin:0 0 12px}
.okmsg{font-size:13px;color:var(--ink)}
.prog{display:flex;gap:4px;margin:2px 0 14px}.prog i{flex:1;height:4px;border-radius:2px;background:var(--line)}.prog i.on{background:var(--accent)}
.plan{border:1.5px solid var(--line);background:var(--panel);border-radius:14px;padding:14px;width:100%;text-align:left;margin-bottom:10px;display:block}
.plan[aria-checked=true]{box-shadow:0 0 0 1px var(--accent)}
.plan .ph{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.plan .ph b{font-family:'Flama Condensed',Gotham,sans-serif;font-weight:500;font-size:22px}
.plan .ph span{font-weight:700;font-size:17px}.plan .ph small{font-weight:400;color:var(--muted);font-size:13px}
.plan ul{margin:8px 0 0;padding:0 0 0 18px;font-size:13.5px;color:var(--muted);line-height:1.6}
.plan .pd{margin-top:12px;border-top:1px solid var(--line);padding-top:8px;display:grid;gap:8px;font-size:13.5px}
.plan .pdg b{display:block;font-family:Gotham,sans-serif;font-size:11.5px;letter-spacing:.03em;margin:2px 0 3px}
.plan .pdr{display:flex;justify-content:space-between;gap:12px;padding:2px 0;color:var(--muted)}
.plan .pdr span:last-child{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--field);border-radius:12px;padding:3px;margin-bottom:12px}
.seg button{border:0;background:none;border-radius:9px;padding:9px 0;font-weight:600;font-size:14px;color:var(--muted)}
.seg button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.up{display:flex;gap:12px;align-items:center;border:1.5px dashed var(--line2);border-radius:12px;padding:14px;background:var(--panel);width:100%;text-align:left;margin-bottom:8px;position:relative}
.up.done{border-style:solid;border-color:var(--accent)}
.up svg{width:24px;height:24px;flex:none}
.up .t{flex:1}.up .t b{display:block;font-size:15px}.up .t span{font-size:13px;color:var(--muted)}
.up input{position:absolute;inset:0;opacity:0;cursor:pointer}
.foot{position:sticky;bottom:0;padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);display:flex;gap:8px}
.foot .btn{flex:1}
.toast{position:fixed;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:488px;bottom:84px;background:#404041;color:#fff;border-radius:12px;padding:12px 14px;font-size:14px;z-index:9;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.done-hero{text-align:center;padding:30px 6px 10px}
.done-hero .ck{width:64px;height:64px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;margin:0 auto 12px}
.done-hero .ck svg{width:30px;height:30px;stroke:#404041;stroke-width:2.5}
.center{min-height:70vh;display:flex;flex-direction:column;justify-content:center}
.loading{padding:40px 0;text-align:center;color:var(--muted)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45;margin:12px 0}
.check input{width:20px;height:20px;margin:1px 0 0;accent-color:#4D4D4F;flex:none}
.btn svg{width:18px;height:18px;flex:none}
.row svg{width:18px;height:18px;vertical-align:-3px}

/* ---------------------------------------------------------------- installable app bits */
.nudge{display:flex;align-items:center;gap:10px;background:var(--soft);border-radius:12px;padding:8px 8px 8px 12px;margin:0 0 12px;font-size:14px;font-weight:600}
.nudge>svg{width:20px;height:20px;flex:none}.nudge span{flex:1}.nudge .x{background:transparent;width:28px;height:28px}
.row span svg{width:17px;height:17px;vertical-align:-3px;margin-right:4px}
.signout{margin-top:18px}

/* ---------------------------------------------------------------- desktop: sidebar, mail list beside the open piece */
@media (min-width:960px){
  .app.wide{max-width:none;box-shadow:none;min-height:100vh}
  .desk{display:grid;grid-template-columns:248px 1fr;height:100vh}
  .side{display:flex;flex-direction:column;gap:6px;background:var(--panel);border-right:1px solid var(--line);padding:22px 14px 16px;min-height:0}
  .side .sp{flex:1}
  .slogo{padding:0 8px 18px}.slogo img{height:46px}
  .snav{display:flex;flex-direction:column;gap:2px}
  .snav button{display:flex;align-items:center;gap:12px;border:0;background:none;border-radius:10px;padding:10px 12px;font-size:15px;color:var(--muted);text-align:left;position:relative}
  .snav button svg{width:20px;height:20px}
  .snav button:hover{background:var(--field);color:var(--ink)}
  .snav button[aria-current=true]{background:var(--accent);color:var(--yellow);font-weight:700}
  .snav .dot{margin-left:auto;min-width:20px;height:20px;border-radius:10px;background:var(--yellow);color:var(--ink);font-size:11.5px;font-weight:700;display:grid;place-items:center;padding:0 6px}
  .side .btn.sm{margin-bottom:6px}
  .who{display:flex;align-items:center;gap:10px;border:0;border-top:1px solid var(--line);background:none;padding:14px 6px 2px;text-align:left;width:100%}
  .who .wn{display:flex;flex-direction:column;min-width:0}.who b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who small{color:var(--muted);font-size:12.5px}
  .main{overflow:auto;padding:30px 40px 40px;min-width:0}
  .main>*:not(.mtable){max-width:860px}
  .main h1{font-size:36px;margin-top:0}
  .main.mailmode{padding:0;overflow:hidden}
  .main .list{max-width:760px}
  /* dialogs instead of bottom sheets */
  .sheet{top:50%;bottom:auto;transform:translate(-50%,-50%);max-height:86vh;border-radius:18px;padding:18px 22px 22px;box-shadow:0 30px 80px -20px rgba(0,0,0,.35);animation:pop .18s ease-out}
  .sheet .grab{display:none}
  @keyframes pop{from{transform:translate(-50%,-48%);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}
  .toast{bottom:28px}
  /* sign in, forgot, reset, invite: a centered card */
  .app:not(.wide){box-shadow:0 0 0 1px var(--line)}
}
.pill.new{background:var(--yellow)}
.acts .act:last-child:nth-child(odd){grid-column:1/-1}

/* ---------------------------------------------------------------- desktop Mail: table + sliding panel */
@media (min-width:960px){
  .mtable{display:flex;height:100vh;min-width:0;--pw:clamp(360px,32vw,460px)}
  .tcol{flex:1;min-width:0;display:flex;flex-direction:column}
  .thead{padding:30px 36px 0}
  .thead .nudge{max-width:560px}
  .mtabs{display:flex;gap:22px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
  .mtabs::-webkit-scrollbar{display:none}
  .mtabs button{border:0;background:none;padding:0 0 11px;font-size:14.5px;color:var(--muted);white-space:nowrap;position:relative;font-variant-numeric:tabular-nums}
  .mtabs button:hover{color:var(--ink)}
  .mtabs button[aria-pressed=true]{color:var(--ink);font-weight:700}
  .mtabs button[aria-pressed=true]::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px 2px 0 0;background:var(--yellow)}
  .mtabs .n{font-weight:400;color:var(--muted);margin-left:4px}
  .twrap{flex:1;overflow:auto;padding:0 36px 36px}
  .twrap table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:14.5px}
  .twrap thead th{position:sticky;top:0;z-index:1;background:var(--bg);text-align:left;font-family:Gotham,sans-serif;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:400;padding:16px 14px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
  .twrap tbody td{padding:0 14px;height:56px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .twrap tbody tr{cursor:pointer}
  .twrap tbody td{transition:background-color .12s ease-out}
  .twrap tbody tr:hover td{background:#F4F3EE}
  .twrap tbody tr[aria-current=true] td{background:#FFFBE3}
  .twrap tbody tr[aria-current=true] td:first-child{box-shadow:inset 3px 0 0 var(--yellow)}
  .twrap tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .c-sender{font-weight:700}
  th.c-type{width:150px}th.c-date{width:150px}th.c-status{width:170px}
  .c-sender .cell{display:flex;align-items:center;gap:12px;min-width:0}
  .c-sender .sn{overflow:hidden;text-overflow:ellipsis}
  .c-sender .th{width:52px;height:34px;flex:none;border-radius:4px;background:var(--field) center/cover no-repeat;outline:1px solid rgba(0,0,0,.08);outline-offset:-1px}
  .c-date{color:var(--muted);font-variant-numeric:tabular-nums}
  .tempty{color:var(--muted);padding:48px 0;text-align:center}
  .mpanel{width:0;flex:none;overflow:hidden;background:var(--panel);border-left:1px solid transparent;transition:width .26s cubic-bezier(.22,1,.36,1),border-color .26s}
  .mtable.open .mpanel{width:var(--pw);border-left-color:var(--line)}
  .mtable.open .c-type{display:none}
  .pinner{width:var(--pw);height:100%;overflow:auto}
  .phd{display:flex;align-items:flex-start;gap:10px;padding:26px 26px 0}
  .phd .pt{flex:1;min-width:0}
  .phd h2{font-size:30px;line-height:1.05;margin:0;text-wrap:balance;overflow-wrap:anywhere}
  .psub{color:var(--muted);font-size:14px;margin-top:8px}
  .psub .ptype{color:var(--ink);font-weight:600}
  .phd .x{width:34px;height:34px}.phd .x:hover{background:var(--line)}
  .pbody{padding:18px 26px 30px}
  .pbody .err{margin-bottom:14px}
  .pacts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
  .pact{display:inline-flex;align-items:center;gap:7px;min-height:40px;border:1px solid var(--line2);background:var(--panel);border-radius:10px;padding:0 12px 0 10px;font-size:14px;font-weight:600;transition:background-color .12s ease-out,transform .12s ease-out}
  .pact:hover{background:#F4F3EE}.pact:active{transform:scale(.96)}.pact:disabled{opacity:.45}
  .pact svg{width:18px;height:18px;flex:none}
  .pact small{font-weight:400;color:var(--muted);font-size:12.5px}
  .pact.primary{background:var(--accent);border-color:var(--accent);color:var(--yellow)}.pact.primary:hover{background:#3f3f41}.pact.primary small{color:#E9E2B0}
  .pphoto{display:block;width:100%;height:auto;border-radius:10px;background:#fff;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}
  .pfacts{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;font-size:14.5px;margin:18px 0 0}
  .pfacts dt{color:var(--muted)}.pfacts dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
}
@media (min-width:960px) and (max-width:1280px){ th.c-date{width:120px} th.c-status{width:150px} }
@media (min-width:960px) and (max-width:1180px){ .mtable.open .c-sender .th{display:none} }
@media (prefers-reduced-motion:reduce){ .mpanel{transition:none} }

/* ---------------------------------------------------------------- Account (SphereMail-style: profile header + tabs) */
.prof{display:flex;align-items:center;gap:14px;margin:6px 0 18px}
.av.lg{width:58px;height:58px;font-size:18px;flex:none}
@media (max-width:959px){ .prof .out{width:40px;min-height:40px;padding:0} .prof .out span{display:none} .prof h1{font-size:26px} }
.prof .pw{flex:1;min-width:0}
.prof .pn{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.prof h1{margin:0;font-size:28px;text-wrap:balance}
.prof .pm{color:var(--muted);font-size:14px;margin-top:4px}
.live{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}
.live::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--line2)}
.live.on{color:#3B7A3E}.live.on::before{background:#4CAF50}
.prof .out{flex:none}
.utabs{display:flex;gap:22px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}
.utabs::-webkit-scrollbar{display:none}
.utabs button{border:0;background:none;padding:2px 0 11px;font-size:14.5px;color:var(--muted);white-space:nowrap;position:relative}
.utabs button:hover{color:var(--ink)}
.utabs button[aria-pressed=true]{color:var(--ink);font-weight:700}
.utabs button[aria-pressed=true]::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px 2px 0 0;background:var(--yellow)}
.apane{padding-top:2px}
.apane h2:first-child,.apane section>h2:first-child{margin-top:18px}
.lnk{border:0;background:none;padding:0;font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line2)}
.lnk:hover{text-decoration-color:currentColor}
.row small.sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.row span{min-width:0}
.adr{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px 12px 12px}
.adr-i{width:52px;height:52px;border-radius:10px;background:var(--field);display:grid;place-items:center;flex:none}
.adr-i svg{width:24px;height:24px}
.adr-t{flex:1;min-width:0;line-height:1.5;font-size:15px}
.plan-n{font-family:'Flama Condensed',Gotham,sans-serif;font-size:24px;line-height:1.1}
.plan-p{font-size:22px;font-weight:700;margin:4px 0 6px;font-variant-numeric:tabular-nums}.plan-p small{font-size:14px;font-weight:400;color:var(--muted)}
.card.flush{padding:0;overflow:hidden}
.atable{width:100%;border-collapse:collapse;font-size:14.5px;font-variant-numeric:tabular-nums}
.atable th{text-align:right;font-family:Gotham,sans-serif;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:400;padding:14px 16px 10px;border-bottom:1px solid var(--line)}
.atable td{text-align:right;padding:12px 16px;border-top:1px solid var(--line)}
.atable tr:first-child td{border-top:0}
.atable th:first-child,.atable td:first-child{text-align:left;font-weight:600}
.atable td.z{color:var(--line2)}
@media (min-width:960px){
  .utabs{margin:0;padding:0}
  .agrid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;align-items:start}
  .prof{margin-top:0}
  .prof h1{font-size:34px}
  .main>*:not(.mtable){max-width:900px}
  .apane .adr{max-width:620px}
}


/* Account Verifications (owner, 2026-10-30): check marks, ID type, editable photo ID expiry, Update buttons */
.vrow{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line);font-size:14.5px}
.vrow:first-child{border-top:0}
.vmain{flex:1;min-width:0;display:grid;gap:3px}
.vl{font-weight:600}
.vsub{color:var(--muted);font-size:13.5px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.vok{width:26px;height:26px;border-radius:50%;background:var(--ink,#333335);color:var(--yellow,#FEDB00);display:grid;place-items:center;flex:none}
.vok svg{width:15px;height:15px;stroke-width:3}
.vneed{color:var(--muted);font-size:13.5px}
.vbad{color:#a33;font-size:13.5px;font-weight:600}
.vexp{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted)}
.vexp input{height:32px;border:1px solid var(--line2);border-radius:8px;padding:0 8px;font:inherit;color:var(--ink,inherit);background:var(--panel)}
.vrow .btn.sm{flex:none}
label.btn.dis{opacity:.5;pointer-events:none}

/* password field with a show/hide eye */
.pwbox{position:relative;display:block}
.pwbox input{padding-right:48px!important}
.pweye{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:38px;height:38px;border:0;background:none;border-radius:8px;display:grid;place-items:center;color:var(--muted);cursor:pointer}
.pweye:hover{color:var(--ink);background:rgba(0,0,0,.05)}
.pweye svg{width:20px;height:20px}
/* business logo (F13): space held until /api/business answers; the name when a business has no logo */
.lph{display:inline-block;height:40px;width:1px}
.lname{font-weight:700;font-size:18px;line-height:40px;white-space:nowrap}
.l-nav.dark .lname,.l-foot .lname{color:#fff}

/* ---------------------------------------------------------------- UI audit 2026-11-02: focus, sheets, contrast, touch targets */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.chips button:focus-visible,.days button:focus-visible,.utabs button:focus-visible,.mtabs button:focus-visible{outline-offset:-2px}
.field input:focus,.field select:focus{box-shadow:0 0 0 1px var(--accent),0 0 0 4px rgba(254,219,0,.45)}
html.lock{overflow:hidden}
.sheet{animation:none;overscroll-behavior:contain}
.sheet.enter{animation:up .22s cubic-bezier(.22,1,.36,1)}
@media (min-width:960px){ .sheet.enter{animation:pop .18s ease-out} }
@supports (min-height:100dvh){ .app{min-height:100dvh} }
.atable td.z{color:var(--muted)}
.vbad{color:var(--danger)}
.mail .th,.big{border:0;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}
.pweye{width:44px;height:44px;right:3px}
.chips button,.dot,.row b,.act span,.opt .p,.use .h span{font-variant-numeric:tabular-nums}
@media (max-width:959px){
  .sheet{max-height:92dvh}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
  .scroll{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .chips button{min-height:40px}
  .btn.sm{min-height:40px}
  .slots button{min-height:44px}
  .utabs button{padding:12px 0 13px}
  .vexp input{height:40px}
  .lnk{padding:10px 0}
  .x,.top .av{position:relative}
  .x::after,.top .av::after{content:'';position:absolute;inset:-6px}
}
@media (min-width:960px) and (max-width:1280px){ .mtabs{gap:16px} th.c-date{width:140px} }
@media (prefers-reduced-motion:reduce){ .sheet,.sheet.enter{animation:none} .pact,.twrap tbody td{transition:none} .pact:active{transform:none} }
#sheet-h:focus{outline:none}
.note.bad{color:var(--danger)}
label.btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.row.pk{cursor:pointer;align-items:center}.row.pk span{display:flex;align-items:center;gap:10px;color:var(--ink)}
.row.pk input{width:20px;height:20px;margin:0;accent-color:var(--accent);flex:none}
.tabs .dot .vh,.snav .dot .vh{position:absolute}
[data-hkeep].more{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 36px),transparent)}

/* Member App Step 2: "Keep me signed in" and the "Enter Your Password Again" dialog */
.keep{display:flex;gap:10px;align-items:center;font-size:15px;margin:2px 0 16px;cursor:pointer}
.keep input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--char, #222)}
dialog.reauth{border:0;border-radius:16px;padding:22px;width:min(380px,calc(100vw - 32px));box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog.reauth::backdrop{background:rgba(0,0,0,.45)}
dialog.reauth h2{margin:0 0 14px;font-size:20px}
dialog.reauth .ra-b{display:flex;gap:10px;justify-content:flex-end}
/* Member App Step 3: Home + Billing (owner layout 2026-11-03) */
.tabs.t2{grid-template-columns:repeat(2,1fr)}.tabs.t3{grid-template-columns:repeat(3,1fr)}.tabs.t4{grid-template-columns:repeat(4,1fr)}
.hhi{font-size:44px;margin:4px 0 16px}
.hstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:10px}
.hst{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--ink);font:inherit}
.hst:not([data-tab]){cursor:default}
.hst .n{font-family:'Flama Condensed',sans-serif;font-weight:500;font-size:38px;line-height:1}
.hst .l{font-family:Gotham,sans-serif;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.hst.hot{background:var(--yellow,#FEDB00);border-color:var(--yellow,#FEDB00)}
.hst.hot .l{color:var(--ink)}
.hrules summary{cursor:pointer;font-weight:600;padding:10px 0 2px;list-style:none}
.hrules summary::-webkit-details-marker{display:none}
.hrules summary::after{content:' +';color:var(--muted)}
.hrules[open] summary::after{content:' \2212'}
.hrules ul{margin:6px 0 0;padding-left:18px;line-height:1.7}
.hnote{margin:10px 0 0;white-space:pre-line}
.ipill{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;margin-left:8px;background:#E6F4EA;color:#1e6b34}
.ipill.open{background:#FFF4B8;color:#5c4a00}
