:root{
  --font:'IBM Plex Sans Arabic',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --brand:#173f35;
  --brand-2:#25574a;
  --accent:#b8894a;
  --accent-2:#d8bd86;
  --ink:#1f2c26;
  --muted:#68776d;
  --paper:#fffdf8;
  --soft:#f8f1e6;
  --line:rgba(79,63,38,.22);
  --border:rgba(79,63,38,.15);
  --shadow:0 18px 45px rgba(30,40,32,.09);
  --radius:24px;
}
*{box-sizing:border-box}
html{min-height:100%;overflow-x:hidden;scroll-behavior:smooth}
body{
  min-height:100%;margin:0;overflow-x:hidden;font-family:var(--font);color:var(--ink);
  background:
    radial-gradient(circle at top right,rgba(184,137,74,.12),transparent 32rem),
    radial-gradient(circle at 15% 15%,rgba(23,63,53,.08),transparent 24rem),
    linear-gradient(180deg,#fbf8f1,#f5ecdc 62%,#f8f1e6);
}
a{color:var(--brand);text-decoration:none}a:hover{color:var(--accent)}
img{max-width:100%}.fw-black{font-weight:900}.text-muted{color:var(--muted)!important}
.navbar{min-height:64px;background:rgba(255,253,248,.92)!important;border-bottom:1px solid var(--border);backdrop-filter:blur(14px);box-shadow:0 10px 30px rgba(24,37,28,.06)}
.navbar-brand{font-weight:900;color:var(--brand)!important}.nav-link{font-weight:800;color:#526257!important;border-radius:14px;padding:.55rem .8rem!important}.nav-link:hover{background:rgba(23,63,53,.08);color:var(--brand)!important}
main.container-fluid{max-width:1480px;margin-inline:auto;padding:24px!important}.tree-main-shell{max-width:none!important;width:100%;height:calc(100dvh - 65px);padding:10px!important;overflow:hidden}
.btn{font-weight:850;border-radius:14px!important}.btn-dark{background:linear-gradient(180deg,var(--brand-2),var(--brand));border-color:var(--brand)}.btn-outline-dark{border-color:rgba(23,63,53,.28);color:var(--brand);background:#fffef9}.btn-outline-dark:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.box,.stat-card,.profile-card,.login-card,.scientific-panel,.tree-toolbar,.tree-legend,.tree-app-header{
  background:rgba(255,253,248,.93);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;
}
.form-control,.form-select{min-height:46px;border-radius:15px!important;border-color:rgba(79,63,38,.18)!important;background:#fffef9!important;color:var(--ink)!important;box-shadow:none!important}.form-control:focus,.form-select:focus{border-color:rgba(184,137,74,.62)!important;box-shadow:0 0 0 .22rem rgba(184,137,74,.13)!important}label{font-weight:850;color:#526257}
.hero-card{position:relative;overflow:hidden;max-width:1100px!important;min-height:390px;display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate;padding:58px 28px!important;background:radial-gradient(circle at 24% 8%,rgba(214,176,111,.22),transparent 20rem),radial-gradient(circle at 80% 90%,rgba(23,63,53,.16),transparent 18rem),linear-gradient(135deg,#fffdf8,#f7efdf)}.hero-card::before{content:"";position:absolute;inset:18px;border:1px solid rgba(184,137,74,.25);border-radius:22px;z-index:-1}.hero-card h1{font-weight:900;color:var(--brand);letter-spacing:-.04em}.ornament{color:var(--accent);font-size:2.4rem}.text-gold{color:#9f7135!important;font-weight:900}.stat-card{min-height:120px;display:flex;flex-direction:column;justify-content:center}.stat-card strong{font-size:2.3rem;color:var(--brand)}.stat-card span{font-weight:850;color:#73634c}.branch-card,.result-card,.mini-row,.check-card{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid var(--border);background:linear-gradient(180deg,#fffef9,#faf4e8);border-radius:18px;transition:.2s}.branch-card img,.result-card img,.mini-avatar{width:44px;height:44px;border-radius:14px;background:#fff;border:1px solid var(--border)}.branch-card:hover,.result-card:hover,.mini-row:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(28,35,28,.09)}
.dash-nav{position:sticky;top:76px;z-index:8;display:flex;gap:8px;flex-wrap:wrap;padding:12px;border-radius:22px;background:rgba(255,252,244,.90);border:1px solid var(--border);backdrop-filter:blur(14px);box-shadow:0 10px 28px rgba(28,35,28,.055)}.dash-nav a{background:rgba(255,255,255,.72);border:1px solid rgba(112,91,56,.15);color:#455349;padding:.62rem .9rem;border-radius:14px;font-weight:850}.dash-nav a:hover{background:var(--brand);color:#fff}.table-responsive{overflow:auto}.table{margin:0;vertical-align:middle}.table thead th{background:#f2e8d8;color:var(--brand);font-weight:900;border-bottom:1px solid var(--border);padding:13px 12px}.table tbody td{padding:12px;border-color:rgba(112,91,56,.1);color:#344039}.table tbody tr:hover{background:rgba(23,63,53,.035)}.profile-card{display:flex;gap:18px;align-items:center;background:radial-gradient(circle at top right,rgba(36,89,75,.10),transparent 16rem),linear-gradient(180deg,#fffef8,#f8f0e3)}.profile-avatar{width:120px;height:120px;object-fit:cover;border-radius:28px;border:1px solid var(--border);box-shadow:0 16px 28px rgba(28,35,28,.10)}.pill{display:inline-flex;padding:.45rem .8rem;border-radius:999px;background:rgba(23,63,53,.08);border:1px solid rgba(23,63,53,.12);color:var(--brand);font-weight:850}.login-card{max-width:470px;margin-top:8vh}
/* tree shell */
.tree-fullscreen-page{background:#f7f1e6}.tree-fullscreen-page .navbar{min-height:64px}.tree-workspace{height:100%;min-height:0;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);gap:8px;overflow:hidden}.tree-app-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}.tree-app-header h2{margin:0;color:var(--brand);font-weight:900}.tree-app-header p{margin:.25rem 0 0;color:var(--muted);font-size:.92rem}.tree-eyebrow{display:inline-flex;color:#9f7135;font-size:.78rem;font-weight:900;letter-spacing:.02em}.tree-toolbar{display:grid;grid-template-columns:minmax(240px,1.1fr) auto auto auto auto;gap:8px;align-items:center;padding:10px!important}.tree-toolbar__search,.tree-toolbar__views,.tree-toolbar__actions,.tree-toolbar__zoom,.tree-toolbar__modes{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.tree-toolbar .btn,.tree-toolbar .form-control{min-height:40px!important;font-size:.86rem;padding:.5rem .75rem!important}.btn-tree-view,.btn-tree-mode{background:#fff;border:1px solid rgba(112,91,56,.18);color:var(--brand);font-weight:900;border-radius:13px!important}.btn-tree-view.active,.btn-tree-mode.active,.btn-tree-view:hover,.btn-tree-mode:hover{background:linear-gradient(180deg,#24473c,#173f35);border-color:#173f35;color:#fff}.tree-legend{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px!important}.tree-legend__title{font-weight:900;color:#5a4830}.tree-legend__items{display:flex;gap:7px;flex-wrap:wrap}.legend-chip{display:inline-flex;padding:.38rem .72rem;border-radius:999px;border:1px solid rgba(112,91,56,.16);font-size:.78rem;font-weight:850}.gen-root-chip{background:#f1e7d4}.gen-1-chip{background:#fcf6ea}.gen-2-chip{background:#e8edd9}.gen-3-chip{background:#f4dfdb}.scientific-panel{display:grid;grid-template-columns:minmax(250px,1fr) 2fr;gap:12px;align-items:center;padding:12px 14px!important}.scientific-panel h3{margin:0;color:var(--brand);font-weight:900}.scientific-panel p{margin:.25rem 0 0;color:var(--muted);font-size:.88rem}.scientific-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.scientific-stat{text-align:center;border-radius:16px;background:#fffaf1;border:1px solid var(--border);padding:8px}.scientific-stat strong{display:block;color:var(--brand);font-size:1.25rem;font-weight:900}.scientific-stat span{font-size:.78rem;color:#74634c;font-weight:850}.kinship-list{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;font-size:.83rem}.kinship-list span{background:#fff;border:1px solid var(--border);border-radius:999px;padding:.35rem .6rem}.tree-display-switcher,.tree-display-panel{min-height:0;height:100%}.tree-display-panel{display:none}.tree-display-panel.is-active{display:block}.tree-stage{position:relative;height:100%;min-height:0;border-radius:24px;background:radial-gradient(circle at 20% 10%,rgba(214,176,111,.14),transparent 21rem),radial-gradient(circle at 82% 18%,rgba(23,63,53,.10),transparent 24rem),linear-gradient(180deg,#fffdf7,#f7efdf);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;contain:layout paint}.tree-pan-hint{position:absolute;top:10px;left:12px;z-index:4;display:flex;align-items:center;gap:6px;max-width:min(520px,calc(100% - 24px));background:rgba(255,253,248,.86);border:1px solid var(--border);border-radius:999px;padding:.42rem .75rem;color:#745f41;font-size:.78rem;font-weight:850;pointer-events:none}.tree-pan-hint::before{content:"⌘";font-weight:900;color:var(--accent)}
/* smart tree */
.family-tree{height:100%;width:100%;overflow:auto;scrollbar-width:none;overscroll-behavior:contain;padding:52px 28px 28px;direction:ltr;cursor:grab}.family-tree::-webkit-scrollbar{display:none}.family-tree.is-dragging{cursor:grabbing}.tree-scale-layer{--tree-zoom:1;display:flex;justify-content:center;align-items:flex-start;width:max-content;min-width:max-content;margin-inline:auto;transform:scale(var(--tree-zoom));transform-origin:top center;transition:transform .18s ease;direction:rtl}.tree-node{display:flex;flex-direction:column;align-items:center;position:relative;margin:0}.tree-node>summary{list-style:none;display:flex;justify-content:center;align-items:center;position:relative;z-index:2}.tree-node>summary::-webkit-details-marker{display:none}.tree-summary{cursor:pointer}.person-card{width:148px;min-height:72px;display:flex;align-items:center;gap:7px;padding:8px 9px;border-radius:14px;background:linear-gradient(180deg,#fffdf7,#f6ecd9);border:1px solid rgba(112,91,56,.28);box-shadow:0 8px 18px rgba(28,35,28,.08);transition:.15s}.person-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(28,35,28,.13)}.person-card__avatar{flex:0 0 auto}.avatar{width:34px;height:34px;object-fit:cover;border-radius:10px;background:#fff;border:1px solid rgba(112,91,56,.18)}.person-card__content{min-width:0;flex:1}.person-card__top{display:none}.person-card .name{display:block;color:var(--brand);font-weight:900;font-size:.88rem;line-height:1.25;white-space:normal}.person-card__meta,.person-card__science{display:flex;gap:4px;flex-wrap:wrap;color:#75664e;font-size:.66rem;font-weight:750;line-height:1.25}.person-card__age{color:#8a642e;font-size:.68rem;font-weight:900}.gen-root>.tree-summary .person-card{width:190px;min-height:82px;background:linear-gradient(180deg,#fff6df,#ead7b2);border-color:rgba(154,111,52,.45)}.gen-root>.tree-summary .person-card .name{font-size:1.02rem}.gen-1>.tree-summary .person-card{background:#fcf6ea}.gen-2>.tree-summary .person-card{background:#eef4e4}.gen-3>.tree-summary .person-card{background:#faebe9}.tree-node.has-descendants>.tree-summary::after{content:"";position:absolute;bottom:-18px;left:50%;width:1px;height:18px;background:var(--line)}.tree-descendants{position:relative;display:flex;justify-content:center;align-items:flex-start;margin-top:36px}.tree-descendants::before{content:"";position:absolute;top:-18px;left:50%;width:calc(100% - 74px);max-width:100%;height:1px;background:var(--line);transform:translateX(-50%)}.marriage-groups{display:flex;align-items:flex-start;justify-content:center;gap:18px}.spouse-group{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:0}.spouse-group::before{content:"";position:absolute;top:-18px;left:50%;width:1px;height:18px;background:var(--line)}.spouse-head{height:26px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.spouse-label{display:inline-flex;align-items:center;max-width:150px;min-height:24px;border-radius:999px;background:linear-gradient(180deg,var(--accent),#8e6530);color:#fff;padding:.25rem .58rem;font-size:.68rem;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spouse-facts{display:none}.vertical-children,.children{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:10px}.vertical-children::before,.children::before{content:"";position:absolute;top:-16px;left:50%;width:calc(100% - 58px);height:1px;background:var(--line);transform:translateX(-50%)}.vertical-children>.tree-node::before,.children>.tree-node::before{content:"";position:absolute;top:-16px;left:50%;width:1px;height:16px;background:var(--line)}.no-children-note{width:150px;text-align:center;background:#fff8ed;border:1px dashed rgba(184,137,74,.35);border-radius:14px;padding:8px;color:#7a6040;font-size:.75rem;font-weight:800}.tree-mode-map .tree-scale-layer{align-items:flex-start}.tree-mode-map .marriage-groups{gap:14px}.tree-mode-map .person-card{width:136px}.tree-match{animation:pulseMatch 1.1s ease-in-out infinite alternate}@keyframes pulseMatch{from{box-shadow:0 0 0 3px rgba(184,137,74,.18),0 8px 18px rgba(28,35,28,.08)}to{box-shadow:0 0 0 7px rgba(184,137,74,.08),0 14px 28px rgba(28,35,28,.14)}}
/* table view */
.tree-view-table-active .tree-toolbar__zoom,.tree-view-table-active .tree-toolbar__modes{opacity:.48}.table-tree-shell{height:100%;overflow:auto;scrollbar-width:thin;border-radius:24px;border:1px solid var(--border);background:rgba(255,253,248,.95);box-shadow:var(--shadow);padding:14px}.table-tree-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:12px}.table-tree-head h3{margin:0;color:var(--brand);font-weight:900}.table-tree-head p{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}.table-generation+.table-generation{margin-top:16px}.table-generation__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.table-generation__head h4{margin:0;color:var(--brand);font-size:1.05rem;font-weight:900}.table-generation__head span{padding:.35rem .75rem;border-radius:999px;background:rgba(23,63,53,.08);color:var(--brand);font-weight:850}.table-tree-wrap{border:1px solid var(--border);border-radius:18px;overflow:auto;background:#fffdf8}.table-tree{min-width:980px}.table-tree thead th{position:sticky;top:0;z-index:1}.table-person{display:flex;align-items:center;gap:10px;min-width:220px}.table-person img{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#fff}.table-person strong{display:block;color:var(--brand);font-weight:900}.table-person small{color:#7b6b54;font-weight:800}.table-tree-row.table-tree-match td{background:#fff0d7!important}.table-tree-row.table-tree-hidden{display:none}
/* fullscreen */
.tree-workspace:fullscreen{height:100dvh;width:100vw;padding:10px;background:#f7f1e6;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr)}.tree-workspace:fullscreen .tree-app-header{display:none}.tree-workspace:fullscreen .tree-toolbar{position:relative;z-index:10}.tree-is-fullscreen .tree-stage{border-radius:20px}.tree-is-fullscreen .family-tree{padding-top:54px}
/* print */
@page{size:A4 landscape;margin:7mm}@media print{html,body{background:#fff!important;overflow:visible!important}.navbar,.tree-app-header,.tree-toolbar,.tree-legend,.scientific-panel,.tree-pan-hint{display:none!important}.tree-main-shell,main.container-fluid{height:auto!important;overflow:visible!important;padding:0!important}.tree-workspace{display:block!important;height:auto!important;overflow:visible!important}.tree-display-switcher,.tree-display-panel{display:block!important;height:auto!important}.tree-stage{width:100%!important;height:190mm!important;min-height:0!important;overflow:hidden!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;break-after:page;page-break-after:always}.family-tree{height:100%!important;width:100%!important;overflow:hidden!important;padding:0!important}.tree-scale-layer{transform:scale(var(--print-tree-scale,.42))!important;transform-origin:top center!important}.person-card{box-shadow:none!important}.table-tree-shell{height:auto!important;overflow:visible!important;border:0!important;box-shadow:none!important;background:#fff!important;padding:0!important}.table-tree-wrap{overflow:visible!important}.table-tree{min-width:unset!important;font-size:9pt}.box,.stat-card,.profile-card,.spouse-group{box-shadow:none!important}}
/* responsive */
@media(max-width:1500px){.tree-toolbar{grid-template-columns:minmax(240px,1fr) auto auto auto}.tree-toolbar__modes{grid-column:1/-1}.person-card{width:138px}.gen-root>.tree-summary .person-card{width:176px}.marriage-groups{gap:14px}.vertical-children,.children{gap:8px}}
@media(max-width:1200px){.tree-workspace{grid-template-rows:auto auto auto auto minmax(0,1fr)}.tree-toolbar{grid-template-columns:1fr auto auto}.tree-toolbar__views,.tree-toolbar__modes{grid-column:1/-1}.scientific-panel{grid-template-columns:1fr}.scientific-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:992px){main.container-fluid{padding-inline:14px!important}.tree-main-shell{height:calc(100dvh - 65px);overflow:hidden}.tree-workspace{height:100%;display:grid}.tree-toolbar{grid-template-columns:1fr;overflow:auto;max-height:180px}.tree-toolbar__search,.tree-toolbar__views,.tree-toolbar__actions,.tree-toolbar__zoom,.tree-toolbar__modes{justify-content:flex-start}.tree-stage{border-radius:20px}.family-tree{padding:50px 16px 24px}.scientific-panel{display:none}.profile-card{flex-direction:column;align-items:flex-start}.dash-nav{position:static}.table-tree-shell{height:100%}}
@media(max-width:768px){.box,.stat-card,.profile-card,.login-card,.scientific-panel,.tree-toolbar,.tree-legend,.tree-app-header{padding:14px!important;border-radius:18px!important}.tree-app-header{display:none}.tree-legend{display:none}.tree-workspace{grid-template-rows:auto minmax(0,1fr)}.btn-tree-view,.btn-tree-mode,.tree-toolbar .btn,.tree-toolbar .form-control{width:100%}.tree-toolbar{max-height:220px}.tree-display-switcher{min-height:0}.person-card{width:126px;min-height:64px;padding:7px}.gen-root>.tree-summary .person-card{width:156px}.avatar{width:30px;height:30px}.person-card .name{font-size:.8rem}.person-card__meta,.person-card__science,.person-card__age{font-size:.6rem}.spouse-label{max-width:130px;font-size:.62rem}.marriage-groups{gap:10px}.vertical-children,.children{gap:7px}.table-tree{min-width:820px}.scientific-grid{grid-template-columns:repeat(2,1fr)}.hero-card{min-height:auto;padding:42px 18px!important;border-radius:24px!important}.hero-card h1{font-size:clamp(2rem,14vw,3.2rem)}}
@media(max-width:480px){.tree-main-shell{padding:6px!important}.tree-toolbar{max-height:235px}.family-tree{padding:42px 10px 18px}.tree-pan-hint{left:8px;right:8px;justify-content:center;font-size:.68rem}.person-card{width:118px}.gen-root>.tree-summary .person-card{width:146px}.table-tree-shell{padding:10px}}
