:root{--bg:#f4f6fb;--panel:#fff;--text:#172033;--muted:#6b7280;--border:#d7dce8;--accent:#2563eb;--danger:#dc2626;--ok:#16a34a;--secondary:#475569}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.topbar{height:58px;background:#101827;color:#fff;display:flex;align-items:stretch;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:10;box-shadow:0 2px 18px #0002}
.brand{display:flex;align-items:center;height:100%;color:#fff;text-decoration:none;padding:0 6px 0 0}
.brand img{display:block;max-height:38px;width:auto}
.topbar nav{display:flex;align-items:stretch;gap:0;height:100%}.topbar nav a{display:flex;align-items:center;height:100%;padding:0 14px;color:#e5e7eb;text-decoration:none;transition:background-color .16s ease,color .16s ease}.topbar nav a:hover{background:#1f2937;color:#fff}.user{display:flex;align-items:center;height:100%;padding:0 14px;color:#bfdbfe}
.container{padding:22px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 25px #18223a0d;padding:20px;margin-bottom:18px}.card.subtle{box-shadow:none;background:#f9fbff}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.grid.two-col{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
label{display:block;font-weight:700;margin-bottom:6px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font:inherit}textarea{min-height:110px}
.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;background:var(--accent);color:white;text-decoration:none;padding:10px 14px;font-weight:700;cursor:pointer}.btn.secondary{background:var(--secondary)}.btn.danger,button.danger{background:var(--danger)}.btn.light{background:#e5e7eb;color:#111827}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}.actions-nowrap{white-space:nowrap}.alert{padding:12px 14px;border-radius:12px;margin-bottom:14px}.alert.success{background:#dcfce7;color:#14532d}.alert.error{background:#fee2e2;color:#7f1d1d}.alert.info{background:#dbeafe;color:#1e3a8a}
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}.table th,.table td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table th{background:#eef2ff}.muted{color:var(--muted)}.big-meta{font-size:15px}
.diagram-wrap{height:calc(100vh - 155px);min-height:640px;border:1px solid var(--border);border-radius:18px;overflow:hidden;background:#fff;position:relative}.toolbar{position:absolute;left:14px;top:14px;z-index:2;background:#ffffffe8;backdrop-filter:blur(10px);padding:10px;border:1px solid var(--border);border-radius:14px;display:flex;gap:8px;align-items:center;box-shadow:0 8px 24px #0001}.toolbar input{width:280px}.cy{height:100%;width:100%}
.sidepanel{position:absolute;right:14px;top:14px;z-index:2;width:390px;max-width:calc(100% - 28px);max-height:calc(100% - 28px);overflow:auto;background:#fffffff2;backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:16px;padding:15px;box-shadow:0 12px 30px #0002;display:none}.sidepanel h3{margin:0 0 8px}.sidepanel p{margin:10px 0}.side-details p{padding-bottom:10px;border-bottom:1px solid #eef2f7}
.pill{display:inline-block;font-size:12px;border-radius:999px;background:#eef2ff;padding:3px 8px;margin-right:5px}.empty{padding:40px;text-align:center;color:var(--muted)}
.tabbar{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tab{padding:9px 14px;border-radius:999px;background:#eef2ff;color:#1e3a8a;text-decoration:none;font-weight:700;border:1px solid #dbeafe}.tab.active{background:#2563eb;color:#fff;border-color:#2563eb}.person-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.detail-list{display:grid;grid-template-columns:minmax(120px,160px) 1fr;gap:12px 16px}.detail-list div{display:contents}.detail-list strong{padding:8px 0}.detail-list span{padding:8px 0;border-bottom:1px solid #eef2f7}.section-title-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.relation-group{margin-bottom:16px}.relation-group h3{margin:0 0 8px}.link-list{margin:0;padding-left:18px}.link-list li{margin:0 0 8px}.link-list a{text-decoration:none;color:#1d4ed8}.link-list a:hover{text-decoration:underline}
.memory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.memory-card{border:1px solid var(--border);border-radius:14px;padding:14px;background:#fbfcff}.memory-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.residence-row{padding:14px}
@media(max-width:760px){.topbar{height:auto;align-items:flex-start;gap:10px;flex-direction:column;padding:14px}.brand{height:auto;padding:0}.brand img{max-height:34px}.topbar nav{height:auto;flex-wrap:wrap;width:100%}.topbar nav a,.user{height:42px;border-radius:10px}.container{padding:14px}.toolbar{right:14px;flex-wrap:wrap}.toolbar input{width:100%}.diagram-wrap{min-height:520px}.detail-list{grid-template-columns:1fr}.detail-list strong{padding:0}.detail-list span{padding:0 0 10px 0}}


/* FamilySearch-szerű személy-adatlap */
.fs-page{max-width:1420px;margin:0 auto}
.fs-hero{background:#fff;border-bottom:1px solid var(--border);margin:-22px -22px 0 -22px;padding:24px 22px 0 22px}
.fs-hero-inner{max-width:1420px;margin:0 auto;display:flex;align-items:center;gap:18px}
.fs-avatar{width:88px;height:88px;border-radius:999px;background:#b9f3ff;display:flex;align-items:center;justify-content:center;font-size:48px;flex:0 0 auto}
.fs-title h1{margin:0;font-size:30px;line-height:1.1}.fs-title .fs-life{margin-top:6px;color:#3f3f46}.fs-code{font-size:13px;color:#64748b;margin-left:6px}
.fs-actions{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0 0 106px}.fs-actions a{color:#0369a1;text-decoration:none;font-weight:700}.fs-actions a:hover{text-decoration:underline}
.fs-tabs{background:#fff;border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0001;margin:0 -22px 18px -22px;position:sticky;top:58px;z-index:8}
.fs-tabs-inner{max-width:1420px;margin:0 auto;display:flex;justify-content:center;gap:2px;overflow:auto}
.fs-tab{display:flex;align-items:center;height:48px;padding:0 18px;color:#172033;text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}.fs-tab.active{border-bottom-color:#0284c7;color:#0369a1;font-weight:700}.fs-tab:hover{background:#f1f5f9}
.fs-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}
.fs-section{background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:12px;box-shadow:0 2px 8px #00000010;overflow:hidden}
.fs-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eef2f7}
.fs-section-head h2{margin:0;font-size:22px}.fs-section-body{padding:16px}
.fs-collapse{color:#334155;font-size:22px;line-height:1}.fs-toggle{display:flex;align-items:center;gap:10px;color:#334155;margin:6px 0 20px}.fs-switch{width:38px;height:18px;border-radius:999px;background:#9ca3af;position:relative}.fs-switch::before{content:"";position:absolute;left:-2px;top:-5px;width:28px;height:28px;border-radius:50%;background:#f8fafc;box-shadow:0 1px 4px #0003}
.fs-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 34px}
.fs-detail-item{min-height:54px;position:relative;padding-right:34px}.fs-detail-label{font-weight:800;margin-bottom:4px}.fs-detail-value{color:#111827}.fs-detail-place{color:#475569}.fs-edit{position:absolute;right:0;top:5px;color:#111827;text-decoration:none;font-size:20px}.fs-add-link{color:#0369a1;text-decoration:none;font-weight:700}.fs-add-link:hover{text-decoration:underline}
.fs-subtitle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e5e7eb;padding-top:18px;margin-top:18px}.fs-subtitle-row:first-child{border-top:0;margin-top:0;padding-top:0}.fs-subtitle-row h3{font-size:20px;margin:0}.fs-soft-row{padding:10px 0;border-bottom:1px solid #eef2f7}
.fs-family-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.fs-family-col h3{margin:0 0 10px;font-size:20px;font-weight:500}.fs-family-card{border:1px solid #d1d5db;border-radius:8px;background:#fff;margin-bottom:12px;overflow:hidden}.fs-family-card-head{background:#f8fafc;padding:8px 10px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;gap:8px;align-items:center}
.fs-person-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:8px 10px;text-decoration:none;color:inherit;border-left:4px solid #0ea5e9}.fs-person-row.female{border-left-color:#ec4899}.fs-person-row.unknown{border-left-color:#94a3b8}.fs-person-row:hover{background:#f0f9ff}.fs-person-row.active{background:#e0f2fe;outline:1px solid #0284c7;border-radius:4px;margin:4px}
.fs-mini-avatar{width:30px;height:30px;border-radius:50%;background:#a5f3fc;display:flex;align-items:center;justify-content:center;font-size:19px}.fs-person-name{font-weight:800}.fs-person-meta{font-size:13px;color:#475569}.fs-pencil{font-size:18px;color:#111;text-decoration:none}.fs-card-note{padding:10px 14px;color:#64748b}.fs-children{background:#f8fafc;border-top:1px solid #e5e7eb}.fs-children-title{padding:9px 14px;font-weight:700;display:flex;justify-content:space-between}.fs-inline-actions{padding:10px 14px;display:flex;flex-direction:column;gap:10px}.fs-inline-actions details{border-top:1px solid #e5e7eb;padding-top:9px}.fs-inline-actions summary{cursor:pointer;color:#0369a1;font-weight:700}.fs-mini-form{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}.fs-mini-form .grid{gap:8px}.fs-mini-form button{justify-self:start}
.fs-side-card{background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:12px;box-shadow:0 2px 8px #00000010}.fs-side-card h3{font-size:22px;margin:0;padding:14px 16px;border-bottom:1px solid #eef2f7}.fs-side-card-body{padding:14px 16px}.fs-side-list{list-style:none;padding:0;margin:0}.fs-side-list li{padding:7px 0}.fs-side-list a{color:#0369a1;text-decoration:none}.fs-side-list a:hover{text-decoration:underline}
.fs-memory-compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.fs-muted-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:12px;color:#64748b}
.fs-danger-inline{background:transparent!important;color:#dc2626!important;padding:0!important;font-weight:700}.fs-delete-form{margin:0}.fs-relation-tools{display:flex;gap:8px;align-items:center}
@media(max-width:1000px){.fs-layout{grid-template-columns:1fr}.fs-sidebar{order:2}.fs-actions{margin-left:0}.fs-detail-grid,.fs-family-grid{grid-template-columns:1fr}}
@media(max-width:760px){.fs-hero{margin:-14px -14px 0 -14px;padding:18px 14px 0}.fs-hero-inner{align-items:flex-start}.fs-avatar{width:64px;height:64px;font-size:34px}.fs-title h1{font-size:24px}.fs-tabs{top:auto;margin:0 -14px 14px}.fs-detail-grid{gap:12px}.fs-section-body{padding:12px}.fs-person-row{grid-template-columns:34px 1fr auto}}


/* FamilySearch-szerű hozzátartozó hozzáadása modal */
.fs-add-button{background:transparent;color:#0369a1;border:0;padding:0;text-align:left;font-weight:700;cursor:pointer;font:inherit}
.fs-add-button:hover{text-decoration:underline}
.fs-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow:auto}
.fs-modal-backdrop[hidden]{display:none!important}
.fs-modal{width:min(840px,96vw);background:#fff;border-radius:12px;box-shadow:0 18px 55px #0005;overflow:hidden}
.fs-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 22px 8px}
.fs-modal-head h2{font-size:22px;margin:0 0 4px}.fs-modal-head p{margin:0;color:#475569}
.fs-modal-close{border:0;background:transparent;font-size:34px;line-height:1;cursor:pointer;color:#111827}
.fs-modal-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e5e7eb}
.fs-modal-tabs button{height:50px;background:#fff;border:0;border-bottom:4px solid transparent;font:inherit;color:#334155;cursor:pointer}
.fs-modal-tabs button.active{border-bottom-color:#0284c7;color:#0369a1;font-weight:700}
.fs-relative-form{padding:22px}
.fs-relative-form label{display:block;font-size:13px;color:#475569;margin-bottom:5px}
.fs-relative-form input,.fs-relative-form select,.fs-relative-form textarea{width:100%;border:1px solid #9ca3af;border-radius:4px;padding:9px 10px;font:inherit;background:#fff}
.fs-relative-form textarea{min-height:74px}
.fs-relative-form small{display:block;color:#475569;margin-top:4px}
.fs-form-row.small{max-width:150px;margin-bottom:18px}
.fs-name-grid{display:grid;grid-template-columns:130px 1fr 1fr 130px;gap:8px;margin-bottom:22px}
.fs-radio-block{margin:18px 0}.fs-radio-block>div{display:flex;gap:24px;align-items:center}.fs-radio-block label label,.fs-radio-block div label{display:flex;gap:9px;align-items:center;font-size:16px;color:#111827;margin:0}
.fs-radio-block input[type=radio]{width:20px;height:20px}
.fs-two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.fs-birth-name-field{max-width:420px}
.fs-modal-extra{border-top:1px solid #e5e7eb;margin-top:18px;padding-top:16px}
.fs-modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:24px}.fs-modal-foot button:not(.linkbtn){background:#0f7c99;color:#fff;border:0;border-radius:6px;padding:10px 18px;font-weight:800;cursor:pointer}.fs-modal-foot .linkbtn{border:0;background:transparent;color:#0369a1;font-weight:700;cursor:pointer}
@media(max-width:760px){.fs-modal-backdrop{padding:0}.fs-modal{width:100%;min-height:100vh;border-radius:0}.fs-name-grid,.fs-two-col{grid-template-columns:1fr}.fs-radio-block>div{flex-wrap:wrap;gap:14px}.fs-relative-form{padding:16px}}
