:root{--ink:#1f2937;--muted:#6b7280;--line:#e2e5ea;--bg:#f5f6f8;--paper:#fff;--accent:#146c84;--accent-soft:#e3f1f4;--danger:#942026;--pick:#146c8426;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:0;font-size:20px}h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:4px 0 12px;font-size:13px}button{font:inherit;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){background:#fafbfc;border-color:#c5cad3}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled),a.button.primary:hover{background:#0f5a6e;border-color:#0f5a6e}button.link{color:var(--accent);background:0 0;border:0;padding:0 6px}button.danger,button.link.danger{color:var(--danger)}input,select,textarea{font:inherit;border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:6px;padding:7px 9px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.5}.error{color:var(--danger)}.spacer{flex:1}.right{text-align:right}.center-page{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:24px}.login{flex-direction:column;gap:12px;width:min(360px,100%);display:flex}.field{flex-direction:column;flex:1;gap:4px;min-width:0;margin-bottom:10px;display:flex}.field>span{color:var(--muted);font-size:12px}.row{gap:10px;display:flex}.toggle{flex:1;align-items:center;gap:8px;margin-bottom:10px;display:flex}.toggle input{width:auto}.row.stage{align-items:flex-end}.row.stage .toggle{margin-bottom:18px}.swatches{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.swatch{border:1px solid var(--line);border-radius:50%;width:24px;height:24px;padding:0}.swatch.active{outline:2px solid var(--accent);outline-offset:2px}.swatch.none{background:linear-gradient(135deg, transparent 45%, var(--danger) 45%, var(--danger) 55%, transparent 55%), #fff}.swatches input[type=color]{width:32px;height:26px;padding:0 2px}.segmented{border:1px solid var(--line);border-radius:6px;display:flex;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line);border-radius:0;flex:1;padding:6px 0}.segmented button:last-child{border-right:0}.segmented button.active{background:var(--accent-soft);color:var(--accent)}.topbar{background:var(--paper);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;min-height:52px;padding:8px 16px;display:flex}.brand{align-items:center;display:flex}.brand img{height:34px;display:block}.login-logo{margin:0 0 4px}.login-logo img{width:100%;height:auto;display:block}.editor-mark{height:24px;display:block}.list-main{max-width:960px;margin:0 auto;padding:24px 16px}.list-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}table.list{border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:10px;width:100%;overflow:hidden}table.list th,table.list td{text-align:left;border-bottom:1px solid var(--line);padding:10px 14px}table.list th{color:var(--muted);font-size:12px;font-weight:500}table.list a{color:var(--accent);font-weight:500;text-decoration:none}.notice{border:1px solid;border-radius:8px;margin-bottom:16px;padding:10px 14px}.notice p{margin:0 0 4px}.notice ul{margin:4px 0 6px;padding-left:20px}.notice.info{background:#eaf4f6;border-color:#b5d9e2}.notice.error{background:#fef2f2;border-color:#fecaca}.editor{flex-direction:column;height:100vh;display:flex}.editor .title{font-size:15px}.save-state{color:var(--muted);font-size:12px}.save-state.error{color:var(--danger)}.editor-body{flex:1;min-height:0;display:flex}.tools{background:var(--paper);border-right:1px solid var(--line);flex-direction:column;gap:4px;width:104px;padding:8px;display:flex;overflow-y:auto}.tools button{border-color:#0000;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:12px;display:flex}.tools button .icon{font-size:20px;line-height:1.1}.tools button.active{background:var(--accent-soft);color:var(--accent);border-color:#b5d9e2}.canvas-wrap{flex:1;min-width:0;position:relative}.canvas{touch-action:none;-webkit-user-select:none;user-select:none;background:#f8f9fb;width:100%;height:100%;display:block}.canvas.tool-female,.canvas.tool-male,.canvas.tool-diverse,.canvas.tool-comment{cursor:crosshair}.hint{color:#0e4d5f;pointer-events:auto;background:#eaf4f6;border:1px solid #b5d9e2;border-radius:8px;max-width:560px;padding:8px 12px;font-size:13px;position:absolute;top:12px;left:12px;right:12px}.panel{background:var(--paper);border-left:1px solid var(--line);width:340px;padding:16px;overflow-y:auto}.panel .delete{width:100%;margin-top:16px}@media (width<=900px){.panel{width:280px}}h3.section{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.subcard{border:1px solid var(--line);background:#fafbfc;border-radius:8px;margin-bottom:12px;padding:10px 12px 12px}.subcard-title{margin-bottom:8px;font-weight:600}.nav{gap:4px;margin-left:16px;display:flex}.navlink{color:var(--ink);border-radius:6px;padding:6px 10px;text-decoration:none}.navlink:hover{background:var(--bg)}.navlink.active{background:var(--accent-soft);color:var(--accent)}a.button{text-align:center;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:9px 12px;text-decoration:none;display:block}a.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.login-form{flex-direction:column;gap:4px;display:flex}.divider{text-align:center;color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.list-main.narrow{max-width:680px}.card.stack{flex-direction:column;align-items:flex-start;margin-top:16px;display:flex}.card.stack>.row,.card.stack>.field{width:100%}.row.wrap{flex-wrap:wrap}.row.wrap>.field{min-width:180px}.table-scroll{overflow-x:auto}table.list select{width:auto}tr.inactive td{color:var(--muted);background:#fafafa}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px}.nowrap{white-space:nowrap}.status{border-radius:999px;padding:2px 8px;font-size:12px}.status.on{color:#166534;background:#dcfce7}.status.off{color:#991b1b;background:#fee2e2}fieldset.plain{border:0;min-width:0;margin:0;padding:0}.banner{z-index:2;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex;position:absolute;top:12px;left:12px;right:12px}.banner.info{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.banner.conflict{color:#7c2d12;background:#fff7ed;border:1px solid #fdba74}.save-state.conflict{color:#c2410c}.modal-backdrop{z-index:10;background:#0f172a59;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 6px;font-size:18px}.share-list{border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:0;list-style:none}.share-list li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px;display:flex}.share-list li:last-child{border-bottom:0}.share-list select{width:auto}.share-name{flex:1;min-width:0}.share-add{flex-wrap:wrap;margin-top:8px}.share-add select:first-child{flex:1;min-width:180px}.share-add select{width:auto}.modal-actions{justify-content:flex-end;margin-top:12px;display:flex}.tag{color:#475569;background:#f1f5f9;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px}[hidden]{display:none!important}.presence{align-items:center;gap:4px;margin-right:8px;display:flex}.presence .avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:600;display:inline-flex}.presence .avatar.more{background:var(--muted)}.save-state.saving{color:var(--muted)}.version{color:var(--muted);margin:0;font-size:11px}.login .version{text-align:center;margin-top:4px}.folders{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.folders button{border-radius:999px}.folders button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}.folders .count{color:var(--muted);margin-left:4px;font-size:11px}.team-members{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.chip{background:var(--accent-soft);color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:2px 4px 2px 10px;font-size:12px;display:inline-flex}.chip.inactive{opacity:.55}.chip button{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 4px}.panel-tabs{border-bottom:1px solid var(--line);background:var(--paper);z-index:1;margin:-16px -16px 16px;display:flex;position:sticky;top:-16px}.panel-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;flex:1;padding:12px 8px 10px}.panel-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.person-tools{gap:8px;margin-bottom:8px;display:flex}.person-tools input{flex:1;min-width:0}.chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.chips button{border-radius:999px;padding:3px 10px;font-size:12px}.chips button.active{background:var(--accent);border-color:var(--accent);color:#fff}h4.list-group{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 4px;font-size:11px;font-weight:600}.person-row{border-bottom:1px solid var(--line)}.person-line{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:0;align-items:center;gap:10px;padding:7px 4px;display:flex}.person-line:hover{background:var(--bg)}.person-row.open>.person-line{background:var(--accent-soft)}.person-row.unplaced>.person-line[draggable=true]{cursor:grab}.person-line .grip{color:var(--muted);width:10px}.mini-symbol{flex:none;width:24px;height:24px}.person-name{flex-direction:column;min-width:0;display:flex}.person-name small{font-size:11.5px}.tag.accent{background:var(--accent-soft);color:var(--accent)}.person-form{padding:10px 2px 14px}.person-actions{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.person-actions button{padding:5px 9px;font-size:12px}.section-head{align-items:center;gap:12px;margin:28px 0 10px;display:flex}.section-head h2,.section-head h3,.section-head .folders{margin:0}.section-head .toggle{flex:none;margin:0}.client-head{margin-bottom:16px}.client-title{align-items:center;gap:14px;margin-bottom:16px;display:flex}.client-title h1{color:var(--accent);margin:0}.client-title p{margin:2px 0 0}.client-title .mini-symbol{width:40px;height:40px}.card.flush{padding:0;overflow:hidden}.card.flush table.list{border:0;border-radius:0}.inset{margin:0;padding:14px 16px}.list-actions.inset p{max-width:640px;margin:0}.field.wide{width:100%}td.symbol-cell{width:32px;padding-right:0}table.list tr.open td{background:var(--accent-soft)}table.list tr.form-row td{background:#fafbfc}.client-person-form .row.wrap>.field{min-width:160px}a.tag{margin-bottom:2px;text-decoration:none;display:inline-block}a.tag.accent,table.list a.tag{color:var(--accent)}.linked{color:var(--accent);margin-left:6px;font-size:11px}.link-note{background:var(--accent-soft);border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:12px;padding:8px 10px;display:flex}.person-row.from-file .person-line{cursor:grab}.small-button{flex:none;padding:3px 8px;font-size:12px}.client-file>p a{color:var(--accent);text-decoration:none}.list-main.client-file{max-width:1240px}.client-file .crumb{margin:0 0 12px}.client-head{padding:18px 22px}.client-head .client-title{flex-wrap:wrap;gap:12px 16px;margin-bottom:0}.big-symbol{flex:none;width:52px;height:52px}.client-title-text h1{color:var(--accent);margin:0;font-size:22px}.client-title-text p{margin:4px 0 0;font-size:13px}.client-fields{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.status-tag{color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 9px;font-size:11px}.status-tag.open{background:var(--accent-soft);color:var(--accent)}.underline-tabs{border-bottom:1px solid var(--line);gap:4px;margin:18px 0 14px;display:flex}.underline-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 18px}.underline-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.client-cols{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px;display:grid}@media (width<=900px){.client-cols{grid-template-columns:1fr}}.table-tools{gap:8px;padding:10px 12px;display:flex}.table-tools input{flex:1;min-width:0}.persons-table th{text-transform:uppercase;letter-spacing:.04em;font-size:11px}.persons-table td{padding:9px 12px}.persons-table .strong{font-weight:600}.chip{background:#f0f2f3;border-radius:4px;margin:1px 4px 1px 0;padding:1px 6px;font-size:11px;text-decoration:none;display:inline-block;color:var(--ink)!important;font-weight:400!important}.chip:hover{background:var(--accent-soft)}.icon-button{color:var(--muted);background:0 0;border:0;padding:2px 8px;font-size:15px}.icon-button:hover{color:var(--accent)}.client-side h3{border-bottom:1px solid var(--line);margin:0;padding:12px 14px;font-size:14px}.client-side .side-divider{border-top:1px solid var(--line)}.side-item{border-bottom:1px solid var(--line);color:var(--ink);flex-direction:column;gap:2px;margin:0;padding:10px 14px;text-decoration:none;display:flex}a.side-item:hover{background:var(--bg)}.side-item small{font-size:11.5px}button.side-item{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;border-radius:0;align-items:flex-start;width:100%}.side-add span{color:var(--accent)}.side-add:hover{background:var(--bg)}.new-genogram{gap:8px}.new-genogram .row{justify-content:flex-end}.side-note{color:#555;border-bottom:0;font-size:13px}.client-head .client-title{flex-wrap:nowrap;align-items:center}.client-title-text{flex:1;min-width:0}.head-actions{flex:none;align-items:center;gap:8px;display:flex}@media (width<=1000px){.client-head .client-title,.head-actions{flex-wrap:wrap}}.client-side h3{text-transform:none;letter-spacing:normal;color:var(--ink);font-weight:600}.notice.warn{background:#fff7e6;border-color:#f0c36d}.tag.warn{color:#8a5a00;background:#fff1d6}.admin-clients .chip{margin:0 4px 2px 0}.admin-clients tr.open>td{border-bottom:none}.client-admin-edit>td{background:var(--bg);padding:12px 16px 16px}.client-admin-edit h4{margin:12px 0 6px}.client-admin-edit .row.wrap>p.field{align-self:end;max-width:280px}.assignments{margin:0 0 8px;padding:0;list-style:none}.assignments li{align-items:center;gap:12px;padding:4px 0;display:flex}.assignments li>span{min-width:200px}.new-client h4{margin:0}input.search{width:100%}.modal.adopt-dialog{width:min(820px,100%);max-height:calc(100vh - 48px);overflow:auto}.adopt-table td{vertical-align:top}.adopt-table select{width:100%}.adopt-table tr.none>td:first-child{opacity:.6}.adopt-table .conflict{flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:6px;font-size:.9em;display:flex}.adopt-table .conflict label{align-items:center;gap:4px;display:inline-flex}.warn-text{color:#8a5a00;margin-top:4px;display:block}.role-link-list{margin:8px 0;padding:0;list-style:none}.role-link-list li label{text-align:left;flex-direction:row;align-items:baseline;gap:10px;padding:4px 0;display:flex}.role-link-list li input{flex:none;width:auto}.role-links .modal-actions{gap:8px}.help-button{border:1px solid var(--accent);width:28px;height:28px;color:var(--accent);background:var(--paper);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.help-button:hover{background:var(--accent);color:#fff}.help-main{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:32px;max-width:1200px;margin:0 auto;padding:24px 16px;display:grid}.help-side{flex-direction:column;gap:12px;max-height:calc(100vh - 32px);display:flex;position:sticky;top:16px;overflow-y:auto}.help-search{width:100%}.help-books{flex-direction:column;gap:2px;display:flex}.help-toc{border-top:1px solid var(--line);flex-direction:column;padding-top:8px;display:flex}.help-toc a{color:var(--ink);border-radius:6px;padding:4px 8px;font-size:14px;text-decoration:none}.help-toc a.level-3{color:var(--muted);padding-left:22px}.help-toc a:hover{background:var(--paper)}.help-toc a.active{background:var(--accent-soft);color:var(--accent)}.help-article{background:var(--paper);border:1px solid var(--line);border-radius:8px;min-width:0;padding:24px 32px 40px}.help-doc{line-height:1.6}.help-doc h1{margin-top:0}.help-doc h2,.help-doc h3,.help-doc details{scroll-margin-top:16px}.help-doc h2{margin-top:32px}.help-doc img{border:1px solid var(--line);border-radius:6px;max-width:100%;height:auto}.help-doc table{border-collapse:collapse;margin:12px 0}.help-doc th,.help-doc td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 10px}.help-doc blockquote{border-left:4px solid var(--accent);background:var(--accent-soft);margin:12px 0;padding:8px 16px}.help-doc hr{border:0;border-top:1px solid var(--line);margin:28px 0}.help-doc code{background:var(--bg);border-radius:4px;padding:1px 4px}.help-faq{border:1px solid var(--line);border-radius:6px;margin:8px 0;padding:0 14px}.help-faq summary{cursor:pointer;padding:10px 0;font-weight:600}.help-faq[open] summary{border-bottom:1px solid var(--line)}.help-flash{animation:1.6s ease-out help-flash}@keyframes help-flash{0%{background:var(--accent-soft)}to{background:0 0}}.help-results h1{margin-top:0}.help-hit{color:var(--ink);border-radius:6px;flex-direction:column;gap:2px;margin:0 -12px;padding:10px 12px;text-decoration:none;display:flex}.help-hit:hover{background:var(--bg)}@media (width<=800px){.help-main{grid-template-columns:1fr}.help-side{max-height:none;position:static}.help-article{padding:16px}}.help-doc h3{text-transform:none;letter-spacing:normal;color:var(--ink);margin-top:24px;font-size:1.15em}.help-doc a{color:var(--accent)}
