:root{--bg: #F5EFE0;--bg-2: #EFE7D4;--surface: #FDFAF2;--surface-2: #F2EADA;--surface-3: #E8DDC6;--ink: #1D2A44;--ink-soft: #4A5876;--ink-faint: #8A8AA0;--rule: #DDD0B4;--rule-strong: #C4B48E;--gold: #A8801F;--gold-bright: #C9A227;--gold-leaf: #E0C36A;--gold-wash: rgba(168, 128, 31, .11);--lapis: #1E4B8F;--garnet: #8E2B36;--emerald: #1B6B4F;--aubergine: #6B3560;--focus: #C9A227;--shadow-sm: 0 1px 2px rgba(29, 42, 68, .07);--shadow-md: 0 1px 2px rgba(29, 42, 68, .07), 0 8px 24px -12px rgba(29, 42, 68, .22);--shadow-lg: 0 2px 6px rgba(29, 42, 68, .1), 0 24px 48px -20px rgba(29, 42, 68, .32);--font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-urdu: "Noto Nastaliq Urdu", "Jameel Noori Nastaleeq", serif;--font-wordmark: "Shajra Wordmark", serif;--radius: 9px;--radius-sm: 6px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0E1729;--bg-2: #121D33;--surface: #172441;--surface-2: #1E2E52;--surface-3: #27395F;--ink: #F2E9D6;--ink-soft: #B9C2DA;--ink-faint: #7C88A8;--rule: #2B3C63;--rule-strong: #3E5382;--gold: #D9B44A;--gold-bright: #E9CE7C;--gold-leaf: #F0DEA4;--gold-wash: rgba(217, 180, 74, .16);--lapis: #6E9BE0;--garnet: #D98089;--emerald: #63BC96;--aubergine: #B688AC;--focus: #E9CE7C;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 30px -14px rgba(0, 0, 0, .7);--shadow-lg: 0 2px 8px rgba(0, 0, 0, .5), 0 28px 56px -24px rgba(0, 0, 0, .8)}}:root[data-theme=dark]{--bg: #0E1729;--bg-2: #121D33;--surface: #172441;--surface-2: #1E2E52;--surface-3: #27395F;--ink: #F2E9D6;--ink-soft: #B9C2DA;--ink-faint: #7C88A8;--rule: #2B3C63;--rule-strong: #3E5382;--gold: #D9B44A;--gold-bright: #E9CE7C;--gold-leaf: #F0DEA4;--gold-wash: rgba(217, 180, 74, .16);--lapis: #6E9BE0;--garnet: #D98089;--emerald: #63BC96;--aubergine: #B688AC;--focus: #E9CE7C;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 30px -14px rgba(0, 0, 0, .7);--shadow-lg: 0 2px 8px rgba(0, 0, 0, .5), 0 28px 56px -24px rgba(0, 0, 0, .8)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overscroll-behavior:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}button{font:inherit;color:inherit}.app{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:hidden}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:7px 16px;min-height:56px;border-bottom:1px solid var(--rule);background:var(--surface);z-index:20}.topbar .search{flex:1 1 170px;min-width:0}.topbar .search input{width:100%;min-width:0}.brand{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:baseline;gap:8px}.brand .urdu{font-family:var(--font-wordmark);font-size:17px;color:var(--gold);line-height:2}.brand .tree-name{font-family:var(--font-body);font-size:14px;font-weight:400;color:var(--ink-soft);padding-left:12px;border-left:1px solid var(--rule);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22ch}.topbar .spacer{flex:1}.seg{display:inline-flex;border:1px solid var(--rule);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2)}.seg button{border:0;background:transparent;padding:6px 12px;font-size:13px;cursor:pointer;color:var(--ink-soft);white-space:nowrap}.seg button+button{border-left:1px solid var(--rule)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:500;box-shadow:inset 0 -2px 0 var(--gold)}.btn{border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--radius-sm);padding:7px 13px;font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--gold)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--gold);border-color:var(--gold);color:#fff;font-weight:500}:root[data-theme=dark] .btn.primary,:root:not([data-theme=light]) .btn.primary{color:#1a1408}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .btn.primary{color:#fff}}.btn.primary:hover:not(:disabled){background:var(--gold-bright);border-color:var(--gold-bright)}.btn.quiet{border-color:transparent;background:transparent;color:var(--ink-soft)}.btn.quiet:hover:not(:disabled){background:var(--surface-2)}.btn.danger{color:var(--garnet);border-color:var(--rule)}.btn.danger:hover:not(:disabled){background:var(--garnet);color:#fff;border-color:var(--garnet)}.badge{font-family:var(--font-mono);font-size:11px;padding:2px 7px;border-radius:999px;background:var(--gold-wash);color:var(--gold);border:1px solid var(--gold-wash)}.stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(130% 110% at 50% 0%,var(--bg-2),transparent 72%),var(--bg);touch-action:none;cursor:grab}.stage.dragging{cursor:grabbing}.stage svg{display:block;width:100%;height:100%}.edge-near{fill:none;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.edge-marriage{stroke:var(--gold);fill:none;stroke-width:2.2;stroke-linecap:round}.edge-long,.edge-distant{stroke:var(--gold);fill:none;stroke-width:1.6;opacity:.22;stroke-dasharray:6 6}.edge-exchange{stroke:var(--emerald);fill:none;stroke-width:1.9;opacity:.45;stroke-dasharray:2 7;stroke-linecap:round}.edge-highlight{stroke:var(--gold-bright)!important;opacity:1;stroke-width:3;stroke-dasharray:none}.edge-dim{opacity:.07}.union-mark{fill:var(--gold);stroke:none}.union-mark.ended{fill:var(--bg);stroke:var(--gold);stroke-width:1.6}.card-rect{fill:var(--surface);stroke-width:1.2}.card-rect.selected{stroke:var(--gold)!important;stroke-width:3}.card-rect.focus-person{stroke:var(--gold-bright)!important;stroke-width:3.4}.card-rect.dimmed{opacity:.3}.card-name{font-family:var(--font-body);font-weight:550;fill:var(--ink)}.card-name.urdu{font-family:var(--font-urdu)}.card-dates{font-family:var(--font-mono);fill:var(--ink-faint)}.card-kin{font-family:var(--font-body);fill:var(--gold);font-weight:600}.card-dot{fill:var(--rule-strong)}.card-dot.selected{fill:var(--gold)}.legend{position:absolute;left:14px;top:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:10px 12px;box-shadow:var(--shadow-sm);max-width:210px;z-index:5}.legend h4{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 7px;font-weight:500}.legend ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.legend li{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft)}.legend .swatch{width:16px;height:3px;border-radius:2px;flex-shrink:0}.legend .note{margin:7px 0 0;padding-top:7px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--ink-faint);background:none;border-left:0;border-radius:0}.gen-band{fill:var(--ink);opacity:.022}.gen-label{font-family:var(--font-mono);font-size:11px;fill:var(--ink-faint);letter-spacing:.08em}.canvas-controls{position:absolute;right:14px;bottom:14px;display:flex;flex-direction:column;gap:6px;z-index:5}.canvas-controls button{width:34px;height:34px;border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-size:15px;display:grid;place-items:center;box-shadow:var(--shadow-sm)}.canvas-controls button:hover{border-color:var(--gold);background:var(--surface-2)}.canvas-hint{position:absolute;left:14px;bottom:14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--rule);padding:6px 10px;border-radius:var(--radius-sm);pointer-events:none;display:flex;gap:12px}.panel{position:absolute;top:0;right:0;bottom:0;width:min(400px,100%);background:var(--surface);border-left:1px solid var(--rule);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:10;animation:slide-in .18s ease-out}@keyframes slide-in{0%{transform:translate(14px);opacity:0}}@media(prefers-reduced-motion:reduce){.panel{animation:none}}.panel-head{padding:16px 18px 12px;border-bottom:1px solid var(--rule);display:flex;align-items:flex-start;gap:10px}.panel-head h2{font-family:var(--font-display);font-size:23px;font-weight:600;margin:0;line-height:1.2;letter-spacing:-.01em}.panel-head .sub{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);margin-top:3px}.panel-body{flex:1;overflow-y:auto;padding:4px 18px 24px}.panel-section{padding:14px 0;border-top:1px solid var(--rule)}.panel-section:first-child{border-top:0}.panel-section h3{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 10px;font-weight:500}.rel-list{display:flex;flex-direction:column;gap:2px}.rel-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;border:0;background:transparent;text-align:left;width:100%}.rel-row:hover{background:var(--surface-2)}.rel-row .nm{flex:1;font-size:14px}.rel-row .yr{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}.rel-row .kin{font-size:11.5px;color:var(--gold);font-weight:500}.add-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.field{display:block;margin-bottom:10px}.field span{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:4px}.field input,.field select,.field textarea{width:100%;padding:7px 9px;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);font:inherit;font-size:14px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--gold);outline:2px solid var(--focus);outline-offset:1px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.note{font-size:12.5px;color:var(--ink-soft);background:var(--surface-2);border-left:2px solid var(--gold);padding:8px 10px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:10px 0}.note.warn{border-left-color:var(--garnet)}.centre{min-height:100%;display:grid;place-items:center;padding:24px}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:30px 32px;width:min(420px,100%)}.card h1{font-family:var(--font-display);font-size:30px;font-weight:500;margin:0 0 6px;letter-spacing:-.015em}.card p.lede{color:var(--ink-soft);margin:0 0 20px;font-size:14.5px}.err{color:var(--garnet);font-size:13.5px;margin:10px 0 0}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-size:13.5px;box-shadow:var(--shadow-lg);z-index:100;max-width:90vw}.spinner{width:22px;height:22px;border:2px solid var(--rule);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.search-wrap{position:relative}.search-wrap input{width:220px;padding:6px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);font:inherit;font-size:13.5px}.search-results{position:absolute;top:calc(100% + 5px);left:0;width:300px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:340px;overflow-y:auto;z-index:30;padding:4px}.search-results button{display:block;width:100%;text-align:left;padding:7px 10px;border:0;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:14px}.search-results button:hover{background:var(--surface-2)}@media(max-width:640px){.topbar{gap:8px;padding:0 10px}.brand .tree-name{display:none}.search-wrap input{width:130px}.panel{width:100%}}.portrait{width:54px;height:54px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--gold);box-shadow:0 0 0 1px var(--rule),var(--shadow-sm)}.photo-strip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.photo-thumb{position:relative;width:72px;height:72px}.photo-thumb img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--rule-strong);display:block}.photo-thumb button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-soft);font-size:11px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0;box-shadow:var(--shadow-sm)}.photo-thumb button:hover{background:var(--garnet);color:#fff;border-color:var(--garnet)}.edge-online{stroke:var(--gold-bright)!important;stroke-width:3.4;opacity:1;stroke-dasharray:none;filter:drop-shadow(0 0 3px var(--gold-wash))}.edge-offline{opacity:.2}.card-rect.on-line{stroke:var(--gold-bright);stroke-width:2.6}.edge-online.side-paternal{stroke:var(--lapis)!important}.edge-online.side-maternal{stroke:var(--garnet)!important}.edge-online.side-both{stroke:var(--gold-bright)!important;stroke-width:4}.edge-online.side-descendant{stroke:var(--emerald)!important}.card-rect.on-line.side-paternal{stroke:var(--lapis)}.card-rect.on-line.side-maternal{stroke:var(--garnet)}.card-rect.on-line.side-both{stroke:var(--gold-bright);stroke-width:3.4}.card-rect.on-line.side-descendant{stroke:var(--emerald)}.card-rect.on-line.side-self{stroke:var(--gold-bright);stroke-width:3.6}.side-key{position:absolute;left:14px;bottom:52px;background:color-mix(in srgb,var(--surface) 93%,transparent);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:9px 12px;box-shadow:var(--shadow-sm);z-index:5;display:grid;gap:4px;font-size:12.5px;color:var(--ink-soft)}.side-key .row{display:flex;align-items:center;gap:7px}.side-key .swatch{width:16px;height:3px;border-radius:2px;flex-shrink:0}.voice-row{display:flex;align-items:center;gap:6px}.voice-row audio{height:34px}.recording{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--garnet);border-radius:var(--radius-sm);background:var(--surface)}.recording .pulse{width:14px;height:14px;border-radius:50%;background:var(--garnet);flex-shrink:0;transition:transform 80ms linear}.recording .meter{height:5px;background:var(--surface-2);border-radius:3px;overflow:hidden}.recording .meter-fill{height:100%;background:var(--garnet);border-radius:3px;transition:width 80ms linear}.recording .clock{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);margin-top:5px}@media(prefers-reduced-motion:reduce){.recording .pulse,.recording .meter-fill{transition:none}}.fan-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.fan-svg{width:100%;height:100%;display:block}.fan-slot path{stroke:var(--bg);stroke-width:1.5;transition:fill .12s ease}.fan-slot text{fill:var(--ink);font-family:var(--font-body);font-weight:500;pointer-events:none}.fan-slot.side-paternal path{fill:color-mix(in srgb,var(--lapis) 22%,var(--surface))}.fan-slot.side-maternal path{fill:color-mix(in srgb,var(--garnet) 20%,var(--surface))}.fan-slot.empty path{fill:var(--surface-2)}.fan-slot.empty text{display:none}.fan-slot:first-child path{fill:var(--gold);stroke:var(--gold-bright);stroke-width:2}.fan-centre{fill:#fff;font-family:var(--font-display);font-size:17px;font-weight:600;pointer-events:none}.fan-centre-sub{fill:#ffffffd1;font-family:var(--font-mono);font-size:10.5px;pointer-events:none}:root[data-theme=dark] .fan-centre,:root:not([data-theme=light]) .fan-centre{fill:#1a1408}:root[data-theme=dark] .fan-centre-sub,:root:not([data-theme=light]) .fan-centre-sub{fill:#1a1408bf}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .fan-centre{fill:#fff}:root:not([data-theme=dark]) .fan-centre-sub{fill:#ffffffd1}}.fan-slot.twin path{stroke:var(--gold-bright);stroke-width:2}.fan-slot.lit path,.fan-slot.twin-lit path{fill:var(--gold-bright);stroke:var(--gold);stroke-width:2.5}.fan-slot.selected path{stroke:var(--gold);stroke-width:3}.fan-slot:hover path{filter:brightness(1.06)}.fan-controls{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--surface) 93%,transparent);border:1px solid var(--rule);border-radius:999px;padding:6px 10px;box-shadow:var(--shadow-sm)}.fan-controls .count{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);min-width:62px;text-align:center}.fan-key{position:absolute;left:14px;top:14px;max-width:250px;background:color-mix(in srgb,var(--surface) 93%,transparent);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:10px 12px;box-shadow:var(--shadow-sm);font-size:12.5px;color:var(--ink-soft)}.fan-key .row{display:flex;align-items:center;gap:7px;margin-bottom:4px}.fan-key .swatch{width:14px;height:10px;border-radius:2px;flex-shrink:0}.fan-key .swatch.pat{background:color-mix(in srgb,var(--lapis) 40%,var(--surface))}.fan-key .swatch.mat{background:color-mix(in srgb,var(--garnet) 40%,var(--surface))}.fan-key .swatch.twin{background:var(--gold-bright)}.fan-key .note{margin:7px 0 0;padding-top:7px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--ink-faint);line-height:1.45}@media(max-width:640px){.fan-key{max-width:190px;font-size:11.5px}}.fan-empty{position:absolute;left:50%;top:58%;transform:translate(-50%);max-width:340px;text-align:center;background:color-mix(in srgb,var(--surface) 95%,transparent);border:1px solid var(--rule);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-md)}.fan-empty p{margin:6px 0 0;font-size:13.5px;color:var(--ink-soft)}.tracing{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--gold);border-radius:999px;padding:6px 8px 6px 16px;box-shadow:var(--shadow-md);font-size:13px;color:var(--ink-soft);z-index:6;max-width:calc(100vw - 32px)}.tracing strong{color:var(--ink);font-weight:600}.tracing .btn{padding:4px 10px;font-size:12.5px}@media(max-width:640px){.tracing{font-size:12px;padding-left:12px}}*{-webkit-tap-highlight-color:rgba(168,128,31,.18)}button,.btn,.rel-row,.seg button{touch-action:manipulation}.topbar{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.canvas-controls{bottom:max(14px,env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right))}.fan-controls{bottom:max(14px,env(safe-area-inset-bottom))}.panel{padding-bottom:env(safe-area-inset-bottom)}.panel,.sheet,.card{overscroll-behavior:contain}@media(max-width:720px){.app{min-width:0}.topbar{height:auto;min-height:52px;flex-wrap:wrap;gap:8px;padding:8px 12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));overflow-x:auto;overscroll-behavior-x:contain}.brand .tree-name{display:none}.brand{font-size:18px;flex-shrink:0}.topbar .search{order:10;flex:1 0 100%;min-width:0}.topbar .search input{width:100%}.topbar .spacer{display:none}.seg button,.topbar .btn{padding:6px 10px;font-size:12.5px}.panel{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;z-index:30;border-left:0}}@media(max-width:380px){.brand .urdu{display:none}}.btn:active:not(:disabled),.seg button:active,.rel-row:active{transform:translateY(1px) scale(.994)}.btn,.seg button,.rel-row{transition:background-color .14s ease,border-color .14s ease,transform 90ms ease}@media(prefers-reduced-motion:reduce){.btn,.seg button,.rel-row{transition:none}.btn:active:not(:disabled),.seg button:active,.rel-row:active{transform:none}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 0%,color-mix(in srgb,var(--surface-2) 60%,var(--surface)) 50%,var(--surface-2) 100%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.tree-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;gap:18px;align-content:center}.tree-skeleton .ring{border-radius:50%;border:2px solid var(--rule);opacity:.5}.tree-skeleton .label{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);letter-spacing:.08em}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14151d6b;display:grid;place-items:start center;padding-top:7vh;z-index:50;overflow-y:auto}.missing-years{width:min(680px,94vw);max-height:82vh;overflow-y:auto}.year-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:2px}.year-row{display:grid;grid-template-columns:1fr auto auto 78px auto;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm)}.year-row:nth-child(odd){background:var(--surface-2)}.year-row .nm{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.year-row .nm.as-link{border:0;background:none;padding:0;text-align:left;color:var(--ink);cursor:pointer;font:inherit;font-weight:500}.year-row .nm.as-link:hover{color:var(--gold);text-decoration:underline}.year-row .why{font-size:11.5px;color:var(--ink-faint);white-space:nowrap}.year-row .about{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-soft);white-space:nowrap;cursor:pointer}.year-row .yr-input{width:100%;padding:6px 8px;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-family:var(--font-mono);font-size:13px;text-align:center}.year-row.done{opacity:.6;grid-template-columns:1fr auto}.year-row .ok{font-family:var(--font-mono);font-size:12.5px;color:var(--emerald)}@media(max-width:640px){.year-row{grid-template-columns:1fr 70px auto;row-gap:6px}.year-row .why,.year-row .about{display:none}}.duplicates{width:min(780px,95vw);max-height:85vh;overflow-y:auto}.dup-title{display:flex;align-items:flex-start;gap:12px}.dup-title h1{font-size:24px;margin:0;flex:1}.duplicates>.lede{margin-top:4px}.dup{border:1px solid var(--rule);border-radius:var(--radius);padding:14px 16px;margin:16px 0;background:var(--surface-2)}.dup.weak{background:transparent;border-style:dashed}.dup-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.dup-case{flex:1;display:flex;flex-direction:column;gap:4px}.confidence{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--gold);background:var(--gold-wash);border-radius:999px;padding:3px 9px;flex-shrink:0}.dup.weak .confidence{color:var(--ink-faint);background:var(--rule-wash, rgba(0,0,0,.05))}.why{margin:0;padding-left:17px;font-size:13px;color:var(--ink-soft)}.why li{margin:1px 0}.why.against{list-style:none;padding-left:2px}.why.against li:before{content:"but ";color:var(--ink-faint);font-style:italic}.dup-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}.dup-side{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:11px 12px;display:flex;flex-direction:column;gap:9px}.dup-side .nm{border:0;background:none;padding:0;text-align:left;cursor:pointer;font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink)}.dup-side .nm:hover{color:var(--gold);text-decoration:underline}.dup-side dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:0;font-size:12.5px;flex:1}.dup-side dt{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding-top:2px}.dup-side dd{margin:0;color:var(--ink-soft)}.dup-side dd em{color:var(--ink-faint)}.dup-act{margin-top:auto;display:flex;flex-direction:column;gap:7px}.dup-act .would{margin:0;font-size:12px;line-height:1.45;color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:8px}.dup-act .would b{color:var(--ink);font-weight:600}.dup-act .btn{justify-content:center}.dup-different{margin-top:11px;font-size:12.5px}.dup-weak-block{margin-top:20px;padding-top:14px;border-top:1px solid var(--rule)}.dup-weak-toggle{font-size:13px;padding-left:6px;padding-right:10px}.dup-weak-note{margin:7px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-faint);max-width:62ch}.dup-foot{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--rule)}.dup-foot span{flex:1;font-size:13px;color:var(--ink-faint)}@media(max-width:640px){.dup-pair{grid-template-columns:1fr}.dup-act{margin-top:4px}}.claim{width:min(460px,94vw);max-height:88vh;overflow-y:auto}.claim-title{display:flex;align-items:flex-start;gap:12px}.claim-title h1{font-size:22px;margin:0;flex:1}.claim .lede{margin-top:2px}.claim .field{display:flex;flex-direction:column;gap:4px;margin:14px 0}.claim .field>span{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.claim .field small{font-size:11.5px;color:var(--ink-faint)}.claim .field input[disabled]{color:var(--ink-soft);opacity:1}.claim-rels{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:4px 13px 13px;margin:18px 0 0}.claim-rels legend{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink);padding:0 6px}.claim .field.inline{flex-direction:row;align-items:center;gap:10px;margin:9px 0}.claim .field.inline>span{width:52px;flex-shrink:0;padding-top:0}.claim .field.inline input{flex:1;min-width:0}.claim-why{font-size:12.5px;color:var(--ink-soft);margin:6px 0 10px}.claim-foot{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--rule)}.claim-foot span{flex:1;font-size:12px;color:var(--ink-faint);line-height:1.45}.btn.is-me{margin-top:7px;font-size:12.5px;padding:3px 10px}.claim-evidence{margin-top:9px;padding:10px 12px;border-left:2px solid var(--gold);background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.claim-evidence dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0 0 8px;font-size:12.5px}.claim-evidence dt{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);padding-top:2px}.claim-evidence dd{margin:0;color:var(--ink)}.claim-evidence dd em{color:var(--ink-faint)}.claim-evidence ul{list-style:none;margin:0;padding:0;font-size:12.5px}.claim-evidence li{display:flex;align-items:baseline;gap:8px;padding:2px 0}.claim-evidence .mark{width:12px;flex-shrink:0;font-weight:700}.claim-evidence li.hit .mark{color:var(--emerald, #1B6B4F)}.claim-evidence li.miss .mark{color:var(--garnet, #8E2B36)}.claim-evidence .rel{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);width:48px;flex-shrink:0}.claim-evidence .given{color:var(--ink)}.claim-evidence .note{color:var(--ink-faint);font-style:italic;font-size:11.5px}.claim-evidence .none{margin:0;font-size:12.5px;color:var(--ink-soft)}.claim-evidence .tally{margin:8px 0 0;font-size:12px;color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:7px}.manage{position:relative}.manage-menu{position:fixed;z-index:60;min-width:232px;padding:5px;background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:1px}.manage-menu button{display:flex;flex-direction:column;gap:1px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:none;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}.manage-menu button:hover,.manage-menu button:focus-visible{background:var(--surface-2)}.manage-menu .label{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:500}.manage-menu .hint{font-size:12px;color:var(--ink-faint)}
