*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f7fb;color:#0f172a}.layout{display:flex;min-height:100vh}.sidebar{width:250px;background:#174a96;color:white;padding:24px 14px;position:fixed;top:0;bottom:0;left:0}.brand{font-size:28px;font-weight:800;margin-bottom:28px}.sidebar a{display:block;color:white;text-decoration:none;padding:13px 12px;border-radius:10px;margin:6px 0}.sidebar a:hover{background:rgba(255,255,255,.12)}.main{margin-left:250px;width:calc(100% - 250px)}.topbar{height:76px;background:white;display:flex;align-items:center;gap:20px;justify-content:space-between;padding:0 28px;box-shadow:0 2px 12px rgba(15,23,42,.06);position:sticky;top:0;z-index:5}.topbar input{width:45%;padding:14px 16px;border:1px solid #d7e2f2;border-radius:14px}.content{padding:24px 28px}.panel{background:white;border-radius:18px;padding:22px;margin-bottom:18px;box-shadow:0 12px 32px rgba(16,24,40,.07)}.grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}label{font-weight:700;font-size:14px}input,select,textarea{width:100%;padding:12px 14px;border:1px solid #cfe0f5;border-radius:11px;margin-top:7px;background:white}textarea{min-height:85px}button,.btn{background:#155cc4;color:white;border:0;padding:12px 20px;border-radius:11px;cursor:pointer;text-decoration:none;display:inline-block;margin-top:12px}button:hover,.btn:hover{background:#0e49a1}.cards{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:16px;margin-bottom:18px}.card{background:white;padding:20px;border-radius:18px;box-shadow:0 12px 28px rgba(16,24,40,.06);border:1px solid #edf2fb}.card span{display:block;color:#64748b;font-size:13px}.card strong{display:block;font-size:30px;margin-top:8px;color:#155cc4}.hidden{display:none!important}.floating{position:fixed;right:32px;bottom:32px;border-radius:50px;box-shadow:0 10px 30px rgba(21,92,196,.35);z-index:10}.progress div{height:10px;background:#e5edf8;border-radius:999px;overflow:hidden;margin-top:8px}.progress span{display:block;height:100%;width:0;background:#155cc4}.tree{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.tree .node{padding:10px 14px;border-radius:999px;background:#e5e7eb}.tree .done{background:#dcfce7;color:#166534}.radios{display:flex;gap:10px;flex-wrap:wrap;background:#f8fbff;border:1px solid #dbeafe;border-radius:12px;padding:8px;margin-top:7px}.radios label{font-weight:500}table{width:100%;border-collapse:collapse;background:white;border-radius:16px;overflow:hidden}th,td{padding:12px;border-bottom:1px solid #e5edf8;text-align:left;font-size:14px}th{background:#eff6ff;color:#0f3c7a}.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eaf3ff,#fff)}.login-card{width:430px;background:white;border-radius:24px;padding:36px;box-shadow:0 30px 80px rgba(15,23,42,.12)}.login-card h1{margin-top:0;font-size:32px}.login-card button{width:100%}.alert{background:#fee2e2;color:#b91c1c;padding:12px;border-radius:10px;margin:12px 0}.success{background:#dcfce7;color:#166534;padding:12px;border-radius:10px;margin:12px 0}#toast{position:fixed;right:18px;top:90px;z-index:20}.toast{background:#111827;color:white;padding:14px 18px;border-radius:12px;margin-bottom:10px;box-shadow:0 10px 30px rgba(0,0,0,.18)}.toast.ok{background:#166534}.toast.err{background:#991b1b}.search-box{position:fixed;top:70px;left:50%;transform:translateX(-30%);background:white;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.12);width:430px;z-index:30;overflow:hidden}.search-item{padding:12px 16px;border-bottom:1px solid #e5e7eb}.search-item small{display:block;color:#64748b;margin-top:3px}@media(max-width:1000px){.sidebar{position:static;width:100%;height:auto}.layout{display:block}.main{margin-left:0;width:100%}.grid,.cards{grid-template-columns:1fr}.topbar{height:auto;flex-direction:column;align-items:stretch;padding:15px}.topbar input{width:100%}}.hint{font-size:13px;color:#64748b;text-align:center;margin:12px 0 0}.dashboard-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.quick-actions{display:flex;gap:10px;flex-wrap:wrap}.card:nth-child(1),.card:nth-child(2),.card:nth-child(3){border-left:5px solid #155cc4}.panel h3{margin-top:0}.form-help{background:#eff6ff;border:1px solid #bfdbfe;color:#0f3c7a;border-radius:14px;padding:12px 14px;margin-bottom:16px}.is-open{display:block!important}

