:root{--ink:#18372f;--green:#1f5a48;--paper:#fbf7ed;--cream:#f1e6cf;--gold:#c79d53;--line:#d7c8ad;--muted:#6c766e;--danger:#9a4336;--shadow:0 16px 42px #18372f1c}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f8f3e8,#efe4cd);color:var(--ink);font:16px/1.45 Inter,Segoe UI,Arial,sans-serif}.topbar{height:68px;padding:0 max(20px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddcfb7;background:#fffdf8cc;backdrop-filter:blur(12px);position:sticky;top:0;z-index:3}.brand{font:700 18px Georgia,serif;letter-spacing:.2px}.brand-mark{color:var(--gold);font-size:27px;margin-right:9px}.app-shell{max-width:1180px;margin:auto;padding:42px 24px 90px}.hero{padding:25px 0 42px;max-width:650px}.eyebrow{color:#8a6c35;font-weight:800;font-size:11px;letter-spacing:1.6px;margin:0 0 8px}.hero h1{font:700 clamp(38px,6vw,68px)/.98 Georgia,serif;margin:0}.hero em{color:var(--green);font-weight:400}.lead{font-size:18px;color:var(--muted);max-width:560px;margin:20px 0}.hero-actions,.toolbar,.view-switch{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button{border:0;border-radius:10px;padding:12px 16px;font:700 14px inherit;cursor:pointer}.primary{background:var(--green);color:white}.secondary{background:#e4d4b5;color:var(--ink)}.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.toolbar{justify-content:space-between;border-top:1px solid var(--line);padding:18px 0}.search{background:#fffdf8;box-shadow:0 3px 12px #18372f0a;border:1px solid var(--line);border-radius:9px;padding:8px 12px;display:flex;gap:8px;align-items:center;min-width:min(100%,380px)}.search input{border:0;outline:0;background:transparent;font:inherit;width:100%}.view-switch button,.mobile-nav button{border:0;background:transparent;padding:9px 11px;color:var(--muted);font:700 13px inherit;cursor:pointer}.view-switch .active{background:#e6efe9;color:var(--green);border-radius:8px}.view{display:none}.view.active{display:block}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:18px 0}.section-heading h2{font:700 27px Georgia,serif;margin:0}.count{color:var(--muted);font-size:14px}.tree-canvas{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow);overflow:auto}.generation{position:relative;padding:0 0 28px}.generation:not(:last-child):after{content:"";position:absolute;left:34px;bottom:7px;height:20px;border-left:2px solid #d4bc8c}.generation-title{font:800 11px/1 sans-serif;letter-spacing:1.3px;color:#8a6c35;margin:0 0 11px}.nodes{display:flex;flex-wrap:wrap;gap:10px}.person-card{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:12px 13px;width:205px;min-height:85px;text-align:left;cursor:pointer;color:var(--ink);position:relative}.person-card:hover{box-shadow:0 7px 18px #18372f1c;transform:translateY(-1px)}.person-card.focus{border:2px solid var(--green);background:#eef5ef}.person-card.deceased:after{content:"†";position:absolute;right:11px;top:8px;color:#8e6c3c;font:700 20px Georgia}.card-name{font:700 15px Georgia,serif;padding-right:18px}.card-meta{font-size:12px;color:var(--muted);margin-top:5px}.card-family{font-size:11px;color:#8a6c35;margin-top:5px}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:12px}.person-row{background:#fffdf8;border:1px solid var(--line);border-radius:12px;padding:16px;cursor:pointer}.person-row:hover{border-color:var(--gold)}.person-row h3{font:700 18px Georgia,serif;margin:0}.person-row p{margin:5px 0 0;color:var(--muted);font-size:13px}.gaps-list{display:grid;gap:10px}.gap{background:#fffaf0;border-left:4px solid var(--gold);padding:14px 16px;border-radius:0 10px 10px 0}.dialog{border:0;border-radius:16px;padding:0;max-width:min(720px,calc(100vw - 24px));width:100%;box-shadow:0 28px 70px #102c25a6;background:#fffdf8;color:var(--ink)}.dialog::backdrop{background:#102c2588;backdrop-filter:blur(3px)}.close{position:absolute;right:14px;top:11px;border:0;background:transparent;font-size:30px;color:var(--muted);cursor:pointer}.profile{padding:34px}.profile h2{font:700 34px Georgia,serif;margin:0 28px 4px 0}.profile .sub{color:var(--muted);margin:0}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.info{background:#f5eee0;border-radius:10px;padding:12px}.info b{display:block;font-size:11px;letter-spacing:1px;color:#8a6c35}.relations{display:flex;flex-wrap:wrap;gap:8px}.relation{border:1px solid var(--line);background:white;border-radius:999px;padding:7px 10px;font-size:13px;cursor:pointer}.profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.attachment-list{display:grid;gap:7px;margin-top:10px}.attachment{display:flex;align-items:center;justify-content:space-between;padding:9px;background:#f7f1e6;border-radius:8px;font-size:13px}.form{padding:34px}.form h2{font:700 28px Georgia,serif;margin:0 0 20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:5px;font-size:13px;font-weight:700}.field.full{grid-column:1/-1}.field input,.field textarea,.field select{font:inherit;font-weight:400;border:1px solid var(--line);border-radius:8px;padding:10px;background:white;color:var(--ink)}.field textarea{resize:vertical;min-height:76px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.hidden{display:none!important}.mobile-nav{display:none}@media(max-width:680px){.app-shell{padding:25px 16px 95px}.topbar{padding:0 16px}.hero{padding-top:10px}.hero h1{font-size:43px}.toolbar{align-items:stretch}.search{min-width:100%}.view-switch{width:100%;justify-content:space-between}.view-switch button{flex:1}.tree-canvas{padding:18px 14px}.nodes{flex-wrap:nowrap;overflow:auto;padding-bottom:6px}.person-card{min-width:200px}.profile,.form{padding:27px 19px}.profile-grid,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffdf8;border-top:1px solid var(--line);justify-content:space-around;padding:8px env(safe-area-inset-right) calc(8px + env(safe-area-inset-bottom)) env(safe-area-inset-left);z-index:4}.mobile-nav button{display:grid;justify-items:center;gap:1px;font-size:20px}.mobile-nav button span{font-size:10px}.mobile-nav .active{color:var(--green)}}

/* Ręczne układanie kart na planszy. */
.layout-actions{display:flex;gap:9px;align-items:center}.tree-canvas.manual{position:relative;height:860px;padding:0;background-image:radial-gradient(#d9cbae 1px,transparent 1px);background-size:18px 18px;touch-action:none}.connector-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.connector-layer line{stroke:#b6883d;stroke-width:3;stroke-linecap:round}.manual-card{position:absolute!important;touch-action:none;user-select:none;cursor:grab;z-index:1;overflow:hidden}.manual-card.dragging{cursor:grabbing;box-shadow:0 16px 30px #18372f42;z-index:2}.manual-card.link-start{border:3px solid #b6883d;box-shadow:0 0 0 4px #f4dfae}.resize-handle{position:absolute;display:block;touch-action:none}.resize-x{right:2px;top:50%;width:8px;height:24px;border-right:3px solid var(--gold);cursor:ew-resize;transform:translateY(-50%)}.resize-y{bottom:2px;left:50%;width:24px;height:8px;border-bottom:3px solid var(--gold);cursor:ns-resize;transform:translateX(-50%)}.resize-diagonal{right:4px;bottom:4px;width:13px;height:13px;border-right:3px solid var(--gold);border-bottom:3px solid var(--gold);cursor:nwse-resize}.active-tool{background:#e6efe9;color:var(--green);border-color:var(--green)}@media(max-width:680px){.section-heading{align-items:flex-start;gap:12px;flex-direction:column}.tree-canvas.manual{height:1100px;padding:0;min-width:760px}}
