/* Standard-app sign-in building blocks (buttons, fields, segmented control, modal, steps), in the Kritisch black and gold. */
:root{--au-bg:#0d0b09;--au-panel:#16120e;--au-panel2:#1e1812;--au-line:#3b3121;--au-text:#f2e8d2;--au-muted:#a89b83;--au-gold:#dcbc78;--au-gold2:#ecd39b;--au-ink:#17110a;--au-r:12px;--au-sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--au-serif:"Didot","Bodoni MT","Playfair Display",Georgia,serif}
body{background:var(--au-bg)}
#globe{position:fixed;inset:0;width:100%;height:100%;z-index:5;display:block;cursor:grab;transition:opacity .7s}
#globe:active{cursor:grabbing}
body[data-view=home] #globe{opacity:0;pointer-events:none}
body[data-view=auth] .side{display:none}
body[data-view=auth] .mappane{visibility:hidden}
body.entering .mappane{visibility:visible!important}
body.entering #globe{opacity:0;transition:opacity .9s .9s}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.au-ui{position:fixed;inset:0;z-index:20;pointer-events:none;font-family:var(--au-sans);color:var(--au-text)}
.au-ui button,.au-ui a,.au-ui input,.au-ui select,.au-ui textarea,.au-ui .au-hit{pointer-events:auto}
body.entering .au-ui{opacity:0;transition:opacity .45s;pointer-events:none}
body.entering .au-ui *{pointer-events:none!important}
[hidden]{display:none!important}

.wm{font:400 1.35rem/1 var(--au-serif);letter-spacing:.24em;text-transform:uppercase;color:var(--au-gold2);padding-left:.24em}
.wm.sm{font-size:1rem}
.au-ui h1,.au-ui h2{font-family:var(--au-serif);font-weight:400;margin:0}

/* buttons */
.btn-p,.btn-s,.btn-t{font:600 .95rem/1 var(--au-sans);cursor:pointer;border-radius:var(--au-r);transition:transform .12s,background .2s,border-color .2s,opacity .2s}
.btn-p{height:46px;padding:0 22px;border:0;background:linear-gradient(180deg,#ecd39b,#c9a45c);color:var(--au-ink)}
.btn-p:hover{filter:brightness(1.07)}
.btn-p:active{transform:translateY(1px)}
.btn-s{height:46px;padding:0 22px;background:transparent;border:1px solid var(--au-line);color:var(--au-text)}
.btn-s:hover{border-color:var(--au-gold)}
.btn-t{height:46px;padding:0 14px;background:none;border:0;color:var(--au-text)}
.btn-t:hover{color:var(--au-gold2)}
.btn-block{width:100%}
.btn-p:focus-visible,.btn-s:focus-visible,.btn-t:focus-visible,.au-x:focus-visible{outline:2px solid var(--au-gold2);outline-offset:2px}
.btn-p[disabled]{opacity:.5;cursor:default}

/* fields */
.au-form label{display:block;margin:14px 0 6px;font:600 .78rem var(--au-sans);letter-spacing:0;text-transform:none;color:var(--au-muted)}
.au-form input:not([type=radio]):not([type=file]):not([type=checkbox]),.au-form select,.au-form textarea{width:100%;height:46px;padding:0 14px;background:var(--au-panel2);border:1px solid var(--au-line);border-radius:var(--au-r);color:var(--au-text);font:400 1rem var(--au-sans);transition:border-color .2s,box-shadow .2s}
.au-form textarea{height:auto;padding:10px 14px;resize:vertical}
.au-form select option{background:var(--au-panel);color:var(--au-text)}
.au-form input:focus,.au-form select:focus,.au-form textarea:focus{outline:0;border-color:var(--au-gold);box-shadow:0 0 0 3px #dcbc7826}
.au-form select:disabled{opacity:.45}
.au-form input[type=file]{width:100%;color:var(--au-muted);font:.85rem var(--au-sans)}
.au-form input[type=file]::file-selector-button{height:34px;padding:0 14px;margin-right:12px;border:1px solid var(--au-line);background:var(--au-panel2);color:var(--au-text);border-radius:8px;cursor:pointer}
.au-row{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.au-form .btn-p{margin-top:20px}
.au-hint{margin:6px 0 0;font:.82rem var(--au-sans);color:var(--au-muted)}
.auth-msg{min-height:1.2em;margin:12px 0 0;font:600 .86rem var(--au-sans)}
.auth-msg[data-state=error]{color:#ff9d8f}.auth-msg[data-state=ok]{color:#a8e6b4}
.type-note{margin:8px 0 0;font:.85rem/1.4 var(--au-sans);color:var(--au-muted)}

/* segmented control: I'm a diner / I own a restaurant */
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--au-panel2);border:1px solid var(--au-line);border-radius:var(--au-r);padding:4px;gap:4px}
.seg label{margin:0!important;cursor:pointer;display:block}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:block;text-align:center;padding:11px 8px;border-radius:9px;font:600 .88rem var(--au-sans);color:var(--au-muted);transition:background .2s,color .2s}
.seg input:checked+span{background:var(--au-gold);color:var(--au-ink)}
.seg input:focus-visible+span{outline:2px solid var(--au-gold2);outline-offset:2px}

/* tabs and social buttons */
.au-tabs{display:flex;gap:22px;border-bottom:1px solid var(--au-line);margin:6px 0 16px}
.au-tabs button{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px 2px;color:var(--au-muted);font:600 .95rem var(--au-sans);cursor:pointer}
.au-tabs button.is-active{color:var(--au-text);border-bottom-color:var(--au-gold)}
.soc{display:grid;gap:10px;margin:4px 0 2px}
.soc button{display:flex;align-items:center;justify-content:center;gap:10px;height:46px;border-radius:var(--au-r);border:1px solid var(--au-line);background:var(--au-panel2);color:var(--au-text);font:600 .92rem var(--au-sans);cursor:pointer}
.soc button:hover{border-color:var(--au-gold)}
.soc i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:700 .7rem Arial,sans-serif;font-style:normal;background:#f2e8d2;color:#17110a}
.or{display:flex;align-items:center;gap:12px;margin:16px 0 2px;color:var(--au-muted);font:.8rem var(--au-sans)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--au-line)}
.au-fine{margin:14px 0 0;font:.76rem/1.5 var(--au-sans);color:var(--au-muted)}
.au-fine a{color:var(--au-gold)}

/* modal */
.au-modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:rgba(5,4,3,.72);pointer-events:auto;animation:au-fade .2s both}
.au-card{position:relative;width:min(460px,100%);max-height:94vh;overflow:auto;background:var(--au-panel);border:1px solid var(--au-line);border-radius:20px;padding:28px 28px 24px;box-shadow:0 30px 80px #000c;animation:au-pop .28s cubic-bezier(.2,.9,.3,1.1) both}
.au-card h2{font-size:1.6rem;margin:10px 0 2px}
.au-x{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:0;background:var(--au-panel2);color:var(--au-text);font:1.3rem/1 var(--au-sans);cursor:pointer}
@keyframes au-fade{from{opacity:0}}
@keyframes au-pop{from{opacity:0;transform:translateY(14px) scale(.97)}}

/* stepper (onboarding) */
.prog{display:flex;gap:6px;margin:4px 0 18px}
.prog i{flex:1;height:4px;border-radius:2px;background:var(--au-line);transition:background .3s}
.prog i.on{background:var(--au-gold)}
.stp{display:none}.stp.is-on{display:block;animation:au-slide .35s both}
@keyframes au-slide{from{opacity:0;transform:translateX(18px)}}
.back{background:none;border:0;color:var(--au-muted);font:600 .9rem var(--au-sans);cursor:pointer;padding:6px 0}
@media(max-width:560px){.au-row{grid-template-columns:1fr}.au-card{padding:22px 18px}}
@media(prefers-reduced-motion:reduce){.au-card,.au-modal,.stp.is-on{animation:none}}