.family-start-grid{grid-template-columns:repeat(2,minmax(220px,1fr));max-width:850px}.compact-panel{padding:16px;margin:16px 0}.compact-panel h3{margin-bottom:10px}.form-help{line-height:1.5}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}.secondary{background:#e8eef8;color:#174a96}.secondary:hover{background:#dbe8fb}.editable-node{border:0;cursor:pointer;margin-top:0}.editable-node:hover{filter:brightness(.95)}

.family-group-list{display:flex;flex-direction:column;gap:18px}.family-group-card{background:#fff;border:1px solid #dbeafe;border-radius:18px;box-shadow:0 12px 28px rgba(16,24,40,.06);overflow:hidden}.family-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;background:linear-gradient(180deg,#eff6ff,#ffffff);border-bottom:1px solid #dbeafe}.family-group-head h3{margin:3px 0 8px;color:#0f3c7a}.family-group-head p{margin:3px 0;color:#475569}.family-head-label{display:inline-block;background:#155cc4;color:#fff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.family-member-nest{padding:14px 18px 18px 34px;border-left:5px solid #bfdbfe;margin-left:18px}.head-member-row td{background:#f8fbff}.belongs-to{display:block;color:#64748b;margin-top:3px;font-size:12px}.search-link{display:block;color:inherit;text-decoration:none}.search-link:hover{background:#eff6ff}@media(max-width:900px){.family-group-head{display:block}.family-member-nest{padding-left:12px;margin-left:8px;overflow-x:auto}}


.login-wide{max-width:520px}
.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}
.login-tabs a{display:block;text-align:center;padding:10px;border:1px solid #dbe7ff;border-radius:10px;background:#f8fbff;color:#1f4f9a;text-decoration:none;font-weight:700}
.login-tabs a.active{background:#0b63ce;color:#fff;border-color:#0b63ce}
.member-node-actions{display:flex!important;gap:8px;align-items:center;justify-content:space-between}
.member-node-actions button{margin:0}
.danger-mini{background:#fff1f1!important;color:#b42318!important;border:1px solid #f5b5b5!important;padding:6px 10px!important;border-radius:8px!important}
.user-note{background:#f8fbff;border:1px solid #dbeafe;padding:12px;border-radius:12px;margin-bottom:12px}

/* Family relationship linking and tree preview */
.family-tree-title{width:100%;font-weight:800;color:#0f3c7a;margin:8px 0 10px}.tree{display:block;background:#f8fbff;border:1px solid #dbeafe;border-radius:16px;padding:14px;margin:15px 0}.tree-row{position:relative;margin:8px 0}.tree-row:before{content:'';position:absolute;left:-12px;top:-8px;width:16px;height:24px;border-left:2px solid #bfdbfe;border-bottom:2px solid #bfdbfe}.tree-row.level-0:before{display:none}.tree-member-pill{background:white!important;color:#0f172a!important;border:1px solid #bfdbfe!important;border-radius:12px!important;padding:10px 14px!important;margin:0!important;box-shadow:0 6px 18px rgba(16,24,40,.05);text-align:left}.tree-member-pill b{display:block;color:#155cc4}.tree-member-pill span{display:block;font-size:12px;color:#64748b;margin-top:3px}.member-action-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px dashed #bfdbfe}.family-tree-preview{background:#f8fbff;border:1px solid #dbeafe;border-radius:14px;padding:12px 14px;margin:12px 0 16px}.family-tree-preview h4{margin:0 0 10px;color:#0f3c7a}.family-tree-item{position:relative;margin:7px 0;padding:8px 10px;background:#fff;border:1px solid #e0edff;border-radius:10px;display:inline-block}.family-tree-item small{display:block;color:#64748b;margin-top:2px}
