:root{
  --bg:#020617;--bg2:#07101f;--panel:#0f172a;--panel2:#111c31;--panel3:#182337;
  --text:#f8fafc;--muted:#94a3b8;--line:#233047;--line2:#334155;
  --gold:#d4a84f;--gold2:#f6d98b;--gold-soft:rgba(212,168,79,.12);
  --green:#34d399;--red:#fb7185;--blue:#60a5fa;
  --shadow:0 18px 50px rgba(0,0,0,.24);
}
[data-theme="light"]{
  --bg:#f7f5ef;--bg2:#eee9de;--panel:#fffdf8;--panel2:#f8f2e6;--panel3:#efe6d6;
  --text:#211a13;--muted:#756b60;--line:#e5d7c1;--line2:#d3c0a2;
  --gold:#a97b32;--gold2:#74501e;--gold-soft:rgba(169,123,50,.10);
  --green:#277b57;--red:#b44e4a;--blue:#356fa6;--shadow:0 15px 38px rgba(73,50,25,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 20% -10%,rgba(212,168,79,.08),transparent 28%),var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}
.as-shell{min-height:100vh}
.as-header{position:sticky;top:0;z-index:50;background:rgba(2,6,23,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(212,168,79,.18)}
[data-theme="light"] .as-header{background:rgba(247,245,239,.94)}
.as-topbar{max-width:1500px;margin:auto;padding:12px 22px;display:flex;gap:18px;align-items:center;border-bottom:1px solid var(--line)}
.as-brand{display:flex;gap:11px;align-items:center;min-width:max-content}
.as-brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#d7ad57,#8a5a20);color:#15100a;font-weight:950;box-shadow:0 8px 25px rgba(212,168,79,.18)}
.as-brand b{display:block;color:var(--gold2);letter-spacing:.09em}.as-brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.11em}
.as-search{flex:1;max-width:640px;margin-left:auto;position:relative}
.as-search input{width:100%;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:11px;padding:10px 42px 10px 38px;outline:none}
.as-search input:focus{border-color:rgba(212,168,79,.65);box-shadow:0 0 0 3px rgba(212,168,79,.08)}
.as-search .glass{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--gold)}
.as-search button{position:absolute;right:6px;top:5px;border:0;border-radius:8px;background:var(--gold);color:#15100a;padding:6px 10px;font-weight:900}
.as-quick{display:flex;gap:8px;align-items:center}.as-icon{width:38px;height:38px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px}
.as-user{display:flex;gap:9px;align-items:center;min-width:max-content}.as-user-photo{width:38px;height:38px;border-radius:50%;background:var(--panel3);display:grid;place-items:center;overflow:hidden;color:var(--gold2);font-weight:900;border:1px solid rgba(212,168,79,.26)}
.as-user-photo img{width:100%;height:100%;object-fit:cover}.as-user small{display:block;color:var(--muted)}
.as-add{border:1px solid rgba(212,168,79,.35);background:linear-gradient(90deg,#c99538,#e1b65d);color:#18110a;border-radius:10px;padding:9px 13px;font-weight:900}
.as-nav{max-width:1500px;margin:auto;padding:7px 22px;display:flex;gap:5px;overflow:auto;scrollbar-width:none}
.as-nav button{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:9px;padding:9px 12px;white-space:nowrap;font-weight:750}
.as-nav button:hover{color:var(--text);background:var(--panel)}.as-nav button.active{color:var(--gold2);background:var(--gold-soft);border-color:rgba(212,168,79,.25)}
.as-main{max-width:1500px;margin:auto;padding:24px 22px 80px}.view{display:none}.view.active{display:block}
.flash{padding:11px 14px;border-radius:11px;background:rgba(52,211,153,.10);border:1px solid rgba(52,211,153,.28);color:#b7f7dd;margin-bottom:14px}
.flash.err{background:rgba(251,113,133,.09);border-color:rgba(251,113,133,.28);color:#fecdd3}
.hero{border:1px solid rgba(212,168,79,.22);background:radial-gradient(circle at 80% 10%,rgba(212,168,79,.14),transparent 26%),linear-gradient(135deg,#0c1426,#131d30);border-radius:22px;padding:28px;box-shadow:var(--shadow)}
[data-theme="light"] .hero{background:radial-gradient(circle at 80% 10%,rgba(169,123,50,.10),transparent 26%),linear-gradient(135deg,#fffdf8,#f4ecde)}
.eyebrow{color:var(--gold);font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.hero h1{font-family:Georgia,serif;color:var(--gold2);font-size:34px;line-height:1.15;margin:8px 0 10px;max-width:920px}.hero p{color:var(--muted);max-width:900px;line-height:1.6}
.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:var(--panel);color:var(--text);font-weight:800}.btn:hover{border-color:rgba(212,168,79,.55)}.btn.primary{background:var(--gold);border-color:var(--gold);color:#171109}.btn.ghost{background:transparent;border-color:rgba(212,168,79,.42);color:var(--gold2)}
.grid{display:grid;gap:14px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.kpi small,.sub{color:var(--muted);font-size:12px}.kpi strong{display:block;font-size:27px;margin:4px 0;color:var(--gold2)}.kpi span{font-size:11px;color:var(--green)}
.two{grid-template-columns:1.3fr .7fr}.three{grid-template-columns:repeat(3,1fr)}
.title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.title h2,.title h3{margin:0}.badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900}.ok{background:rgba(52,211,153,.13);color:#86efc0}.warn{background:rgba(245,158,11,.14);color:#fcd34d}.info{background:rgba(96,165,250,.12);color:#93c5fd}.gold{background:var(--gold-soft);color:var(--gold2)}
.task{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}.ticon{width:40px;height:40px;border-radius:10px;background:var(--panel3);display:grid;place-items:center}
.progress{height:7px;background:var(--panel3);border-radius:99px;overflow:hidden}.progress span{height:100%;display:block;background:linear-gradient(90deg,#9b6b2d,#e7c16f)}
.feed{display:grid;gap:7px}.feeditem{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;padding:8px;border-radius:10px}.feeditem:hover{background:var(--panel2)}.ficon{width:38px;height:38px;border-radius:50%;background:var(--panel3);display:grid;place-items:center;color:var(--gold2);font-weight:900}
.notice{border-left:3px solid var(--gold);background:var(--gold-soft);padding:11px 13px;border-radius:9px;font-size:12px;line-height:1.5}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:14px}.section-head h1,.section-head h2{margin:0}.section-head p{color:var(--muted);margin:4px 0 0;font-size:12px}
.tree-summary{background:var(--panel);border:1px solid rgba(212,168,79,.22);border-radius:17px;padding:15px;margin-bottom:12px;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.tree-metrics{display:flex;gap:20px;align-items:center}.tree-metric strong{display:block;color:var(--gold2);font-size:20px}.tree-metric small{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.tree-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.tree-toolbar button,.tree-toolbar select{border:1px solid var(--line);background:var(--panel);color:var(--text);padding:8px 10px;border-radius:9px}.tree-toolbar .branch-btn.active{color:var(--gold2);background:var(--gold-soft);border-color:rgba(212,168,79,.35)}
.tree-canvas{border:1px solid var(--line);border-radius:18px;background:radial-gradient(circle at center,rgba(212,168,79,.035),transparent 38%),var(--bg2);min-height:600px;overflow:auto;padding:28px}
.tree-stage{min-width:1100px;transform-origin:top center;transition:transform .18s ease}.tree-ancestors{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:start}.tree-branch{padding:12px;border-radius:15px;border:1px solid var(--line);background:rgba(15,23,42,.44)}[data-theme="light"] .tree-branch{background:rgba(255,255,255,.55)}
.tree-branch-label{text-align:center;color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.09em;margin-bottom:12px}.ft-ancestor-node{display:grid;justify-items:center}.ft-ancestor-parents{display:flex;gap:12px;align-items:flex-start;margin-top:18px;position:relative}.ft-ancestor-parents:before{content:"";position:absolute;top:-10px;left:15%;right:15%;border-top:1px solid rgba(212,168,79,.25)}
.ft-person{width:192px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:10px;display:flex;gap:9px;align-items:center;box-shadow:0 9px 24px rgba(0,0,0,.16);transition:.18s}.ft-person:hover{transform:translateY(-2px);border-color:rgba(212,168,79,.55)}.ft-person.is-me{outline:2px solid var(--gold);box-shadow:0 0 0 5px rgba(212,168,79,.08)}
.ft-avatar{width:44px;height:44px;border-radius:11px;background:var(--panel3);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;color:var(--gold2);font-weight:900}.ft-avatar img{width:100%;height:100%;object-fit:cover}.ft-person-body{min-width:0}.ft-person-body strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ft-person-body small{display:block;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.ft-person-meta{display:flex;gap:5px;align-items:center;margin-top:5px;font-size:8px;color:var(--muted)}.ft-verified{font-weight:800}.ft-verified.ok{color:var(--green);background:transparent;padding:0}.ft-verified.pending{color:#fbbf24}
.tree-core{display:grid;justify-items:center;margin:34px 0}.tree-core-line{width:1px;height:28px;background:rgba(212,168,79,.34)}.tree-spouses{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}.tree-children{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:20px}.tree-children-label{color:var(--muted);font-size:10px;text-align:center;margin-top:18px}
.tree-empty{text-align:center;max-width:650px;margin:60px auto}.tree-empty h3{color:var(--gold2)}
.hide-branch{display:none!important}.hide-deceased .ft-person[data-alive="0"]{display:none!important}
.profile-layout{display:grid;grid-template-columns:330px 1fr;gap:14px}.profile-card{text-align:center}.profile-photo{width:120px;height:120px;margin:auto;border-radius:24px;overflow:hidden;background:var(--panel3);display:grid;place-items:center;color:var(--gold2);font-size:28px;font-weight:900;border:1px solid rgba(212,168,79,.22)}.profile-photo img{width:100%;height:100%;object-fit:cover}.photo-actions{display:flex;justify-content:center;gap:6px;margin-top:10px;flex-wrap:wrap}.photo-input{position:relative;overflow:hidden}.photo-input input{position:absolute;inset:0;opacity:0}
.tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}.tabs button{border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:8px 10px;border-radius:9px}.tabs button.active{background:var(--gold-soft);color:var(--gold2);border-color:rgba(212,168,79,.25)}
.signal{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}.signal h4{margin:0 0 5px}.signal p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.archive-tools{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.archive-tools button{border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:8px 10px;border-radius:9px}.archive-tools button.active{background:var(--gold-soft);color:var(--gold2)}
.archive-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.archive-item{min-height:135px;border:1px solid var(--line);border-radius:13px;padding:13px;background:linear-gradient(145deg,var(--panel2),var(--panel));display:flex;flex-direction:column;justify-content:flex-end}.archive-item small{color:var(--muted)}.archive-item b{margin-top:5px}
.story{background:radial-gradient(circle at 25% 25%,rgba(90,89,181,.24),transparent 27%),radial-gradient(circle at 75% 35%,rgba(31,117,109,.16),transparent 34%),#030817;min-height:640px;border:1px solid #18233a;border-radius:22px;padding:25px;position:relative;overflow:hidden}.story h2{font-family:Georgia,serif;color:#f5dda4}.cosmos{height:470px;position:relative}.star{position:absolute;width:11px;height:11px;border-radius:50%;background:#e9c468;box-shadow:0 0 20px rgba(233,196,104,.65)}.label{position:absolute;font-size:11px;color:#e8edf5;white-space:nowrap}.story-panel{position:absolute;right:22px;bottom:22px;width:330px;background:rgba(8,14,28,.76);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:15px;backdrop-filter:blur(10px)}
.calc-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end}.calc-grid select{width:100%;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px}.calc-result{margin-top:12px;display:grid;gap:6px}.calc-path{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.calc-node{padding:7px 9px;border-radius:9px;background:var(--panel2);border:1px solid var(--line);font-size:11px}
.modal{position:fixed;inset:0;background:rgba(2,6,23,.74);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}.modal.open{display:flex}.modalbox{width:min(720px,100%);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px}.modalhead{display:flex;justify-content:space-between;gap:10px}.close{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:9px;width:34px;height:34px}.form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;color:var(--muted);font-weight:800}.field input,.field select,.field textarea{background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:10px;border-radius:9px}.field textarea{min-height:90px}
.mobile-nav{display:none}
.footer{max-width:1500px;margin:auto;border-top:1px solid var(--line);padding:28px 22px 90px;color:var(--muted);font-size:11px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:25px}.footer b{color:var(--gold2)}
.gov-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.gov-kpi{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px}.gov-kpi small{display:block;color:var(--muted);margin-bottom:7px}.gov-kpi strong{font-size:26px}.gov-kpi .hint{font-size:11px;color:var(--muted);margin-top:5px}.gov-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.gov-stack{display:grid;gap:14px}.gov-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px}.gov-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.gov-tab{border:1px solid var(--line);background:var(--panel);padding:8px 11px;border-radius:10px;cursor:pointer;color:var(--text)}.gov-tab.active{background:var(--gold-soft);color:var(--gold2);border-color:rgba(212,168,79,.25)}.gov-panel{display:none}.gov-panel.active{display:block}.gov-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.gov-row:last-child{border-bottom:0}.gov-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--gold-soft)}.gov-status{font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px;background:var(--panel2);color:var(--muted)}.gov-status.approved{background:rgba(52,211,153,.12);color:#86efac}.gov-status.pending{background:rgba(245,158,11,.13);color:#fcd34d}.gov-status.rejected{background:rgba(251,113,133,.12);color:#fda4af}.gov-dupe{display:grid;grid-template-columns:1fr 70px 1fr;gap:9px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;margin:8px 0}.gov-dupe .score{text-align:center;font-weight:900;font-size:19px;color:var(--gold2)}.gov-person{padding:8px;border-radius:10px;background:var(--panel2)}.gov-person b{display:block}.gov-person small{color:var(--muted)}.gov-progress{height:8px;background:var(--panel3);border-radius:999px;overflow:hidden;margin:8px 0}.gov-progress span{display:block;height:100%;background:linear-gradient(90deg,#9b6b2d,#e7c16f)}.gov-missing{display:flex;gap:6px;flex-wrap:wrap}.gov-chip{font-size:10px;padding:5px 8px;border-radius:999px;background:var(--gold-soft);color:var(--gold2)}.gov-timeline{position:relative;padding-left:18px}.gov-event{position:relative;padding:0 0 16px 16px;border-left:1px solid var(--line)}.gov-event:before{content:"";position:absolute;left:-5px;top:4px;width:9px;height:9px;border-radius:50%;background:var(--gold)}.gov-event:last-child{padding-bottom:0}.gov-event b{display:block}.gov-event small{color:var(--muted)}.gov-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.gov-step{border:1px solid var(--line);border-radius:13px;padding:12px}.gov-step .n{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#171109;font-weight:900;margin-bottom:8px}
@media(max-width:1100px){.as-user>div:nth-child(2){display:none}.stats{grid-template-columns:repeat(2,1fr)}.two,.profile-layout,.gov-grid{grid-template-columns:1fr}.archive-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.as-topbar{padding:10px 12px;flex-wrap:wrap}.as-brand{order:1}.as-quick{order:2;margin-left:auto}.as-search{order:3;flex-basis:100%;max-width:none}.as-nav{padding:6px 10px}.as-main{padding:16px 12px 85px}.as-add{display:none}.hero{padding:20px}.hero h1{font-size:27px}.stats,.three,.gov-kpis,.gov-guide{grid-template-columns:1fr}.tree-summary{align-items:flex-start}.tree-metrics{width:100%;justify-content:space-between}.tree-canvas{padding:16px}.tree-stage{min-width:920px}.archive-grid{grid-template-columns:1fr 1fr}.calc-grid{grid-template-columns:1fr}.calc-grid .arrow{display:none}.footer-grid{grid-template-columns:1fr}.mobile-nav{position:fixed;left:10px;right:10px;bottom:10px;display:flex;z-index:60;border:1px solid rgba(212,168,79,.22);background:rgba(2,6,23,.94);backdrop-filter:blur(14px);border-radius:15px;padding:6px;justify-content:space-around}.mobile-nav button{border:0;background:transparent;color:#cbd5e1;font-size:10px;padding:6px}.mobile-nav button.active{color:#f4cf7d}.footer{padding-bottom:100px}}
