/* Learning together keeps the quiet typography and neutral surfaces of Vemlit. */
.co-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.co-heading .page-sub { max-width:56ch; }
.co-heading>.co-actions { padding-top:14px; }
.co-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.co-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--hairline); margin-bottom:28px; }
.co-tabs { display:flex; gap:24px; }
.co-tab { padding:14px 0 17px; border:0; border-bottom:2px solid transparent; background:none; color:var(--text-dim); font:inherit; font-size:.9rem; cursor:pointer; }
.co-tab[aria-pressed="true"] { color:var(--text);border-bottom-color:var(--text); }
.co-create { margin-bottom:24px; }
.co-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.co-space-card,.co-plan-card { text-align:left; font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--hairline); border-radius:22px; padding:28px; min-width:0; }
.co-space-card { cursor:pointer; transition:transform .2s var(--ease),border-color .2s; }
.co-space-card:hover { transform:translateY(-3px); border-color:var(--hairline-strong); }
.co-space-card h2,.co-plan-card h2 { font-size:1.5rem; font-weight:500; letter-spacing:-.04em; margin:24px 0 32px; overflow-wrap:anywhere; }
.co-card-foot { display:flex; justify-content:space-between; align-items:center; font-size:.8rem; color:var(--text-dim); }
.co-card-foot>span { font-size:1.4rem; color:var(--text); }
.co-plan-card .eyebrow { display:block; }.co-plan-card h2 { margin:16px 0; }
.co-plan-number { display:block; font:3rem var(--font-display); color:var(--text-faint); margin-bottom:28px; }
.co-note { color:var(--text-dim);font-size:.84rem;line-height:1.7;margin:10px 0;max-width:78ch; }
.co-error { color:var(--bad);font-size:.9rem;line-height:1.6;margin:16px 0; }
.co-empty { padding:50px 24px; border:1px dashed var(--hairline-strong); border-radius:20px; text-align:center; margin:20px 0; }
.co-empty .co-note { margin:0 auto 16px; max-width:50ch; }
.co-space-top { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:22px 0; border-block:1px solid var(--hairline); margin-bottom:26px; }
.co-code { min-width:0; }.co-code>span { font-size:.75rem; color:var(--text-dim); }
.co-code>div { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:6px; }
.co-code input { background:none; border:0; color:var(--text); font:500 1rem var(--font); letter-spacing:.1em; width:20ch; min-height:44px; max-width:100%; }
.co-breadcrumb { margin-bottom:20px; }.co-breadcrumb .btn { padding-left:0; }
.co-assignment { display:flex; gap:32px; justify-content:space-between; align-items:center; padding:30px 0; border-bottom:1px solid var(--hairline); }
.co-assignment h2 { font-size:1.25rem; font-weight:500; margin:0 0 10px;overflow-wrap:anywhere; }
.co-assignment-copy { flex:1; min-width:0; }.co-assignment>.co-actions { flex-shrink:0; }
.co-meter { width:min(100%,360px); height:4px; border-radius:8px; background:var(--hairline); overflow:hidden; margin-top:18px; }
.co-meter span { display:block; height:100%; background:var(--text); border-radius:8px;transition:width .25s ease; }
.co-roster { margin-top:36px; }.co-roster summary { min-height:44px;cursor:pointer;font-weight:500; }.co-roster summary span { color:var(--text-dim);margin-left:12px; }
.co-member { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--hairline);font-size:.9rem; }
.co-friend-header { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px; }
.co-friend { display:flex;justify-content:space-between;align-items:flex-start;gap:28px;padding:28px 0;border-bottom:1px solid var(--hairline); }
.co-friend h2 { font-size:1.2rem;font-weight:500;overflow-wrap:anywhere; }.co-friend-controls { width:min(100%,350px); }.co-friend-controls>.co-actions { margin-top:14px; }
.co-small-stats { display:flex;gap:30px;margin-top:22px; }.co-small-stats>span { display:flex;flex-direction:column;font-size:.72rem;color:var(--text-dim);gap:6px; }.co-small-stats strong { color:var(--text);font-size:1.5rem;font-weight:500; }
.co-dialog { width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:30px;border:1px solid var(--hairline);border-radius:24px;background:var(--surface);color:var(--text);box-shadow:0 24px 90px #0003;overflow:auto; }
.co-dialog::backdrop { background:#0006;backdrop-filter:blur(6px); }.co-dialog[open] { animation:co-appear .22s var(--ease); }
.co-dialog-head { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px; }.co-dialog-head h2 { font-weight:500;font-size:1.5rem;letter-spacing:-.04em;line-height:1.25;margin:6px 0; }
.co-close { width:44px;min-width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--hairline);border-radius:50%;color:var(--text);background:transparent;font-size:1.6rem;cursor:pointer; }
.co-field { display:flex;flex-direction:column;gap:10px;margin:20px 0;font-size:.85rem; }.co-field .select { width:100%;min-height:46px;font-size:16px; }
.co-check { display:flex;align-items:flex-start;gap:12px;font-size:.84rem;line-height:1.65;min-height:44px;margin:12px 0;cursor:pointer; }.co-check input { width:18px;height:18px;flex-shrink:0;margin:4px 0;accent-color:var(--text); }
.co-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:20px; }.co-form fieldset { border:0;padding:0;margin:0; }.co-form legend { font-size:.85rem;margin-bottom:12px; }
.co-selected { color:var(--text-dim);font-size:.8rem; }.co-word-options { max-height:240px;overflow:auto;border:1px solid var(--hairline);border-radius:14px; }
.co-word-option { display:flex;align-items:center;gap:14px;min-height:52px;padding:12px 16px;border-bottom:1px solid var(--hairline);cursor:pointer; }.co-word-option:last-child { border:0; }.co-word-option>span { min-width:0;overflow-wrap:anywhere; }.co-word-option small { display:block;color:var(--text-dim);margin-top:3px; }.co-word-option input { width:18px;height:18px;accent-color:var(--text);flex-shrink:0; }
.co-dialog-actions { display:flex;justify-content:flex-end;margin-top:26px;gap:12px; }.co-dialog-actions .btn { min-height:46px; }
.co-report article { padding:22px 0;border-top:1px solid var(--hairline); }.co-report h3 { font-size:1rem;font-weight:500;margin-bottom:8px; }
.co-report dl,.co-admin-panel dl { margin-top:20px; }.co-report dl>div,.co-admin-panel dl>div { display:flex;justify-content:space-between;gap:16px;margin:12px 0;font-size:.84rem; }.co-report dt,.co-admin-panel dt { color:var(--text-dim); }.co-report dd,.co-admin-panel dd { margin:0;font-variant-numeric:tabular-nums; }
.co-admin-stats { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--hairline);border-radius:20px;overflow:hidden;background:var(--hairline); }
.co-admin-stats article { padding:26px;background:var(--surface);display:flex;flex-direction:column;gap:20px; }.co-admin-stats span { font-size:.8rem;color:var(--text-dim); }.co-admin-stats strong { font-size:2.6rem;font-weight:500;letter-spacing:-.06em; }
.co-admin-panel { border:1px solid var(--hairline);border-radius:20px;padding:24px;margin-top:24px;background:var(--surface);min-width:0; }.co-admin-panel h2 { font-size:1rem;font-weight:500; }.co-admin-panel h3 { font-size:.9rem;font-weight:500;margin-top:28px; }
.co-breakdowns { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.co-bars { display:flex;align-items:flex-end;gap:8px;min-height:160px;margin-top:26px;overflow-x:auto;padding:0 0 12px; }.co-bars>div { flex:1;min-width:34px;display:flex;flex-direction:column;align-items:center;gap:8px; }.co-bars span { font-size:.75rem; }.co-bars i { width:70%;min-height:2px;max-width:32px;background:var(--text);border-radius:4px 4px 0 0; }.co-bars small { font-size:.62rem;color:var(--text-dim);white-space:nowrap; }
.co-home-link { display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;text-align:left;padding:24px 0;border:0;border-block:1px solid var(--hairline);margin-top:32px;background:none;color:var(--text);font:inherit;cursor:pointer; }.co-home-link strong { font-size:1.1rem;font-weight:500; }.co-home-link small { display:block;color:var(--text-dim);line-height:1.7;margin-top:6px; }.co-home-link>span:last-child { font-size:1.7rem; }
.co-settings-links { display:flex;flex-wrap:wrap;gap:12px;padding:16px 24px;border-top:1px solid var(--hairline); }
#registration-profile-fields .co-note { font-size:.75rem; }
@keyframes co-appear { from { opacity:0;transform:translateY(12px); } to {opacity:1;transform:none;} }
@media(min-width:901px) and (max-width:1200px){.tabs { gap:0; }.tab-btn { padding-inline:7px;font-size:.78rem; }.cloud-indicator span:last-child { display:none; }}
@media(max-width:900px){.co-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.co-heading { display:block; }.co-heading>.co-actions { padding:0 0 24px; }.co-assignment { align-items:flex-start; }.co-assignment>.co-actions { flex-direction:column;align-items:stretch; }.co-admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }.co-breakdowns { grid-template-columns:1fr;gap:0; }}
@media(max-width:600px){.co-grid { grid-template-columns:1fr; }.co-space-card,.co-plan-card { padding:24px; }.co-tabs { gap:18px; }.co-tab { font-size:.8rem; }.co-toolbar>.btn { padding-inline:8px;font-size:.8rem; }.co-space-top,.co-friend-header,.co-friend,.co-assignment { flex-direction:column;align-items:stretch;gap:18px; }.co-assignment>.co-actions { flex-direction:row; }.co-dialog { padding:24px 20px;width:calc(100% - 20px);max-height:calc(100dvh - 24px);border-radius:22px; }.co-form-grid { gap:12px; }.co-admin-stats article { padding:20px; }.co-admin-stats strong { font-size:2.2rem; }.co-admin-panel { padding:20px; }.co-friend-controls { width:100%; }.co-report dl>div { gap:10px; }.co-create>.btn { flex:1; }.co-code input { font-size:16px; }.co-settings-links { padding-inline:20px; }}
@media(prefers-reduced-motion:reduce){.co-dialog[open] { animation:none; }.co-space-card,.co-meter span { transition:none; }.co-space-card:hover { transform:none; }}
.signin-view[data-auth-mode="welcome"] .page-title { max-width:16ch;font-size:clamp(38px,5vw,64px); }
.signin-view[data-auth-mode="welcome"] .signin-card { width:min(100%,480px); }
.signin-view[data-auth-mode="welcome"] .signin-copy { padding-block:24px; }
.signin-view[data-auth-mode="welcome"] .signin-intro .page-sub { margin-block:18px; }

