/* The Common Room (/common-room): the website's chat. Same tokens as site.css; its own pieces.
   The one bold thing is the ring: six chairs in the fellowships' colours around a lamp. */

:root {
    --aa: #7C9BFF; --na-c: #3CCFA9; --ca: #A78BFA; --cma: #F472B6; --alanon: #22D3EE;
    --cr-ease: cubic-bezier(.2, .7, .2, 1);
    /* the room's own colours that change in the dark (the rest are site.css's tokens) */
    --card-line: transparent;
    --at: #EAF0FF; --at-ink: #1D44C8;
    --at-me: #FFF0C9; --at-me-ink: #6B4A00;
    --honest: #FFF8E8; --honest-line: #F5DFA8; --honest-ink: #4A3B12;
    --picked: #F2F5FE;
    --seg-on: #FFFFFF;
    --send-off: #AEBBD9;
    --host-wash: rgba(242, 181, 68, .09); --host-wash-2: rgba(242, 181, 68, .14);
}
:root[data-theme="dark"] {
    --card-line: rgba(255, 255, 255, .09);
    --at: rgba(124, 155, 255, .18); --at-ink: #B8C8FF;
    --at-me: rgba(242, 181, 68, .2); --at-me-ink: #F7D58E;
    --honest: #2A2412; --honest-line: #5A4A1E; --honest-ink: #F1DFB5;
    --picked: #1E2A4A;
    --seg-on: #3A4868;
    --send-off: #34405C;
    --host-wash: rgba(242, 181, 68, .07); --host-wash-2: rgba(242, 181, 68, .11);
}

/* ── the ring ────────────────────────────────────────────────────── */
.ring { display: block; }
.ring-live .ring-chair { opacity: 0; transform-origin: 60px 60px; animation: cr-chair .7s var(--cr-ease) forwards; animation-delay: calc(.15s + var(--i) * .11s); }
.ring-live .ring-lamp { opacity: 0; animation: cr-lamp 1.4s ease .9s forwards; }
@keyframes cr-chair { from { opacity: 0; transform: scale(.4) rotate(-30deg); } to { opacity: 1; transform: none; } }
@keyframes cr-lamp { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .ring-live .ring-chair, .ring-live .ring-lamp { animation: none; opacity: 1; }
}

