/* GENERATED by services/directory/tool/build_web.mjs from src/web/client/phase-a.css (Phase A additions: classes that replace the design's inline style="" attributes so the CSP needs no unsafe-inline). Do not edit; rebuild. */
/* Classes that stand in for the design's inline style="" attributes, value for
   value, so the CSP needs no 'unsafe-inline'. Tokens only — no colour is typed here. */
.m0{margin:0}
.w30{width:30%}
.s8{--s:8px}.s10{--s:10px}.s12{--s:12px}.s14{--s:14px}.s16{--s:16px}.s18{--s:18px}.s20{--s:20px}.s24{--s:24px}.s28{--s:28px}
.mt6{margin-top:6px}.mt8{margin-top:8px}.mt10{margin-top:10px}.mt12{margin-top:12px}.mt14{margin-top:14px}.mt16{margin-top:16px}.mt20{margin-top:20px}
.mb4{margin-bottom:4px}.mb6{margin-bottom:6px}.mb8{margin-bottom:8px}.mb16{margin-bottom:16px}.mb24{margin-bottom:24px}
.ms4{margin-inline-start:4px}
.py4{padding:4px 0}
.ls-none{list-style:none}
.mw860{max-width:860px}
.ai-start{align-items:start}
.self-start{align-self:flex-start}
.basis-full{flex-basis:100%}
.wrap-any{overflow-wrap:anywhere}
.bg-surface{background:var(--surface)}
.danger-chip{background:var(--danger-soft);color:var(--danger)}

/* headings the design sized inline */
.h1-join{font-size:clamp(28px,4.6vw,42px)}
.h1-admin{font-size:clamp(26px,4vw,36px)}
.h1-state{font-size:24px}
.h2-like{font-size:clamp(24px,3.4vw,30px)}
.h2-aside{font-size:20px;margin-bottom:16px}
.h2-card{font-size:22px}
.h2-share{font-size:20px;margin-bottom:12px}
.h2-app{font-size:26px}
.h2-dlg{font-size:22px}
.h3-log{margin-bottom:6px;font-size:17px}

/* auth widths (login.html inline widths) */
.w-auth{width:min(480px,100%)}
.auth .card.w-setup{width:min(560px,100%)}

/* join: the honeypot is off-screen and out of the tab order; Turnstile box */
.hp{position:absolute;inset-inline-start:-10000px;width:1px;height:1px;overflow:hidden;visibility:hidden}
.ts-box{display:grid;gap:8px;min-height:65px}
.busy-btn{cursor:progress;background:var(--accent);color:var(--surface);border:0}

/* profile: today's chip as an element (the design drew it with attr(), which
   cannot follow a language switch made without a reload) */
.hours tr.is-today td:first-child::after{content:none}
.today-chip{margin-inline-start:8px;font-size:13px;padding:2px 10px;border-radius:99px;background:var(--accent);color:var(--surface);font-weight:600}

/* admin: links styled as the design's segmented buttons and list items */
.seg a{min-height:var(--tap);padding:6px 16px;border-radius:11px;border:0;background:transparent;color:var(--fg-2);font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
a.app-item{text-decoration:none}
.as-text{display:flex;align-items:center}
.signed-line{display:flex;gap:6px;align-items:center;margin-top:4px}
.grow-form{flex:1 1 220px;display:flex}
.grow-form .btn{flex:1}
.inline-form{display:contents}
details.backup summary{min-height:var(--tap);display:flex;align-items:center;cursor:pointer;color:var(--accent);list-style:none}
details.backup summary::-webkit-details-marker{display:none}

/* privacy policy pages (/privacy, /privacy/en): readable measure, tokens only */
.legal{max-width:70ch;margin-inline:auto;padding-block:24px 8px}
.legal h1{font-size:clamp(28px,4.6vw,40px);margin-bottom:16px}
.legal h2{font-size:clamp(20px,3vw,24px);margin-top:32px;margin-bottom:8px}
.legal p,.legal li{font-size:17px;line-height:1.8;color:var(--fg-2)}
.legal p{margin-top:12px}
.legal ul{margin-top:12px;padding-inline-start:22px}
.legal li{margin-top:6px}
.legal strong{color:var(--fg)}
.legal a{color:var(--fg);font-weight:600;overflow-wrap:anywhere}
a.tbtn{text-decoration:none}