/* Personal profiles: a quiet portrait, readable bio and one save action. */
.profile-intro { margin:-12px 0 28px;color:var(--text-dim);font-size:.88rem;line-height:1.7; }
.profile-photo-row { display:flex;align-items:center;gap:24px;padding-bottom:8px; }
.profile-portrait { display:inline-grid;place-items:center;width:44px;height:44px;flex:0 0 44px;overflow:hidden;border:1px solid var(--hairline);border-radius:50%;background:var(--surface-2);color:var(--text);font:24px var(--font-display); }
.profile-portrait-large { width:96px;height:96px;font-size:44px; }
.profile-portrait img,.account-avatar img { width:100%;height:100%;object-fit:cover;display:block; }
.account-avatar { overflow:hidden; }
.profile-photo-tools { min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px; }
.profile-photo-tools .co-note { flex-basis:100%;margin:2px 0;font-size:.72rem; }
.profile-photo-label { position:relative;overflow:hidden;cursor:pointer;min-height:44px; }
.profile-photo-label input { position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%; }
.profile-photo-label:focus-within { outline:2px solid var(--text);outline-offset:3px; }
[data-photo-status]:empty { display:none; }
.profile-bio-field>span { display:flex;justify-content:space-between;align-items:center;gap:12px; }
.profile-bio-field small { font-size:.72rem;color:var(--text-dim);font-variant-numeric:tabular-nums; }
.profile-bio-field textarea { resize:vertical;min-height:105px;max-height:240px;line-height:1.65;padding:13px 15px; }
.profile-bio-help { margin-top:-12px;font-size:.75rem; }
.profile-share { margin:24px 0; }
.profile-share small { display:block;color:var(--text-dim);font-size:.75rem;margin-top:5px; }
.profile-learning { border-top:1px solid var(--hairline);margin-top:24px;padding-top:6px; }
.profile-learning summary { cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:space-between;font-size:.84rem;color:var(--text-dim);list-style:none; }
.profile-learning summary::-webkit-details-marker { display:none; }
.profile-learning summary::after { content:'+';font-size:20px;font-weight:300; }
.profile-learning[open] summary::after { content:'−'; }
.profile-person { display:flex;align-items:flex-start;gap:14px;min-width:0; }
.profile-person-copy { min-width:0; }.profile-person h2 { margin:0; }.profile-person-copy>small { display:block;color:var(--text-dim);font-size:.75rem;margin-top:5px; }
.profile-person-bio { margin:7px 0 0;color:var(--text-dim);font-size:.82rem;line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap;max-width:45ch; }
#account-display-name { font-size:16px;font-weight:500;overflow-wrap:anywhere; }
#account-display-name:not([hidden])+#account-identity { color:var(--text-dim);font-size:12px;font-weight:400; }
.profile-account-bio { padding:0 22px 22px;margin:0;line-height:1.7;color:var(--text-dim);font-size:.86rem;overflow-wrap:anywhere;white-space:pre-wrap; }
@media(max-width:600px){.profile-photo-row { gap:18px; }.profile-portrait-large { width:80px;height:80px;font-size:38px; }.profile-photo-tools { gap:2px 6px; }}

.profile-form .co-dialog-head { margin-bottom:20px; }
.profile-form .profile-intro { margin:0 0 20px; }
.profile-form .co-dialog-actions { position:sticky;bottom:-30px;padding:16px 0 12px;background:var(--surface);border-top:1px solid var(--hairline);z-index:2; }
@media(max-width:600px){.profile-form .co-field { margin:16px 0; }.profile-form .profile-photo-tools .co-note { max-width:24ch; }.profile-form .co-dialog-actions { bottom:-24px;margin-top:16px; }.profile-form .co-dialog-actions .btn { width:100%; }.profile-form .profile-share { margin:20px 0; }}