/* ── buttons, fields ─────────────────────────────────────────────── */
.cr-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px;
    font: inherit; font-size: 16px; font-weight: 800; padding: 12px 22px; border-radius: 14px; border: 0; cursor: pointer;
    background: var(--blue); color: #fff; text-decoration: none; transition: background-color .15s;
}
.cr-btn:hover { background: var(--blue-hover); }
.cr-btn:focus-visible { outline: 3px solid var(--lamp); outline-offset: 3px; }
.cr-btn[disabled] { opacity: .6; cursor: progress; }
.cr-btn.is-lamp { background: var(--lamp); color: var(--dusk); }
.cr-btn.is-lamp:hover { background: #F6C566; }
.cr-btn.is-quiet { background: var(--quiet); color: var(--ink); }
.cr-btn.is-quiet:hover { background: var(--quiet-hover); }
.cr-btn.is-danger { background: var(--danger); }
.cr-btn.is-danger:hover { background: #9A3412; }
.cr-btn.is-wide { width: 100%; }
.cr-link { background: none; border: 0; padding: 0; font: inherit; color: var(--blue-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

.cr-field { display: grid; gap: 6px; margin: 0 0 16px; }
.cr-field > label, .cr-label { font-weight: 700; font-size: 15px; color: var(--ink); }
.cr-field input[type="email"], .cr-field input[type="text"] {
    width: 100%; min-height: 52px; font: inherit; font-size: 17px; color: var(--ink); background: var(--field);
    border: 1.5px solid var(--field-line); border-radius: 14px; padding: 0 16px; transition: border-color .15s, box-shadow .15s;
}
.cr-field input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 91, 234, .16); }
.cr-field.has-error input { border-color: var(--danger); }
.cr-hint { font-size: 14px; color: var(--ink-2); margin: 0; }
.cr-error { font-size: 14px; font-weight: 700; color: var(--danger-ink); margin: 0; }
.cr-check { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; color: var(--ink-2); margin: 4px 0 18px; cursor: pointer; }
.cr-check input { width: 22px; height: 22px; margin: 1px 0 0; flex: none; accent-color: var(--blue); }
.cr-check a { font-weight: 700; }

/* the fellowship chips (a choice, shown beside your name) */
.cr-fels { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0 0 20px; }
.cr-fels legend { font-weight: 700; font-size: 15px; margin-bottom: 4px; padding: 0; }
.cr-fels legend span { font-weight: 500; color: var(--ink-2); }
.cr-fel { position: relative; }
.cr-fel input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cr-fel span {
    display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px; font-weight: 700; font-size: 15px;
    background: var(--field); border: 1.5px solid var(--field-line); color: var(--ink);
}
.cr-fel span::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--c, #9AA3B5); }
.cr-fel input:checked + span { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.cr-fel input:focus-visible + span { outline: 3px solid var(--lamp); outline-offset: 2px; }

/* ── the landing page ────────────────────────────────────────────── */
.cr-hero { background: var(--dusk); color: #fff; padding: 28px 0 80px; position: relative; overflow: hidden; }
.cr-hero::after {
    content: ''; position: absolute; left: -10%; top: -40%; width: 70%; height: 140%; pointer-events: none;
    background: radial-gradient(closest-side, rgba(242, 181, 68, .16), rgba(242, 181, 68, 0));
}
.cr-hero-in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 440px); gap: 56px; align-items: center; }
.cr-hero .ring { width: 132px; height: 132px; margin: 0 0 22px -8px; }
.cr-hero h1 { font-size: clamp(42px, 6vw, 72px); font-weight: 800; letter-spacing: -0.04em; line-height: 1.02; }
.cr-tagline { font-size: clamp(19px, 2.2vw, 24px); font-weight: 700; color: var(--lamp); margin: 14px 0 0; letter-spacing: -0.01em; }
.cr-hero .lede { font-size: 18px; color: rgba(255, 255, 255, .8); margin: 18px 0 0; max-width: 32em; }
.cr-chairs { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 26px 0 0; }
.cr-chairs li { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: rgba(255, 255, 255, .86);
    padding: 6px 12px 6px 10px; border-radius: 999px; background: rgba(255, 255, 255, .07); border: 1px solid var(--dusk-line); }
.cr-chairs li::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--c); }

