@import url('/karli.css');

:root { --dh-blue:#29347f; --dh-blue-dark:#202965; --dh-peach:#e5ac94; --dh-peach-soft:#f9e8df; --dh-ink:#222738; --dh-muted:#737885; --dh-line:#e5e6ec; --dh-bg:#f8f9fc; --dh-white:#fff; --navy:#222738; --ink:#222738; --blue:#29347f; --blue-strong:#202965; --blue-soft:#edf0fc; --canvas:#f8f9fc; --surface:#fff; --line:#e5e6ec; --radius:8px; }
* { box-sizing:border-box; letter-spacing:0; }
body { margin:0; font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif; color:var(--dh-ink); background:var(--dh-bg); font-size:14px; line-height:1.55; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { letter-spacing:0; overflow-wrap:anywhere; }
h1 { font-family:'Manrope',sans-serif; font-size:32px; line-height:1.2; font-weight:750; margin-bottom:10px; }
h2 { font-family:'Manrope',sans-serif; font-size:20px; line-height:1.35; font-weight:750; }
h3 { font-size:14px; font-weight:750; line-height:1.5; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { opacity:.5; cursor:not-allowed; }
a { color:inherit; }
svg.lucide { width:19px; height:19px; flex-shrink:0; stroke-width:1.75; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #bb8a6e; outline-offset:3px; }
.button { min-height:42px; gap:9px; padding:10px 16px; border-radius:6px; background:var(--dh-blue); color:white; box-shadow:none; font-size:13px; font-weight:700; line-height:1.4; white-space:normal; }
.button:hover { background:var(--dh-blue-dark); box-shadow:none; transform:translateY(-1px); }
.button svg { width:17px; height:17px; }
.button.secondary { color:var(--dh-blue); background:white; border-color:#d9dce9; }
.button.secondary:hover { background:#f0f2fb; border-color:#bfc5e0; }
.button.ghost { color:var(--dh-blue); background:transparent; padding:8px 6px; min-height:36px; }
.button.ghost:hover { background:#eef0fa; }
.button.danger { color:#a23846; background:#fff0f1; border-color:#efcbd0; }
.button.danger:hover { background:#ffe2e7; }
.dh-icon-button { display:inline-flex; width:36px; height:36px; min-width:36px; align-items:center; justify-content:center; padding:0; color:var(--dh-muted); background:transparent; border:1px solid transparent; border-radius:6px; }
.dh-icon-button:hover { color:var(--dh-blue); background:#eef0fa; }
.dh-button-row { display:flex; flex-wrap:wrap; gap:10px; }
.dh-overline { color:var(--dh-muted); font-size:10px; font-weight:750; text-transform:uppercase; margin-bottom:9px; }
.dh-brand { display:flex; align-items:center; gap:9px; width:max-content; font-family:'Manrope',sans-serif; font-size:27px; font-weight:800; color:var(--dh-blue); line-height:1; }
.dh-brand-mark { display:inline-grid; place-items:center; width:33px; height:33px; border:1.5px solid currentColor; border-radius:9px 9px 9px 2px; }
.dh-brand-mark svg { width:21px; height:21px; }
.dh-brand-dot { color:#c77959; }
.dh-muted { color:var(--dh-muted); font-size:12px; }
.dh-badge { display:inline-flex; align-items:center; padding:3px 8px; min-height:25px; border-radius:4px; background:#f0f1f5; color:#686e7b; font-size:10px; font-weight:750; white-space:normal; }
.dh-badge.blue { color:var(--dh-blue); background:#eceffc; }
.dh-badge.green { color:#277454; background:#e9f5ee; }
.dh-badge.peach { color:#87503e; background:var(--dh-peach-soft); }
.dh-avatar { display:inline-grid; place-items:center; width:38px; height:38px; min-width:38px; border-radius:50%; background:#f4e4dc; color:#885440; font-size:11px; font-weight:800; }
.dh-avatar.small { width:32px; height:32px; min-width:32px; }
.field { display:grid; gap:7px; min-width:0; }
.field label { color:var(--dh-ink); font-weight:700; font-size:12px; }
.field label span { margin-left:5px; color:var(--dh-muted); font-weight:400; }
.field input,.field select,.field textarea,.installation input { min-height:46px; width:100%; min-width:0; border:1px solid #d8dbe6; border-radius:6px; padding:11px 12px; background:white; color:var(--dh-ink); font-size:14px; }
.field input::placeholder,.field textarea::placeholder { color:#9094a0; }
.field textarea { resize:vertical; min-height:100px; }
.field small { color:var(--dh-muted); font-size:11px; }
.dh-form { display:grid; gap:20px; }
.dh-form-columns { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.dh-form-note { font-size:12px; line-height:1.65; color:var(--dh-muted); margin:0; }
.dh-form-error,.dh-inline-warning { color:#9e3545; background:#fff0f2; border-left:3px solid #be5261; padding:12px 14px; border-radius:2px; font-size:12px; margin:0; }
.dh-inline-warning { margin-bottom:18px; }
.dh-auth-status { display:grid; grid-template-columns:20px minmax(0,1fr); align-items:start; gap:8px 12px; padding:15px 16px; margin-bottom:22px; background:#ffffffb8; border:1px solid #c8b3ae; border-radius:6px; color:var(--dh-blue-dark); }
.dh-auth-status>svg { margin-top:2px; }
.dh-auth-status strong { display:block; font-size:12px; line-height:1.5; }
.dh-auth-status p { margin:4px 0 0; color:#5f5357; font-size:11px; line-height:1.65; }
.dh-auth-status>.button { grid-column:2; justify-self:start; padding:5px 0; min-height:32px; font-size:11px; }
.dh-auth-status>.button:hover { background:transparent; text-decoration:underline; transform:none; }
.dh-auth-status.loading>svg { animation:dh-spin 1.2s linear infinite; }
.dh-loading { display:grid; place-content:center; gap:24px; min-height:100dvh; text-align:center; color:var(--dh-muted); }
.dh-loading .dh-brand { justify-self:center; }

.dh-auth { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,1fr); min-height:100dvh; background:var(--dh-peach); }
.dh-auth-art { position:relative; min-height:640px; overflow:hidden; background:var(--dh-blue); }
.dh-auth-art::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,22,51,.24),transparent 38%,rgba(17,28,53,.7)); pointer-events:none; }
.dh-auth-art>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:55% 48%; }
.dh-auth-art .dh-brand { position:absolute; top:45px; left:48px; z-index:1; color:white; }
.dh-auth-art .dh-brand-dot { color:#f2b69c; }
.dh-auth-caption { position:absolute; z-index:1; bottom:50px; left:48px; right:48px; color:white; }
.dh-auth-caption .dh-overline { color:#e1dfe8; margin-bottom:16px; font-size:11px; }
.dh-auth-caption h2 { color:white; font-family:'DM Serif Display',Georgia,serif; font-size:52px; font-weight:400; line-height:1.1; margin-bottom:18px; }
.dh-auth-caption p:last-child { margin-bottom:0; color:#ece8e7; font-size:14px; }
.dh-auth-side { display:flex; flex-direction:column; padding:28px 48px 22px; }
.dh-auth-top { display:flex; align-items:center; justify-content:space-between; color:#593f3d; font-size:11px; font-weight:650; }
.dh-auth-symbol { color:var(--dh-blue); }
.dh-auth-symbol svg { width:27px; height:27px; }
.dh-auth-form-wrap { width:100%; max-width:420px; margin:auto; padding:30px 0 32px; }
.dh-auth-form-wrap>.dh-overline { color:#654c48; margin-bottom:12px; }
.dh-auth-form-wrap h1 { color:var(--dh-blue-dark); font-family:'DM Serif Display',Georgia,serif; font-weight:400; font-size:38px; line-height:1.15; }
.dh-auth-lede { color:#654c48; font-size:13px; margin:12px 0 25px; }
.dh-auth-tabs { display:flex; gap:26px; border-bottom:1px solid rgba(75,54,60,.2); margin-bottom:28px; }
.dh-auth-tabs button { color:#78534b; background:transparent; padding:0 0 12px; font-size:12px; font-weight:750; border-bottom:2px solid transparent; }
.dh-auth-tabs button.active { color:var(--dh-blue-dark); border-bottom-color:var(--dh-blue); }
.dh-auth .field label { color:#3d3040; font-size:13px; }
.dh-auth .field input,.dh-auth .field select { background:#fff9f5; border-color:#cda392; color:var(--dh-blue-dark); min-height:48px; }
.dh-auth .field select:disabled { opacity:1; color:#7c6864; background:#f3d3c4; cursor:wait; }
.dh-auth-submit:disabled { opacity:1; background:#7f809b; color:white; }
.dh-auth .field input::placeholder { color:#896a66; }
.dh-auth .field small,.dh-auth .dh-form-note { color:#60443e; }
.dh-password { display:flex; position:relative; }
.dh-password input { padding-right:43px !important; }
.dh-password .dh-icon-button { position:absolute; right:5px; top:6px; color:#6e5260; }
.dh-auth-submit { width:100%; min-height:48px; justify-content:space-between; margin-top:3px; }
.dh-auth-security { display:flex; align-items:center; gap:8px; color:#634b48; font-size:10px; margin:22px 0 0; }
.dh-auth-security svg { width:15px; height:15px; }
.dh-auth-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:#795c54; font-size:10px; }

.dh-app { display:grid; grid-template-columns:244px minmax(0,1fr); min-height:100dvh; }
.dh-sidebar { position:sticky; top:0; height:100dvh; display:flex; flex-direction:column; padding:34px 20px 20px; background:white; border-right:1px solid var(--dh-line); z-index:15; }
.dh-sidebar .dh-brand { font-size:24px; margin-bottom:34px; gap:8px; }
.dh-sidebar-close,.dh-menu-scrim { display:none; }
.dh-sidebar .dh-brand-mark { width:29px; height:29px; }
.dh-club-selector { padding:16px 0 20px; margin-bottom:19px; border-top:1px solid var(--dh-line); border-bottom:1px solid var(--dh-line); }
.dh-club-selector label { display:block; color:#8b90a0; font-size:10px; margin:0 0 5px; }
.dh-club-selector select { width:100%; min-width:0; padding:5px 24px 7px 0; background:transparent; border:0; color:var(--dh-ink); font-weight:750; font-size:13px; text-overflow:ellipsis; }
.dh-club-selector .dh-badge { margin-top:6px; }
.dh-nav-label { margin:0 11px 12px; font-size:10px; color:#9a9eab; font-weight:700; text-transform:uppercase; }
.dh-navigation { display:grid; gap:5px; }
.dh-navigation button { display:flex; align-items:center; gap:11px; min-height:44px; width:100%; padding:10px 11px; color:#727788; background:transparent; border-radius:6px; font-size:12px; text-align:left; transition:background .16s ease,color .16s ease; }
.dh-navigation button svg { width:18px; height:18px; }
.dh-navigation button:hover { color:var(--dh-blue); background:#f5f6fc; }
.dh-navigation button.active { color:var(--dh-blue); background:#edf0fc; font-weight:750; }
.dh-counter { margin-left:auto; min-width:20px; height:20px; border-radius:4px; background:var(--dh-blue); color:white; font-size:10px; display:grid; place-items:center; }
.dh-tools-label { margin-top:35px; }
.dh-small-icon { width:14px !important; height:14px !important; margin-left:auto; }
.dh-sidebar-bottom { display:flex; align-items:center; gap:9px; margin-top:auto; padding-top:22px; border-top:1px solid var(--dh-line); }
.dh-sidebar-bottom>div { display:grid; min-width:0; }
.dh-sidebar-bottom strong { font-size:11px; overflow:hidden; text-overflow:ellipsis; }
.dh-sidebar-bottom>div>span { color:#9398a5; font-size:9px; overflow:hidden; text-overflow:ellipsis; }
.dh-sidebar-bottom .dh-icon-button { margin-left:auto; width:28px; min-width:28px; }
.dh-sidebar-bottom .dh-avatar { min-width:31px; width:31px; height:31px; font-size:9px; }
.dh-main { min-width:0; display:flex; flex-direction:column; }
.dh-topbar { display:flex; align-items:center; gap:18px; min-height:80px; padding:0 44px; background:#fff; border-bottom:1px solid var(--dh-line); }
.dh-topbar>.dh-icon-button { display:none; }
.dh-breadcrumb { display:flex; align-items:center; gap:12px; min-width:0; font-size:11px; color:#979ba7; }
.dh-breadcrumb>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:220px; }
.dh-breadcrumb svg { width:12px; height:12px; }
.dh-breadcrumb strong { color:#616879; font-weight:600; }
.dh-top-date { margin-left:auto; color:#8b90a0; font-size:10px; }
.dh-content { width:min(1290px,100%); margin:0 auto; padding:42px 44px 55px; flex:1; }
.dh-page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:34px; }
.dh-page-heading .dh-overline { font-size:10px; color:#979ba7; margin-bottom:9px; }
.dh-page-heading>div:first-child { min-width:0; }
.dh-page-heading>div>p:last-child:not(.dh-overline) { color:#8a8f9b; font-size:12px; margin:0; max-width:650px; }
.dh-heading-actions { flex-shrink:0; }
.dh-overview-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:24px 0; margin-bottom:36px; border-top:1px solid var(--dh-line); border-bottom:1px solid var(--dh-line); }
.dh-overview-stats>div { display:grid; grid-template-columns:32px 1fr; align-content:start; gap:3px 10px; padding:0 28px; border-right:1px solid var(--dh-line); }
.dh-overview-stats>div:first-child { padding-left:0; }
.dh-overview-stats>div:last-child { border-right:0; }
.dh-overview-stats svg { grid-row:span 2; align-self:start; color:#9ca6d4; width:22px; height:22px; margin-top:5px; }
.dh-overview-stats span { color:#858b9b; font-size:11px; }
.dh-overview-stats strong { color:var(--dh-blue); font-size:28px; line-height:1.3; font-weight:750; }
.dh-action-notice { display:flex; align-items:center; gap:17px; padding:17px 20px; margin-bottom:34px; background:#f8e8de; border-left:3px solid #d49d7f; }
.dh-action-notice>svg { color:#b47b5e; width:22px; height:22px; }
.dh-action-notice strong { font-size:12px; color:#684c43; }
.dh-action-notice p { color:#99796a; font-size:11px; margin:4px 0 0; }
.dh-action-notice>.button { margin-left:auto; flex-shrink:0; }
.dh-overview-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:42px; }
.dh-section { padding:0; margin-bottom:35px; min-width:0; }
.dh-section-header { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:45px; margin-bottom:13px; }
.dh-section-header h2 { font-size:17px; margin:0; }
.dh-section-header .dh-overline { color:#9ca0ac; font-size:9px; margin-bottom:6px; }
.dh-section-header>.button { font-size:10px; }
.dh-section-header>svg { color:#9ca6d4; }
.dh-meeting-row { display:flex; align-items:flex-start; gap:16px; padding:22px 0; border-top:1px solid var(--dh-line); }
.dh-date-tile { display:grid; place-content:center; min-width:52px; width:52px; height:58px; text-align:center; background:#eceffc; color:var(--dh-blue); border-radius:6px; }
.dh-date-tile>span { font-size:9px; text-transform:uppercase; }
.dh-date-tile strong { font-size:22px; line-height:1.2; }
.dh-meeting-body { min-width:0; flex:1; }
.dh-row-title { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.dh-row-title h3 { margin:0; }
.dh-meeting-body>p { display:flex; flex-wrap:wrap; align-items:center; gap:5px; font-size:10px; color:#8d92a0; margin:7px 0 0; }
.dh-meeting-body>p>svg { width:12px; height:12px; }
.dh-meeting-body>.dh-meeting-description { display:block; font-size:12px; line-height:1.7; max-width:680px; margin-top:15px; color:#6e7585; white-space:pre-line; }
.dh-meeting-actions { align-self:center; }
.dh-meeting-actions>.button { font-size:11px; }
.dh-dot { margin:0 3px; }
.dh-meeting-row.cancelled { opacity:.65; }
.dh-topic { display:flex; align-items:flex-start; gap:16px; padding:22px 0; border-top:1px solid var(--dh-line); }
.dh-vote { display:grid; place-items:center; min-width:40px; width:40px; min-height:52px; padding:4px 0 7px; gap:0; color:#8a92af; background:white; border:1px solid #e2e5ef; border-radius:5px; }
.dh-vote svg { width:16px; height:16px; }
.dh-vote strong { font-size:12px; line-height:1; }
.dh-vote:hover,.dh-vote.selected { background:#edf0fc; color:var(--dh-blue); border-color:#b7bee1; }
.dh-vote:disabled { opacity:.8; }
.dh-topic-body { min-width:0; flex:1; }
.dh-topic-body h3 { font-size:12px; }
.dh-topic-body>p { font-size:11px; color:#7e8494; line-height:1.75; margin:7px 0 0; white-space:pre-line; overflow-wrap:anywhere; }
.dh-topic-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:9px; color:#a0a5b3; margin-top:10px; }
.dh-topic-meta select { max-width:140px; border:0; border-bottom:1px solid #dce0ed; background:transparent; color:#737eab; font-size:9px; padding:3px 0; margin-left:auto; }
.dh-tool-band { display:flex; align-items:center; gap:22px; padding:26px 28px; color:white; background:var(--dh-blue); }
.dh-tool-band h2 { color:white; font-size:20px; margin:0 0 5px; }
.dh-tool-band p { color:#bbc2e7; font-size:11px; margin:0; }
.dh-tool-band .dh-overline { color:#aeb8e6; font-size:9px; margin-bottom:9px; }
.dh-tool-mark { display:grid; place-items:center; width:48px; min-width:48px; height:48px; color:var(--dh-peach); }
.dh-tool-mark svg { width:39px; height:39px; stroke-width:1.2; }
.dh-tool-band>.button { margin-left:auto; flex-shrink:0; }
.dh-tool-band>.button.secondary { background:transparent; color:white; border-color:#727eb5; font-size:11px; }
.dh-tool-band>.button.secondary:hover { background:#3a4692; }
.dh-app-footer { display:flex; justify-content:space-between; gap:14px; padding:20px 44px; border-top:1px solid var(--dh-line); color:#a3a8b3; font-size:9px; }
.dh-app-footer>span:first-child { font-weight:800; color:#929aaf; }
.dh-page-heading>div>p:last-child:not(.dh-overline),.dh-topic-body>p,.dh-meeting-body>p { color:#697386; }
.dh-topic-meta,.dh-member-name>span,.dh-member-meta>span:last-child:not(.dh-badge),.dh-setting-row p { color:#737d90; }
.dh-nav-label,.dh-club-selector label,.dh-page-heading .dh-overline,.dh-section-header .dh-overline { color:#747e91; }
.dh-meeting-body>p { overflow-wrap:anywhere; }
.dh-empty { display:grid; justify-items:center; text-align:center; padding:34px 20px; border-top:1px solid var(--dh-line); }
.dh-empty>svg { color:#a5adce; width:30px; height:30px; margin-bottom:17px; stroke-width:1.3; }
.dh-empty h3 { font-size:13px; font-weight:650; color:#7d8599; margin:0 0 7px; }
.dh-empty p { font-size:11px; color:#9ba1ae; max-width:320px; margin:0 0 17px; }
.dh-empty .button { font-size:11px; }
.dh-empty-inline { padding:25px 0; border-top:1px solid var(--dh-line); font-size:12px; color:#939aa9; }
.dh-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:15px; }
.dh-tabs { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.dh-tabs button { color:#8b91a2; background:transparent; border-bottom:2px solid transparent; padding:12px 2px; font-size:12px; font-weight:650; display:flex; gap:7px; align-items:center; }
.dh-tabs button.active { color:var(--dh-blue); border-bottom-color:var(--dh-blue); }
.dh-tabs button>span { display:inline-grid; place-items:center; min-width:18px; height:18px; font-size:9px; background:#eceef7; border-radius:4px; }
.dh-search { display:flex; align-items:center; gap:8px; width:245px; padding:9px 11px; border:1px solid var(--dh-line); border-radius:6px; color:#989fb0; background:white; }
.dh-search svg { width:16px; height:16px; }
.dh-search input { width:100%; min-width:0; border:0; outline:0; color:var(--dh-ink); font-size:11px; background:transparent; }
.dh-topic-list .dh-topic { padding:26px 0; }
.dh-topic-list .dh-topic-body h3 { font-size:15px; }
.dh-topic-list .dh-topic-body>p { font-size:12px; max-width:800px; }
.dh-topic-list .dh-topic-meta { font-size:10px; }
.dh-topic-list .dh-topic-meta select { font-size:11px; }
.dh-member { display:flex; align-items:center; gap:14px; border-top:1px solid var(--dh-line); min-height:86px; padding:18px 0; }
.dh-member-name { display:grid; min-width:0; flex:1; gap:3px; }
.dh-member-name strong { font-size:12px; }
.dh-member-name>span { font-size:11px; color:#949baa; overflow-wrap:anywhere; }
.dh-member-meta { display:flex; align-items:center; gap:30px; margin-left:auto; }
.dh-member-meta>span:last-child:not(.dh-badge) { font-size:11px; color:#949baa; min-width:80px; }
.dh-member-actions { display:flex; gap:9px; justify-content:flex-end; min-width:125px; }
.dh-clubs-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.dh-club-item { position:relative; min-width:0; border:1px solid var(--dh-line); border-radius:8px; padding:25px; background:white; }
.dh-club-letter { display:grid; place-items:center; width:46px; height:46px; background:#eef0fc; color:var(--dh-blue); border-radius:6px; font-size:15px; font-weight:750; margin-bottom:25px; }
.dh-club-item>.dh-badge { position:absolute; top:28px; right:22px; }
.dh-club-item h2 { font-size:17px; margin-bottom:8px; }
.dh-club-item p { color:#9096a6; font-size:12px; margin-bottom:24px; }
.dh-club-item>.button { width:100%; }
.dh-join-item { border-style:dashed; background:transparent; }
.dh-join-item>svg { display:block; margin:6px 0 27px; width:33px; height:33px; color:#9ba5ce; }
.dh-waiting { border-top:1px solid var(--dh-line); padding:50px 0; max-width:760px; }
.dh-waiting>svg { color:#adb7db; width:45px; height:45px; margin-bottom:22px; stroke-width:1.2; }
.dh-waiting h2 { font-size:22px; }
.dh-waiting>p { color:#8991a2; margin-bottom:25px; max-width:520px; font-size:13px; }
.dh-setting-row { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:19px 0; border-top:1px solid var(--dh-line); }
.dh-setting-row strong { font-size:12px; overflow-wrap:anywhere; }
.dh-setting-row p { margin:4px 0 0; font-size:11px; color:#939bad; }

.dh-modal-backdrop { position:fixed; inset:0; z-index:100; background:rgba(22,27,54,.4); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:24px; }
.dh-dialog { width:min(490px,100%); max-height:calc(100dvh - 48px); overflow:auto; background:white; color:var(--dh-ink); border-radius:8px; padding:25px; box-shadow:0 22px 75px rgba(24,30,63,.16); animation:dh-dialog-in .18s ease both; }
.dh-dialog.wide { width:min(690px,100%); }
.dh-dialog>header { display:flex; align-items:center; gap:12px; justify-content:space-between; margin-bottom:24px; }
.dh-dialog>header h2 { font-size:20px; margin:0; }
.dh-dialog>p,.dh-dialog form>p { color:#848b9e; font-size:12px; line-height:1.8; }
.dh-dialog .dh-form>.button { margin-top:5px; justify-self:start; }
.dh-dialog-footer { margin-top:24px; border-top:1px solid var(--dh-line); padding-top:15px; }
.dh-member-options { display:grid; gap:12px; }
.dh-attendance-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:20px; }
.dh-attendance-head p { color:#969eaf; font-size:11px; margin:0; }
.dh-attendance-person { display:flex; align-items:center; gap:13px; padding:14px 0; border-top:1px solid var(--dh-line); }
.dh-attendance-person>span:nth-child(2) { display:grid; gap:4px; min-width:0; }
.dh-attendance-person strong { font-size:12px; }
.dh-attendance-person small { color:#9aa0af; font-size:10px; }
.dh-attendance-person input { margin-left:auto; accent-color:var(--dh-blue); width:20px; height:20px; cursor:pointer; flex-shrink:0; }
.dh-qr-view { display:grid; justify-items:center; text-align:center; }
.dh-qr-view>p:first-child { color:var(--dh-blue); font-size:15px; font-weight:700; }
.dh-qr-image { width:min(300px,100%); aspect-ratio:1; background:white; }
.dh-qr-image svg { display:block; width:100%; height:100%; }
.dh-qr-status { display:flex; gap:8px; align-items:center; font-size:11px; color:#7e88a1; margin:17px 0 5px; }
.dh-qr-status svg { width:14px; height:14px; }
.dh-qr-view .dh-muted { font-size:10px; margin-bottom:23px; }
.dh-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); padding:13px 19px; max-width:min(480px,calc(100vw - 36px)); width:max-content; background:var(--dh-blue-dark); color:white; border-radius:6px; font-size:12px; box-shadow:0 6px 25px #20296522; z-index:150; }
.dh-toast.error { background:#983d4b; }
.test-navigation { display:flex; gap:8px 22px; flex-wrap:wrap; border-bottom:1px solid var(--dh-line); margin:0 0 28px; }
.test-navigation button { color:#939bad; background:transparent; padding:12px 0; border-bottom:2px solid transparent; font-size:12px; }
.test-navigation button.active { color:var(--dh-blue); border-color:var(--dh-blue); }
.karli-module h1 { font-size:24px; }
.karli-module .page-heading .eyebrow { display:none; }
.karli-module .card { box-shadow:none; }
.karli-module .card h2 { font-size:17px; }
.karli-module .grid.stats { gap:12px; }
.karli-module .stat-card { padding:18px; min-height:120px; }
.karli-module .rating-button { border-radius:6px; }
.installation { width:min(620px,100%); margin:0 auto; padding:50px 25px; }
.dialethivo-wordmark { color:var(--dh-blue); font-size:30px; font-weight:800; margin-bottom:30px; }
.dialethivo-wordmark>span { color:#c77959; }
@keyframes dh-dialog-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@keyframes dh-spin { to { transform:rotate(360deg); } }
@media(min-width:1600px) { .dh-auth-caption { bottom:65px; left:65px; } .dh-auth-art .dh-brand { top:50px;left:65px; } }
@media(max-width:1180px) { .dh-app { grid-template-columns:220px minmax(0,1fr); } .dh-sidebar { padding:28px 16px 18px; } .dh-sidebar .dh-brand { font-size:22px; } .dh-content { padding:34px 30px 45px; } .dh-topbar { padding:0 30px; } .dh-overview-columns { gap:28px; grid-template-columns:1fr; } .dh-overview-stats>div { padding:0 18px; } .dh-clubs-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .dh-auth-side { padding:32px 35px 24px; } .dh-auth-caption,.dh-auth-art .dh-brand { left:32px; } .dh-auth-caption { right:32px; } .dh-auth-caption h2 { font-size:44px; } }
@media(max-width:800px) { .dh-auth { display:flex; flex-direction:column; } .dh-auth-art { min-height:220px; height:220px; order:0; } .dh-auth-art>img { object-position:50% 46%; } .dh-auth-art .dh-brand { left:24px; top:22px; font-size:25px; } .dh-auth-caption { left:24px; bottom:22px; } .dh-auth-caption .dh-overline,.dh-auth-caption p:last-child { display:none; } .dh-auth-caption h2 { font-size:28px; line-height:1.15; margin:0; } .dh-auth-caption h2 br { display:none; } .dh-auth-side { padding:27px 24px 20px; } .dh-auth-top { display:none; } .dh-auth-form-wrap { max-width:480px; padding:4px 0 30px; } .dh-auth-form-wrap h1 { font-size:32px; } .dh-auth-lede { margin:12px 0 23px; } .dh-auth-tabs { margin-bottom:24px; } .dh-auth-footer { max-width:480px; width:100%; align-self:center; } .dh-auth .dh-form { gap:17px; } .dh-auth-security { margin-top:22px; }
  .dh-app { display:block; } .dh-sidebar { position:fixed; left:0; top:0; width:min(300px,calc(100vw - 54px)); height:100dvh; transform:translateX(-100%); transition:transform .2s ease; box-shadow:10px 0 40px #1b24522b; } .dh-sidebar.open { transform:translateX(0); } .dh-topbar { min-height:65px; padding:0 18px; gap:12px; position:sticky; top:0; z-index:12; } .dh-topbar>.dh-icon-button { display:inline-flex; } .dh-breadcrumb { gap:7px; font-size:10px; flex:1; } .dh-breadcrumb>span { max-width:145px; } .dh-breadcrumb strong { display:none; } .dh-breadcrumb>svg { display:none; } .dh-top-date { display:none; } .dh-content { padding:29px 22px 40px; } .dh-page-heading { gap:18px; align-items:flex-start; margin-bottom:26px; } .dh-page-heading h1 { font-size:27px; } .dh-page-heading>div>p:last-child:not(.dh-overline) { font-size:11px; } .dh-heading-actions .button { font-size:11px; padding:10px 12px; }
  .dh-overview-stats { margin-bottom:28px; padding:20px 0; } .dh-overview-stats>div { grid-template-columns:1fr; padding:0 12px; gap:5px; } .dh-overview-stats svg { width:19px; height:19px; grid-row:auto; margin:0 0 5px; } .dh-overview-stats span { font-size:9px; } .dh-overview-stats strong { font-size:26px; } .dh-action-notice { padding:14px; gap:12px; flex-wrap:wrap; } .dh-action-notice>svg { align-self:flex-start; } .dh-action-notice>div { flex:1; min-width:150px; } .dh-action-notice>.button { margin-left:33px; } .dh-overview-columns { gap:0; }
  .dh-tool-band { padding:22px; align-items:flex-start; gap:15px; flex-wrap:wrap; } .dh-tool-mark { width:28px; min-width:28px; height:34px; } .dh-tool-mark svg { width:28px; height:28px; } .dh-tool-band>div:nth-child(2) { flex:1; min-width:200px; } .dh-tool-band h2 { font-size:18px; } .dh-tool-band>.button { margin-left:43px; } .dh-app-footer { padding:18px 22px; } .dh-member-meta { gap:12px; } .dh-member-meta>span:last-child:not(.dh-badge) { display:none; } .dh-member-actions { min-width:45px; } .dh-member-name>span { font-size:10px; } .dh-toolbar { flex-wrap:wrap; gap:15px; } .dh-tabs { gap:17px; } .dh-search { width:100%; } .dh-clubs-grid { gap:15px; } .dh-club-item { padding:20px; } .dh-club-item>.dh-badge { position:static; margin:0 0 16px; } .dh-club-letter { margin-bottom:15px; } .dh-dialog { padding:22px; } .dh-dialog>header h2 { font-size:19px; } .dh-dialog>header { margin-bottom:21px; } .dh-modal-backdrop { padding:16px; } .dh-dialog { max-height:calc(100dvh - 32px); } .dh-setting-row { align-items:flex-start; } .dh-setting-row>.dh-muted { max-width:95px; text-align:right; } .karli-module .question-row { flex-direction:column; align-items:flex-start; } .karli-module .grid.stats { grid-template-columns:1fr 1fr; } .karli-module h1 { font-size:22px; } .karli-module .stat-value { font-size:25px; } }
@media(max-width:480px) { .dh-page-heading { flex-direction:column; gap:18px; } .dh-page-heading h1 { font-size:26px; } .dh-page-heading .dh-heading-actions { align-self:flex-start; } .dh-overview-stats { gap:0; } .dh-overview-stats>div { padding:0 10px; } .dh-overview-stats>div:first-child { padding-left:0; } .dh-section-header h2 { font-size:16px; } .dh-section-header>.button { gap:4px; font-size:9px; padding:6px 2px; } .dh-meeting-row { gap:13px; flex-wrap:wrap; } .dh-meeting-body { min-width:150px; } .dh-meeting-actions { margin-left:65px; } .dh-meeting-actions>.button { min-height:34px; padding:7px 10px; font-size:10px; } .dh-topic { gap:12px; } .dh-topic-body h3 { font-size:12px; } .dh-topic-list .dh-topic-body h3 { font-size:14px; } .dh-topic-meta select { margin-left:0; margin-top:5px; flex-basis:100%; } .dh-clubs-grid { grid-template-columns:1fr; } .dh-form-columns { grid-template-columns:1fr; } .dh-member { gap:9px; flex-wrap:wrap; } .dh-member-name { flex-basis:calc(100% - 50px); } .dh-member-meta { margin-left:47px; flex:1; } .dh-member-actions { min-width:0; } .dh-member-actions>.button { min-height:34px; padding:7px 10px; font-size:10px; } .dh-attendance-head { flex-direction:column; align-items:flex-start; gap:14px; } .dh-dialog>header h2 { font-size:18px; } .dh-qr-image { width:min(280px,100%); } .dh-auth-form-wrap h1 { font-size:31px; } .karli-module .grid.stats { grid-template-columns:1fr; } .dh-auth-caption h2 { font-size:26px; } }
@media(max-width:800px) { .dh-sidebar-close { display:inline-flex; position:absolute; top:22px; right:8px; width:30px; min-width:30px; } .dh-sidebar .dh-brand { font-size:22px; } .dh-menu-scrim { position:fixed; inset:0; background:#151e444d; z-index:14; width:100%; height:100dvh; border:0; } .dh-sidebar.open+.dh-menu-scrim { display:block; } }
@media(max-width:800px) { .dh-auth .field input,.dh-auth .field select { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } .chart-line { stroke-dashoffset:0; } }

/* Dialethivo visual finish: calm editorial rhythm with mobile-first motion. */
:root { --dh-peach:#e8ad96; --dh-peach-light:#f7ddd2; --dh-blue:#29347f; --dh-blue-dark:#202965; --dh-ink:#25283a; --dh-muted:#707688; --dh-line:#e4e5ec; --dh-coral:#c96f5d; --dh-teal:#3d8178; --dh-gold:#bf8c45; }
body { background:#fbfaf9; }
.button,.dh-icon-button,.dh-navigation button,.dh-tabs button,.dh-auth-tabs button,.dh-vote { transition:transform .22s cubic-bezier(.2,.8,.2,1),background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease; }
.button:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(32,41,101,.13); }
.button:active,.dh-icon-button:active,.dh-vote:active { transform:translateY(0) scale(.97); }
.dh-auth { background:var(--dh-peach); }
.dh-auth-symbol { color:var(--dh-coral); }
.dh-auth-tabs button:nth-child(2):hover { color:var(--dh-coral); }
.dh-badge.peach { color:#955044; background:#f7ddd2; }
.dh-badge.green { color:#286b62; background:#e4f1ed; }
.dh-badge.blue { color:var(--dh-blue); background:#eceffc; }
.dh-date-tile { background:#edf3ef; color:var(--dh-teal); }
.dh-vote:hover,.dh-vote.selected { background:#f4e8d5; color:#94682c; border-color:#ddc49d; }
.dh-action-notice { background:#f7e6d5; border-left-color:var(--dh-gold); }
.dh-action-notice>svg { color:var(--dh-gold); }
.dh-tool-mark { color:#f0bd91; }
.dh-club-letter { background:#f4e0d2; color:#a65f4d; }
.dh-club-item:nth-child(3n+2) .dh-club-letter { background:#e2f0ed; color:var(--dh-teal); }
.dh-club-item:nth-child(3n) .dh-club-letter { background:#f4ead7; color:#a06e2d; }
.dh-topic-meta select:focus { border-color:var(--dh-coral); color:var(--dh-coral); }
.dh-navigation button.active { box-shadow:inset 3px 0 0 var(--dh-coral); }
.dh-auth-art { isolation:isolate; }
.dh-auth-art::before { content:''; position:absolute; z-index:1; width:65%; aspect-ratio:1; right:-18%; top:14%; border:1px solid rgba(255,255,255,.23); border-radius:50%; box-shadow:0 0 0 30px rgba(255,255,255,.06),0 0 0 60px rgba(255,255,255,.035); transform:rotate(-18deg); animation:dh-orbit 18s ease-in-out infinite alternate; pointer-events:none; }
.dh-auth-art::after { z-index:2; background:linear-gradient(180deg,rgba(12,22,51,.16),transparent 42%,rgba(17,28,53,.66)); }
.dh-auth-art>img { z-index:0; filter:saturate(.9) contrast(1.03); transition:transform 1.2s cubic-bezier(.2,.8,.2,1); }
.dh-auth:hover .dh-auth-art>img { transform:scale(1.035); }
.dh-auth-caption,.dh-auth-art .dh-brand { z-index:3; }
.dh-auth-caption h2,.dh-auth-form-wrap h1 { text-wrap:balance; }
.dh-auth-form-wrap { animation:dh-rise .7s cubic-bezier(.2,.8,.2,1) both; }
.dh-auth-tabs { position:relative; }
.dh-auth-tabs::after { content:''; position:absolute; left:0; bottom:-1px; width:72px; height:2px; background:var(--dh-blue); transition:transform .25s ease; }
.dh-auth-tabs button.active { border-bottom-color:transparent; }
.dh-auth-status,.dh-form-error { animation:dh-rise .35s ease both; }
.dh-topbar { background:rgba(255,255,255,.9); backdrop-filter:blur(14px); }
.dh-content { animation:dh-page-in .55s cubic-bezier(.2,.8,.2,1) both; }
.dh-page-heading { animation:dh-rise .55s .04s cubic-bezier(.2,.8,.2,1) both; }
.dh-section,.dh-tool-band,.dh-overview-stats { animation:dh-rise .55s .1s cubic-bezier(.2,.8,.2,1) both; }
.dh-meeting-row,.dh-topic,.dh-member,.dh-setting-row,.dh-club-item { transition:background-color .2s ease,transform .2s ease,border-color .2s ease; }
.dh-meeting-row:hover,.dh-topic:hover,.dh-member:hover,.dh-setting-row:hover { background:#fff; transform:translateX(3px); }
.dh-club-item:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(32,41,101,.09); }
.dh-tool-band { position:relative; overflow:hidden; border-radius:8px; box-shadow:0 12px 30px rgba(32,41,101,.13); }
.dh-tool-band::after { content:''; position:absolute; width:180px; height:180px; right:-65px; top:-95px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 18px rgba(255,255,255,.04),0 0 0 36px rgba(255,255,255,.03); pointer-events:none; }
.dh-modal-backdrop { animation:dh-fade .2s ease both; }
.dh-dialog { animation:dh-dialog-in .3s cubic-bezier(.2,.8,.2,1) both; box-shadow:0 24px 70px rgba(21,29,67,.2); }
@keyframes dh-rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes dh-page-in { from { opacity:0; } to { opacity:1; } }
@keyframes dh-fade { from { opacity:0; } to { opacity:1; } }
@keyframes dh-orbit { from { transform:rotate(-18deg) translate3d(0,0,0); } to { transform:rotate(-9deg) translate3d(-15px,12px,0); } }
@media(max-width:800px) {
  body { font-size:15px; }
  .dh-auth { min-height:100svh; }
  .dh-auth-art { height:238px; min-height:238px; }
  .dh-auth-art::before { width:78%; right:-28%; top:3%; }
  .dh-auth-art .dh-brand { left:22px; top:20px; }
  .dh-auth-caption { left:22px; right:22px; bottom:20px; }
  .dh-auth-caption h2 { font-size:30px; }
  .dh-auth-side { padding:25px 22px 18px; }
  .dh-auth-form-wrap { padding:0 0 24px; }
  .dh-auth-form-wrap h1 { font-size:35px; line-height:1.08; }
  .dh-auth-lede { font-size:14px; line-height:1.6; margin-bottom:24px; }
  .dh-auth .field input,.dh-auth .field select { min-height:54px; border-radius:9px; }
  .dh-auth-submit { min-height:54px; border-radius:9px; font-size:14px; }
  .dh-auth-security { font-size:11px; line-height:1.5; }
  .dh-topbar { background:rgba(255,255,255,.96); }
  .dh-content { padding:27px 18px 36px; }
  .dh-page-heading { margin-bottom:24px; }
  .dh-page-heading h1 { font-family:'DM Serif Display',Georgia,serif; font-size:32px; font-weight:400; line-height:1.12; }
  .dh-page-heading>div>p:last-child:not(.dh-overline) { font-size:12px; line-height:1.65; }
  .dh-overview-stats { padding:18px 0; margin-bottom:25px; }
  .dh-overview-stats>div { padding:0 8px; }
  .dh-overview-stats strong { font-size:23px; }
  .dh-overview-stats span { font-size:10px; }
  .dh-section { margin-bottom:28px; }
  .dh-meeting-row,.dh-topic,.dh-member { padding:18px 0; }
  .dh-meeting-row:hover,.dh-topic:hover,.dh-member:hover,.dh-setting-row:hover { transform:none; background:transparent; }
  .dh-tool-band { border-radius:9px; padding:21px 18px; }
  .dh-tool-band h2 { font-family:'DM Serif Display',Georgia,serif; font-size:23px; font-weight:400; }
  .dh-tool-band>.button { margin-left:43px; width:calc(100% - 43px); }
  .dh-app-footer { padding:17px 18px; }
}
@media(prefers-reduced-motion:reduce) { .dh-auth-art>img { transform:none !important; } }

/* Give working views a little more visual structure without turning them into cards everywhere. */
.dh-main { background:#fbfaf9; }
.dh-content { width:min(1480px,100%); }
.dh-overview-stats { background:#fff; border:1px solid #e9e7e7; border-radius:12px; padding:25px 20px; box-shadow:0 8px 24px rgba(32,41,101,.035); }
.dh-overview-stats>div { padding:5px 28px; }
.dh-overview-stats>div:nth-child(1) svg { color:var(--dh-coral); }
.dh-overview-stats>div:nth-child(2) svg { color:var(--dh-gold); }
.dh-overview-stats>div:nth-child(3) svg { color:var(--dh-teal); }
.dh-overview-columns > .dh-section { padding:20px 22px 14px; border:1px solid #e9e7e7; border-top:3px solid var(--dh-blue); border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(32,41,101,.035); }
.dh-overview-columns > .dh-section:nth-child(2) { border-top-color:var(--dh-coral); }
.dh-overview-columns > .dh-section .dh-empty { background:#f8f8fc; border-radius:9px; margin:4px 0 8px; min-height:210px; }
.dh-section-header { min-height:51px; }
.dh-section-header .dh-overline { color:var(--dh-coral); }
.dh-topic-list,.dh-section:has(.dh-member-list),.dh-section:has(.dh-setting-row) { padding:20px 22px 10px; border:1px solid #e9e7e7; border-top:3px solid var(--dh-coral); border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(32,41,101,.035); }
.dh-topic-list .dh-topic:first-child,.dh-member-list .dh-member:first-child { border-top:0; }
.dh-toolbar { padding:9px 0 5px; }
.dh-search { box-shadow:0 4px 14px rgba(32,41,101,.04); }
.dh-topic-list .dh-empty { background:#f9f4ee; border-radius:9px; min-height:240px; }
.dh-topic-list .dh-topic:nth-child(2n) { background:#fbf9ff; margin-inline:-10px; padding-inline:10px; border-radius:8px; }
.dh-section:has(.dh-meeting-row) { padding:20px 22px 10px; border:1px solid #e9e7e7; border-top:3px solid var(--dh-teal); border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(32,41,101,.035); }
.dh-section:has(.dh-meeting-row) .dh-empty { background:#eef5f2; border-radius:9px; min-height:220px; }
.dh-meeting-row:nth-child(2n) { background:#fcfbf8; margin-inline:-10px; padding-inline:10px; border-radius:8px; }
.dh-clubs-grid { gap:20px; }
.dh-club-item { border:1px solid #e9e7e7; box-shadow:0 8px 24px rgba(32,41,101,.04); }
.dh-club-item:nth-child(3n+2) { border-top:3px solid var(--dh-teal); }
.dh-club-item:nth-child(3n) { border-top:3px solid var(--dh-gold); }
.dh-empty > svg { background:#edf0fc; padding:9px; border-radius:50%; box-sizing:content-box; }
.dh-app-footer { background:#fff; }
.dh-page-heading { position:relative; padding:24px 28px; margin-bottom:30px; border-left:4px solid var(--dh-coral); border-radius:0 12px 12px 0; background:#f8f0ec; }
.dh-page-heading .dh-overline { color:var(--dh-coral); }
.dh-page-heading h1 { color:var(--dh-blue-dark); font-family:'DM Serif Display',Georgia,serif; font-size:36px; font-weight:400; }
.dh-page-heading>div>p:last-child:not(.dh-overline) { color:#685d67; }
.dh-topbar { border-bottom-color:#eadbd5; }
.dh-sidebar { background:#fffdfc; }
.dh-sidebar .dh-brand-mark { color:var(--dh-blue); box-shadow:4px 4px 0 #f2d3c6; }
.dh-club-selector { background:#fbf0eb; border:1px solid #f0ddd5; border-radius:10px; padding:15px 14px 14px; }
.dh-navigation button { border-left:3px solid transparent; }
.dh-navigation button.active { background:#eef0fc; border-left-color:var(--dh-coral); box-shadow:none; }
.dh-tabs button.active { color:var(--dh-coral); border-bottom-color:var(--dh-coral); }
.dh-section-header h2 { color:var(--dh-blue-dark); }
.dh-date-tile { position:relative; overflow:hidden; }
.dh-date-tile::after { content:''; position:absolute; width:18px; height:18px; right:-7px; top:-7px; border:3px solid rgba(201,111,93,.24); border-radius:50%; }
.dh-member:nth-child(2n) { background:#fbfaf8; margin-inline:-10px; padding-inline:10px; border-radius:8px; }
.dh-setting-row:nth-child(2n) { background:#fbfaf8; margin-inline:-10px; padding-inline:10px; border-radius:8px; }
.dh-topic-meta { color:var(--dh-teal); }
.dh-empty h3 { color:var(--dh-blue-dark); }
.dh-empty p { color:#7f7880; }
.dh-dialog { border-top:4px solid var(--dh-coral); }
@media(max-width:800px) {
  .dh-overview-stats { padding:16px 10px; }
  .dh-overview-stats>div { padding:3px 7px; }
  .dh-page-heading { padding:20px 18px; border-radius:0 10px 10px 0; }
  .dh-page-heading h1 { font-size:32px; }
  .dh-member:nth-child(2n),.dh-setting-row:nth-child(2n) { margin-inline:-6px; padding-inline:6px; }
  .dh-overview-columns > .dh-section,.dh-topic-list,.dh-section:has(.dh-member-list),.dh-section:has(.dh-setting-row),.dh-section:has(.dh-meeting-row) { padding:16px 15px 8px; border-radius:11px; }
  .dh-topic-list .dh-topic:nth-child(2n),.dh-meeting-row:nth-child(2n) { margin-inline:-6px; padding-inline:6px; }
}