.cr-card { background: var(--surface); color: var(--ink); border-radius: 24px; padding: 28px; box-shadow: 0 0 0 1px var(--card-line), 0 30px 60px -28px rgba(5, 12, 35, .6); }
.cr-card h2 { font-size: 24px; margin: 0 0 6px; }
.cr-card .sub { color: var(--ink-2); font-size: 15px; margin: 0 0 20px; }
.cr-card .small { font-size: 13.5px; color: var(--ink-2); margin: 14px 0 0; }
.cr-closed { background: rgba(255, 255, 255, .08); border: 1px solid var(--dusk-line); border-radius: 24px; padding: 26px; color: rgba(255, 255, 255, .85); }
.cr-closed h2 { color: #fff; font-size: 22px; margin-bottom: 8px; }

.cr-section { padding: 72px 0; }
.cr-section + .cr-section { padding-top: 0; }
.cr-section h2 { margin-bottom: 10px; }
.cr-section .intro { color: var(--ink-2); max-width: 40em; margin: 0 0 28px; font-size: 18px; }

.cr-steps { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cr-steps li { counter-increment: step; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 22px 22px 20px; }
.cr-steps li::before { content: counter(step); display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
    background: var(--dusk); color: var(--lamp); font-weight: 800; margin-bottom: 14px; }
.cr-steps strong { display: block; font-size: 18px; margin-bottom: 4px; }
.cr-steps p { margin: 0; color: var(--ink-2); font-size: 15.5px; }

.cr-who { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 16px; align-items: stretch; }
.cr-host { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: start; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 20px; }
.cr-host .avatar { width: 64px; height: 64px; font-size: 26px; }
.cr-host h3 { font-size: 19px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cr-host p { margin: 6px 0 0; color: var(--ink-2); font-size: 15.5px; }
.cr-host .when { font-size: 13.5px; font-weight: 700; color: var(--ink-2); }
.cr-host .when .on { color: var(--on); }
.cr-honest { background: var(--honest); border: 1px solid var(--honest-line); border-radius: 20px; padding: 18px 20px; color: var(--honest-ink); font-size: 15.5px; margin: 0; }

.cr-rules { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.cr-rules li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 12px; align-items: start; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; }
.cr-rules li svg { width: 26px; height: 26px; color: var(--blue); }
.cr-rules strong { display: block; }
.cr-rules span { color: var(--ink-2); font-size: 15.5px; }
.cr-two { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: start; }

.cr-help { background: var(--warm); border-radius: 20px; padding: 20px 22px; color: var(--warm-ink); font-size: 15.5px; }
.cr-help p { margin: 0 0 8px; }
.cr-help p:last-child { margin-bottom: 0; }
.cr-help-title { font-weight: 800; font-size: 17px; color: var(--ink); }
.cr-help a { color: var(--ink); font-weight: 700; }

.cr-notice { margin: 0 0 18px; padding: 12px 16px; border-radius: 14px; font-weight: 600; font-size: 15px; }
.cr-notice.is-ok { background: var(--ok); color: var(--ok-ink); }
.cr-notice.is-plain { background: var(--quiet); color: var(--ink); }
.cr-notice.is-warn { background: var(--warn); color: var(--warn-ink); }
.cr-hero .cr-notice.is-plain { background: rgba(255, 255, 255, .12); color: #fff; }

/* the one-cookie notice */
.cr-cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 30; max-width: 520px; margin: 0 auto;
    display: flex; align-items: center; gap: 14px; padding: 12px 12px 12px 18px; border-radius: 16px;
    background: var(--toast); color: rgba(255, 255, 255, .88); font-size: 14.5px; box-shadow: 0 0 0 1px var(--card-line), 0 16px 40px -14px rgba(0, 0, 0, .5); }
.cr-cookie p { margin: 0; flex: 1; }
.cr-cookie a { color: #fff; }
.cr-cookie button { flex: none; font: inherit; font-weight: 800; font-size: 14px; border: 0; border-radius: 10px; padding: 9px 14px; background: #fff; color: #14171F; cursor: pointer; }

/* ── the small pages: check your email, the link, your name, your account ───────── */
.cr-auth { background: var(--dusk); min-height: calc(100vh - 80px); padding: 40px 0 88px; position: relative; overflow: hidden; }
.cr-auth::after { content: ''; position: absolute; left: 50%; top: -30%; width: 900px; height: 700px; transform: translateX(-50%); pointer-events: none;
    background: radial-gradient(closest-side, rgba(242, 181, 68, .14), rgba(242, 181, 68, 0)); }
.cr-auth-in { position: relative; z-index: 1; max-width: 520px; margin: 0 auto; padding: 0 16px; }
.cr-auth .ring { width: 72px; height: 72px; margin: 0 auto 18px; }
.cr-auth .cr-card { padding: 32px; }
.cr-auth h1 { font-size: clamp(28px, 4vw, 34px); font-weight: 800; letter-spacing: -0.03em; margin: 0 0 10px; }
.cr-auth .lead { color: var(--ink-2); margin: 0 0 22px; font-size: 16.5px; }
.cr-auth .email { font-weight: 800; color: var(--ink); word-break: break-all; }
.cr-tips { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 8px; font-size: 15px; color: var(--ink-2); }
.cr-tips li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; }
.cr-tips li::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--lamp); margin: 8px 0 0 6px; }
.cr-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cr-back { display: block; text-align: center; margin-top: 18px; color: rgba(255, 255, 255, .78); font-size: 15px; }
.cr-back a { color: #fff; font-weight: 700; }

.cr-namecheck { list-style: none; padding: 0; margin: 4px 0 18px; display: grid; gap: 5px; font-size: 14px; color: var(--ink-2); }
.cr-namecheck li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; }
.cr-namecheck li::before { content: '•'; text-align: center; color: #9AA3B5; font-weight: 800; }
.cr-namestatus { min-height: 21px; font-size: 14px; font-weight: 700; margin: 0; }
.cr-namestatus.is-ok { color: var(--ok-text); }
.cr-namestatus.is-bad { color: var(--danger-ink); }

.cr-account { padding: 32px 0 88px; }
.cr-account-in { max-width: 640px; }
.cr-account h1 { font-size: clamp(30px, 4vw, 40px); font-weight: 800; letter-spacing: -0.03em; margin: 12px 0 18px; }
.cr-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 22px; margin: 0 0 16px; }
.cr-panel h2 { font-size: 19px; margin: 0 0 12px; }
.cr-panel p { color: var(--ink-2); font-size: 15.5px; }
.cr-panel.is-danger { border-color: var(--danger-line); }
.cr-me { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.cr-me .avatar { width: 52px; height: 52px; font-size: 22px; }
.cr-me strong { font-size: 20px; display: block; }
.cr-me span { color: var(--ink-2); font-size: 14.5px; }

/* ── avatars and labels, shared by the room and the pages ────────── */
.avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; flex: none;
    font-weight: 800; font-size: 16px; color: #fff; background: var(--av, #6B7487); text-transform: uppercase; user-select: none; }
.avatar.is-host { background: var(--dusk); color: var(--lamp); box-shadow: inset 0 0 0 2px var(--lamp); }
.av-aa { --av: #3D63E0; } .av-na { --av: #0E8C6F; } .av-ca { --av: #7C4FD8; } .av-cma { --av: #C93C83; } .av-alanon { --av: #0B88A5; }
.av-0 { --av: #6B7487; } .av-1 { --av: #8A6A3B; } .av-2 { --av: #4D7C59; } .av-3 { --av: #7B5D8E; } .av-4 { --av: #3F6F8C; } .av-5 { --av: #8C5A4F; }
.badge-host { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 800; letter-spacing: .01em;
    padding: 2px 8px; border-radius: 999px; background: var(--lamp); color: var(--dusk); white-space: nowrap; }
.badge-host svg { width: 11px; height: 11px; }

/* ── the room ────────────────────────────────────────────────────── */
.cr-room { height: 100vh; height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr); background: var(--paper); overflow: hidden; }
.cr-bar { background: var(--dusk); color: #fff; }
.cr-bar-in { display: flex; align-items: center; gap: 14px; padding: 10px 20px; max-width: 1240px; margin: 0 auto; }
.cr-bar .home { display: inline-flex; align-items: center; color: rgba(255, 255, 255, .8); text-decoration: none; font-size: 14px; font-weight: 700; gap: 6px; }
.cr-bar .home svg { width: 26px; height: 26px; }
.cr-bar .title { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; }
.cr-bar .title .ring { width: 38px; height: 38px; flex: none; }
.cr-bar .title strong { display: block; font-size: 17px; font-weight: 800; letter-spacing: -0.01em; white-space: nowrap; }
.cr-bar .title small { display: block; font-size: 12.5px; color: rgba(255, 255, 255, .62); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cr-here { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: rgba(255, 255, 255, .86); padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid var(--dusk-line); white-space: nowrap; cursor: pointer; font-family: inherit; }
.cr-here::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #3DDC84; box-shadow: 0 0 0 3px rgba(61, 220, 132, .2); }
.cr-menu { position: relative; }
.cr-menu > button { display: inline-flex; align-items: center; gap: 8px; font: inherit; font-size: 14px; font-weight: 700; color: #fff; background: none; border: 0; padding: 4px; cursor: pointer; border-radius: 999px; }
.cr-menu > button .avatar { width: 34px; height: 34px; font-size: 14px; }
.cr-menu > button:focus-visible { outline: 3px solid var(--lamp); outline-offset: 2px; }
.cr-menu-list { position: absolute; right: 0; top: calc(100% + 8px); z-index: 20; min-width: 240px; background: var(--raised); color: var(--ink); border-radius: 16px; padding: 6px;
    box-shadow: 0 0 0 1px var(--card-line), 0 20px 44px -16px rgba(5, 12, 35, .5); list-style: none; margin: 0; }
.cr-menu-list li { margin: 0; }
.cr-menu-list a, .cr-menu-list button { display: block; width: 100%; text-align: left; padding: 10px 12px; border-radius: 10px; font: inherit; font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none; background: none; border: 0; cursor: pointer; }
.cr-menu-list a:hover, .cr-menu-list button:hover { background: var(--hover); }
.cr-menu-list .me { padding: 10px 12px 8px; border-bottom: 1px solid var(--line); margin-bottom: 4px; font-size: 13.5px; color: var(--ink-2); }
.cr-menu-list .me strong { display: block; color: var(--ink); font-size: 15px; }
/* Appearance, in the menu: the same choice as the website's switch */
.cr-menu-list .cr-theme { padding: 8px 12px 10px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.cr-theme-label { display: block; font-size: 13.5px; color: var(--ink-2); margin-bottom: 7px; }
.cr-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; padding: 3px; border-radius: 12px; background: var(--quiet); }
.cr-menu-list .cr-seg button { display: flex; flex-direction: column; align-items: center; gap: 3px; width: auto; padding: 7px 4px 6px; border-radius: 9px;
    font-size: 12.5px; font-weight: 700; color: var(--ink-2); text-align: center; }
.cr-menu-list .cr-seg button:hover { background: var(--quiet-hover); color: var(--ink); }
.cr-menu-list .cr-seg button[aria-pressed="true"] { background: var(--seg-on); color: var(--ink); box-shadow: 0 1px 3px rgba(5, 12, 35, .18); }
.cr-seg button:focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
.cr-seg svg { width: 18px; height: 18px; }

.cr-body { display: grid; grid-template-columns: minmax(0, 1fr) 320px; max-width: 1240px; width: 100%; margin: 0 auto; min-height: 0; }
.cr-main { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 0; border-right: 1px solid var(--line); background: var(--surface); }
.cr-feed { overflow-y: auto; overscroll-behavior: contain; padding: 18px 0 8px; scroll-behavior: auto; }
.cr-feed:focus { outline: none; }
.cr-older { display: flex; justify-content: center; padding: 4px 0 14px; }
.cr-older button { font: inherit; font-size: 14px; font-weight: 700; color: var(--ink-2); background: var(--quiet); border: 0; border-radius: 999px; padding: 7px 14px; cursor: pointer; }
.cr-start { text-align: center; color: var(--ink-2); font-size: 14px; padding: 6px 24px 18px; }
.cr-start .ring { width: 54px; height: 54px; margin: 0 auto 8px; }
.cr-start strong { display: block; color: var(--ink); font-size: 16px; }

.cr-day { display: flex; align-items: center; gap: 12px; padding: 14px 24px 6px; font-size: 12.5px; font-weight: 800; color: var(--ink-2); letter-spacing: .02em; }
.cr-day::before, .cr-day::after { content: ''; flex: 1; height: 1px; background: var(--line); }

.msg { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 0 12px; padding: 7px 24px 7px 20px; }
.msg.is-cont { padding-top: 1px; }
.msg.is-cont .avatar { visibility: hidden; height: 0; }
.msg.is-cont .msg-head { display: none; }
.msg:hover, .msg.is-open { background: var(--hover-soft); }
.msg.is-mine { box-shadow: inset 3px 0 0 var(--blue); }
.msg.is-host { background: linear-gradient(90deg, var(--host-wash), rgba(242, 181, 68, 0) 70%); }
.msg.is-host:hover, .msg.is-host.is-open { background: linear-gradient(90deg, var(--host-wash-2), rgba(242, 181, 68, .02) 70%); }
.msg.is-new { animation: cr-in .35s var(--cr-ease); }
@keyframes cr-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .msg.is-new { animation: none; } }
.msg-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; line-height: 1.3; margin-bottom: 2px; }
.msg-name { font-weight: 800; font-size: 15px; color: var(--ink); }
.msg-time { font-size: 12.5px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.msg-body { font-size: 16px; line-height: 1.5; color: var(--ink-body); white-space: pre-wrap; overflow-wrap: anywhere; }
.msg-body .at { font-weight: 700; color: var(--at-ink); background: var(--at); border-radius: 6px; padding: 0 4px; font-size: inherit; letter-spacing: 0; }
.msg-body .at.is-me { background: var(--at-me); color: var(--at-me-ink); }
.msg-do { position: absolute; right: 16px; top: -12px; display: none; gap: 2px; background: var(--raised); border: 1px solid var(--line); border-radius: 12px; padding: 3px; box-shadow: 0 8px 20px -12px rgba(5, 12, 35, .35); }
.msg:hover .msg-do, .msg.is-open .msg-do, .msg-do:focus-within { display: flex; }
.msg-do button { font: inherit; font-size: 13px; font-weight: 700; color: var(--ink-2); background: none; border: 0; border-radius: 9px; padding: 5px 10px; cursor: pointer; }
.msg-do button:hover { background: var(--hover); color: var(--ink); }
.msg-do button.is-danger:hover { background: var(--danger-soft); color: var(--danger-ink); }

.cr-composer { border-top: 1px solid var(--line); padding: 12px 20px 14px; background: var(--surface); }
.cr-composer form { display: flex; align-items: flex-end; gap: 10px; }
.cr-composer textarea {
    flex: 1; min-height: 50px; max-height: 180px; resize: none; font: inherit; font-size: 16px; line-height: 1.45; color: var(--ink);
    padding: 13px 16px; border-radius: 16px; border: 1.5px solid var(--field-line); background: var(--field-soft); transition: border-color .15s, box-shadow .15s, background-color .15s;
}
.cr-composer textarea:focus { outline: none; border-color: var(--blue); background: var(--field); box-shadow: 0 0 0 4px rgba(47, 91, 234, .14); }
.cr-send { flex: none; width: 50px; height: 50px; border-radius: 50%; border: 0; background: var(--blue); color: #fff; display: grid; place-items: center; cursor: pointer; transition: background-color .15s, transform .15s; }
.cr-send:hover { background: var(--blue-hover); }
.cr-send:active { transform: scale(.94); }
.cr-send[disabled] { background: var(--send-off); cursor: default; }
.cr-send:focus-visible { outline: 3px solid var(--lamp); outline-offset: 3px; }
.cr-send svg { width: 22px; height: 22px; }
.cr-compose-note { display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; color: var(--ink-3); margin: 7px 4px 0; }
.cr-compose-note .count.is-near { color: var(--danger-ink); font-weight: 700; }
.cr-alert { margin: 0 20px 10px; padding: 11px 14px; border-radius: 12px; background: var(--danger-soft); color: var(--danger-soft-ink); font-size: 14.5px; font-weight: 600; }
.cr-care { margin: 0 20px 10px; }
.cr-care .cr-help { position: relative; padding-right: 44px; }
.cr-care .close { position: absolute; right: 10px; top: 10px; width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(127, 127, 127, .16); color: inherit; cursor: pointer; font-size: 18px; line-height: 1; }

.cr-side { overflow-y: auto; padding: 20px; display: grid; gap: 16px; align-content: start; background: var(--paper); }
.cr-side h2 { font-size: 13px; font-weight: 800; letter-spacing: .02em; color: var(--ink-2); margin: 0 0 10px; }
.cr-box { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 16px; }
.cr-people { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.cr-people li { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 15px; }
.cr-people .avatar { width: 30px; height: 30px; font-size: 13px; }
.cr-people .tag { margin-left: auto; }
.cr-people .none { color: var(--ink-2); font-weight: 500; font-size: 14.5px; }
.cr-hostline { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: center; font-size: 14px; }
.cr-hostline + .cr-hostline { margin-top: 10px; }
.cr-hostline .avatar { width: 30px; height: 30px; font-size: 13px; }
.cr-hostline strong { font-size: 15px; }
.cr-hostline .meta { display: block; color: var(--ink-2); font-size: 13px; margin-top: 2px; }
.cr-hostline .on { color: var(--on); font-weight: 700; }
.cr-side .cr-help { font-size: 14.5px; padding: 16px; border-radius: 18px; }
.cr-side .cr-help-title { font-size: 15.5px; }
.cr-mini-rules { margin: 0; padding-left: 18px; font-size: 14.5px; color: var(--ink-2); display: grid; gap: 4px; }
.cr-side .more { font-size: 14px; font-weight: 700; margin-top: 8px; display: inline-block; }
.cr-side-close { display: none; }

/* report dialog */
.cr-dialog { border: 0; border-radius: 22px; padding: 0; width: min(440px, calc(100vw - 32px)); box-shadow: 0 0 0 1px var(--card-line), 0 30px 70px -20px rgba(5, 12, 35, .55); color: var(--ink); background: var(--raised); }
.cr-dialog::backdrop { background: rgba(10, 16, 34, .55); }
.cr-dialog form { padding: 24px; }
.cr-dialog h2 { font-size: 21px; margin: 0 0 6px; }
.cr-dialog p { color: var(--ink-2); font-size: 15px; margin: 0 0 14px; }
.cr-dialog blockquote { margin: 0 0 16px; padding: 10px 14px; border-left: 3px solid var(--line); color: var(--ink-2); font-size: 15px; max-height: 90px; overflow: hidden; }
.cr-reasons { display: grid; gap: 6px; margin: 0 0 18px; }
.cr-reasons label { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--line); font-weight: 600; font-size: 15px; cursor: pointer; }
.cr-reasons label:has(input:checked) { border-color: var(--blue); background: var(--picked); }
.cr-reasons input { accent-color: var(--blue); width: 18px; height: 18px; margin: 0; }

.cr-toast { position: fixed; left: 50%; bottom: 96px; transform: translateX(-50%); z-index: 40; background: var(--toast); color: #fff; font-size: 14.5px; font-weight: 600; padding: 10px 16px; border-radius: 12px; box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .5); }

/* ── smaller screens ─────────────────────────────────────────────── */
@media (max-width: 1080px) {
    .cr-body { grid-template-columns: minmax(0, 1fr); }
    .cr-main { border-right: 0; }
    .cr-side { position: fixed; inset: 0 0 0 auto; width: min(360px, 92vw); z-index: 25; box-shadow: -20px 0 50px -20px rgba(5, 12, 35, .45); transform: translateX(105%); transition: transform .25s var(--cr-ease); visibility: hidden; }
    .cr-side.is-open { transform: none; visibility: visible; }
    .cr-side-close { display: flex; justify-content: flex-end; }
    .cr-side-close button { font: inherit; font-weight: 700; font-size: 14px; border: 0; background: var(--quiet); color: var(--ink); border-radius: 999px; padding: 7px 14px; cursor: pointer; }
    .cr-scrim { position: fixed; inset: 0; z-index: 24; background: rgba(10, 16, 34, .45); }
}
@media (max-width: 900px) {
    .cr-hero-in, .cr-two { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .cr-steps, .cr-who { grid-template-columns: minmax(0, 1fr); }
    .cr-hero { padding-bottom: 56px; }
    .cr-hero .ring { width: 104px; height: 104px; }
}
@media (max-width: 600px) {
    .cr-hero { padding-top: 16px; }
    .cr-hero .ring { width: 76px; height: 76px; margin-bottom: 14px; }
    .cr-hero .lede { font-size: 17px; }
    .cr-chairs { margin-top: 18px; }
    .cr-bar-in { padding: 8px 12px; gap: 10px; }
    .cr-bar .home span, .cr-bar .title small { display: none; }
    .cr-bar .title .ring { width: 32px; height: 32px; }
    .cr-bar .title strong { font-size: 16px; }
    .cr-here { padding: 5px 10px; font-size: 13px; }
    .msg { padding: 6px 14px 6px 12px; gap: 0 10px; grid-template-columns: 34px minmax(0, 1fr); }
    .msg .avatar { width: 34px; height: 34px; font-size: 14px; }
    .cr-day { padding: 12px 14px 4px; }
    .cr-composer { padding: 10px 12px 12px; }
    .cr-alert, .cr-care { margin-left: 12px; margin-right: 12px; }
    .cr-card, .cr-auth .cr-card { padding: 22px; border-radius: 20px; }
    .cr-section { padding: 52px 0; }
    .msg-do { right: 8px; }
}
.cr-help.is-page { margin-top: 28px; }
