/* Ургийн мод: UrgiinMod модулийн загвар. Бүх дүрэм .urgiin-app дотор хязгаарлагдсан. */
@import url("https://fonts.googleapis.com/css2?family=Alegreya:ital,wght@0,400;0,500;0,700;1,400&family=Alegreya+SC:wght@500;700&family=Alegreya+Sans:wght@400;500;700&display=swap&subset=cyrillic,cyrillic-ext");
.urgiin-app{
  --bg:#E8EBF0; --sheet:#FBFCFD; --ink:#1C2440; --muted:#5A6380; --rule:#CBD1DC;
  --gold:#B07C06; --gold-ink:#7A5400; --gold-soft:#F5E6B9; --blue-soft:#E1E7F3; --halo:#FFFFFF;
  --card-bg:#EEF0F3; --inlaw-bg:#FFFFFF; --brown:#5A3416; --red:#C62828;
  --shadow:0 1px 0 rgba(28,36,64,.06), 0 8px 24px -16px rgba(28,36,64,.25);
  --serif:"Alegreya","PT Serif",Georgia,"Times New Roman",serif;
  --sc:"Alegreya SC","Alegreya",Georgia,serif;
  --sans:"Alegreya Sans","PT Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  color-scheme:light;
  box-sizing:border-box;
}
@media (prefers-color-scheme: dark){
  .urgiin-app:not([data-theme="light"]){
    --bg:#10141D; --sheet:#181E2C; --ink:#E6E9F2; --muted:#9AA3BC; --rule:#2C3550;
    --gold:#E2AC32; --gold-ink:#F0C463; --gold-soft:#3A2F14; --blue-soft:#222B42; --halo:#10141D;
    --card-bg:#232A3A; --inlaw-bg:#181E2C; --brown:#B07A48; --red:#FF6B5E;
    --shadow:0 1px 0 rgba(0,0,0,.3), 0 10px 26px -16px rgba(0,0,0,.6);
    color-scheme:dark;
  }
}
.urgiin-app[data-theme="dark"]{
  --bg:#10141D; --sheet:#181E2C; --ink:#E6E9F2; --muted:#9AA3BC; --rule:#2C3550;
  --gold:#E2AC32; --gold-ink:#F0C463; --gold-soft:#3A2F14; --blue-soft:#222B42; --halo:#10141D;
  --card-bg:#232A3A; --inlaw-bg:#181E2C; --brown:#B07A48; --red:#FF6B5E;
  --shadow:0 1px 0 rgba(0,0,0,.3), 0 10px 26px -16px rgba(0,0,0,.6);
  color-scheme:dark;
}
.urgiin-app *,.urgiin-app *::before,.urgiin-app *::after{box-sizing:inherit}
.urgiin-app{display:block;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.45}
.urgiin-app button,.urgiin-app input,.urgiin-app select,.urgiin-app textarea{font:inherit;color:inherit}
.urgiin-app :focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}
.urgiin-app .sc{font-family:var(--sc);font-weight:700;letter-spacing:.02em}
.urgiin-app [hidden]{display:none!important}

/* Masthead */
.urgiin-app .mast{max-width:1240px;margin:0 auto;padding:28px 20px 8px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}
.urgiin-app .emblem{width:58px;height:58px;border-radius:50%;object-fit:cover;background:var(--sheet);border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--gold-ink)}
.urgiin-app .emblem img{width:100%;height:100%;object-fit:cover}
.urgiin-app .emblem svg{width:38px;height:38px}
.urgiin-app .mast h1{margin:0;font-family:var(--serif);font-weight:700;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.1}
.urgiin-app .mast p{margin:4px 0 0;color:var(--muted);font-size:.98rem}
.urgiin-app .mast-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.urgiin-app .btn{appearance:none;border:1px solid var(--rule);background:var(--sheet);border-radius:10px;padding:8px 14px;cursor:pointer;font-weight:500;line-height:1.2}
.urgiin-app .btn:hover{border-color:var(--muted)}
.urgiin-app .btn.primary{background:var(--ink);color:var(--sheet);border-color:var(--ink)}
.urgiin-app .btn.primary:hover{opacity:.92}
.urgiin-app .btn.gold{background:var(--gold-soft);border-color:transparent;color:var(--gold-ink)}
.urgiin-app .btn.small{padding:5px 10px;font-size:.9rem;border-radius:8px}
.urgiin-app .btn.link{border:none;background:none;padding:2px 0;text-decoration:underline;text-underline-offset:3px;color:var(--muted)}
.urgiin-app .btn.link:hover{color:var(--ink)}
.urgiin-app .btn.danger{color:#B3261E}
.urgiin-app .btn.danger:hover{border-color:#B3261E}

/* Generation spine */
.urgiin-app .spine-wrap{max-width:1240px;margin:0 auto;padding:10px 20px 18px}
.urgiin-app .spine{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(92px,1fr);overflow-x:auto;border-top:2px solid var(--ink);scrollbar-width:thin}
.urgiin-app .gen{appearance:none;background:none;border:none;border-left:1px solid var(--rule);text-align:left;padding:10px 12px 8px;cursor:pointer;position:relative}
.urgiin-app .gen:first-child{border-left:none;padding-left:0}
.urgiin-app .gen .rn{display:block;font-family:var(--sc);font-weight:700;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1}
.urgiin-app .gen .yr,.urgiin-app .gen .ct{display:block;font-size:.85rem;color:var(--muted)}
.urgiin-app .gen .yr{margin-top:4px}
.urgiin-app .gen::before{content:"";position:absolute;left:0;right:0;top:-2px;height:4px;background:transparent}
.urgiin-app .gen[aria-pressed="true"]::before{background:var(--gold)}
.urgiin-app .gen[aria-pressed="true"] .rn,.urgiin-app .gen:hover .rn{color:var(--gold-ink)}
.urgiin-app .spine-empty{padding:10px 0;color:var(--muted);font-size:.95rem}

/* Layout */
.urgiin-app .layout{max-width:1240px;margin:0 auto;padding:0 20px 48px;display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}
.urgiin-app .layout > main{min-width:0}
.urgiin-app .index{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px);max-height:calc(100vh - 24px - env(safe-area-inset-top,0px));display:flex;flex-direction:column;background:var(--sheet);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.urgiin-app .search{padding:14px 14px 10px;border-bottom:1px solid var(--rule)}
.urgiin-app .search label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:6px}
.urgiin-app .search input{width:100%;border:1px solid var(--rule);border-radius:10px;padding:9px 12px;background:var(--bg)}
.urgiin-app .index-body{overflow:auto;padding:6px 6px 14px;overscroll-behavior:contain}
.urgiin-app .idx-gen{margin:10px 0 4px;padding:6px 8px;font-size:.85rem;color:var(--muted);display:flex;justify-content:space-between;align-items:baseline;position:sticky;top:-6px;z-index:2;background:var(--sheet);box-shadow:0 1px 0 var(--rule)}
.urgiin-app .idx-gen b{font-family:var(--sc);font-weight:700;color:var(--ink);font-size:1rem}
.urgiin-app .idx-item{display:block;width:100%;text-align:left;border:none;background:none;padding:6px 8px;border-radius:8px;cursor:pointer}
.urgiin-app .idx-item:hover{background:var(--blue-soft)}
.urgiin-app .idx-item[aria-current="page"]{background:var(--gold-soft)}
.urgiin-app .idx-item .nm{font-family:var(--serif);line-height:1.25}
.urgiin-app .idx-item .sub{display:block;font-size:.8rem;color:var(--muted);font-family:var(--sans)}
.urgiin-app .idx-item.inl .nm{color:var(--muted)}
.urgiin-app .miss{color:var(--red);font-family:var(--sans);font-weight:700;font-size:.7em;margin-left:2px;line-height:0}
.urgiin-app .idx-item.inl{padding-left:28px;position:relative}
.urgiin-app .idx-item.inl::before{content:"";position:absolute;left:13px;top:4px;height:12px;width:9px;border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);border-bottom-left-radius:3px}
.urgiin-app .idx-empty{padding:14px;color:var(--muted);font-size:.95rem}
.urgiin-app .status{font-size:.8rem;color:var(--muted);padding:8px 14px;border-top:1px solid var(--rule)}

/* Tabs */
.urgiin-app .tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--rule);overflow-x:auto}
.urgiin-app .tab{appearance:none;background:none;border:none;padding:8px 14px 10px;cursor:pointer;color:var(--muted);font-weight:500;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.urgiin-app .tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--gold)}
.urgiin-app .tabs.mini{margin-bottom:10px}
.urgiin-app .tabs.mini .tab{padding:6px 12px 8px;font-size:.95rem}

/* Sheet */
.urgiin-app .sheet{background:var(--sheet);border-radius:16px;box-shadow:var(--shadow);display:grid;grid-template-columns:96px minmax(0,1fr);min-height:60vh}
.urgiin-app .margin{border-right:1px solid var(--rule);padding:22px 10px;text-align:center}
.urgiin-app .margin .gn{font-family:var(--sc);font-weight:700;font-size:1.4rem;color:var(--gold-ink)}
.urgiin-app .margin .gl{font-size:.8rem;color:var(--muted)}
.urgiin-app .sheet-main{padding:22px 28px 28px;min-width:0}
.urgiin-app .crumbs{font-size:.9rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px 6px;align-items:baseline;justify-content:center}
.urgiin-app .crumbs button{appearance:none;border:none;background:none;padding:0;cursor:pointer;color:var(--muted);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}
.urgiin-app .crumbs button:hover{color:var(--ink)}
.urgiin-app .crumbs .sep{color:var(--rule)}
.urgiin-app .page-head{text-align:center}
.urgiin-app .relation{margin:14px 0 0;color:var(--muted);font-size:1rem;display:flex;align-items:center;justify-content:center;gap:10px}
.urgiin-app .title{margin:2px 0 0;font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.1}
.urgiin-app .title .nick{font-style:italic;font-weight:400;color:var(--muted);font-size:.7em}
.urgiin-app .clan{display:block;font-style:italic;font-weight:400;color:var(--muted);font-family:var(--serif);line-height:1.2}
.urgiin-app .title .clan{font-size:.5em;margin-bottom:2px}
.urgiin-app .pcard .clan{font-size:.82em}
.urgiin-app .emblem-top{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0 auto 14px;text-align:center}
.urgiin-app .emblem-top .em{width:128px;height:128px;display:flex;align-items:center;justify-content:center;color:var(--gold-ink)}
.urgiin-app .emblem-top img{width:128px;height:128px;object-fit:contain;border-radius:10px;background:#fff;display:block}
.urgiin-app .emblem-top svg{width:110px;height:110px}
.urgiin-app .emblem-cap{font-family:var(--sc);font-weight:700;color:var(--gold-ink);font-size:.95rem;letter-spacing:.06em}

.urgiin-app .photos{display:grid;grid-template-columns:minmax(0,560px);justify-content:center;margin-top:18px}
.urgiin-app .ph{margin:0}
.urgiin-app .ph .frame{aspect-ratio:4/3;border-radius:6px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;overflow:hidden;color:var(--muted);border:1px solid var(--rule)}
.urgiin-app .ph .frame img{width:100%;height:100%;object-fit:cover;display:block}
.urgiin-app .ph .frame svg{width:46px;height:46px;opacity:.5}
.urgiin-app .ph .ph-empty{font-size:.85rem}
.urgiin-app .ph .frame.empty{aspect-ratio:auto;min-height:130px;padding:20px}
.urgiin-app .portrait .ph .frame.empty{aspect-ratio:3/4}
.urgiin-app .ph-actions{display:flex;gap:10px;margin-top:8px;justify-content:center;align-items:center}
.urgiin-app .icon-btn{appearance:none;border:1px solid var(--rule);background:var(--sheet);color:var(--muted);width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex:0 0 auto}
.urgiin-app .icon-btn:hover{color:var(--ink);border-color:var(--ink)}
.urgiin-app .icon-btn.danger:hover{color:#B3261E;border-color:#B3261E}
.urgiin-app .icon-btn svg{width:18px;height:18px}
.urgiin-app .icon-btn.gold-btn{background:var(--gold-soft);color:var(--gold-ink);border-color:transparent}
.urgiin-app .icon-btn.gold-btn:hover{border-color:var(--gold);color:var(--gold-ink)}
.urgiin-app [data-tip]{position:relative}
.urgiin-app [data-tip]::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);background:var(--ink);color:var(--sheet);font:500 .8rem/1.3 var(--sans);padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease .2s;z-index:20;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.urgiin-app [data-tip]::before{content:"";position:absolute;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--ink);border-bottom-width:0;pointer-events:none;opacity:0;transition:opacity .12s ease .2s;z-index:20}
.urgiin-app [data-tip]:hover::after,.urgiin-app [data-tip]:hover::before,.urgiin-app [data-tip]:focus-visible::after,.urgiin-app [data-tip]:focus-visible::before{opacity:1}
.urgiin-app .back-btn{width:30px;height:30px}
.urgiin-app .next-btn{width:30px;height:30px;background:var(--ink);color:var(--sheet);border-color:var(--ink)}
.urgiin-app .next-btn:hover{color:var(--sheet);opacity:.88}

.urgiin-app .story{margin:18px auto 0;font-family:var(--serif);font-size:1.06rem;line-height:1.62;max-width:68ch}
.urgiin-app .story p{margin:0 0 .8em}
.urgiin-app .story-empty{color:var(--muted);font-style:italic}
.urgiin-app .story-foot{max-width:68ch;margin:4px auto 0;display:flex;gap:12px}
.urgiin-app .story-edit{max-width:68ch;margin:18px auto 0}
.urgiin-app .story-edit textarea{width:100%;border:1px solid var(--rule);border-radius:10px;padding:8px 11px;background:var(--bg);font-family:var(--serif);font-size:1rem;line-height:1.5;min-height:240px;resize:vertical}
.urgiin-app .story-edit .row{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}

.urgiin-app .section-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:28px 0 10px;border-bottom:1px solid var(--rule);padding-bottom:6px}
.urgiin-app .section-h h2{margin:0;font-family:var(--serif);font-weight:500;font-size:1.3rem}
.urgiin-app .section-h .ct{color:var(--muted);font-size:.9rem}
.urgiin-app .cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.urgiin-app .col{display:flex;flex-direction:column;gap:12px;min-width:0}
.urgiin-app .col-h{font-size:.88rem;color:var(--muted);display:flex;align-items:center;gap:4px}

/* Person card */
.urgiin-app .pcard{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:10px;background:var(--card-bg);min-width:0;position:relative}
.urgiin-app .pcard.inlaw{background:var(--inlaw-bg);border:1px solid var(--rule)}
.urgiin-app .pcard.ml{border:2px solid var(--brown)}
.urgiin-app .pcard.flash{animation:flash 1.6s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 4px var(--gold)}100%{box-shadow:0 0 0 0 transparent}}
.urgiin-app .pc-body{flex:1;min-width:0}
.urgiin-app .pthumb{appearance:none;flex:0 0 auto;width:56px;height:56px;padding:0;border:1px solid var(--rule);border-radius:8px;background:var(--sheet);color:var(--muted);overflow:hidden;cursor:pointer;display:flex;align-items:flex-end;justify-content:center}
.urgiin-app .pcard.f .pthumb{border-radius:50%}
.urgiin-app .pthumb img{width:100%;height:100%;object-fit:cover;display:block}
.urgiin-app .pthumb svg{width:44px;height:44px;opacity:.55}
.urgiin-app .pcard .role{font-size:.8rem;color:var(--muted)}
.urgiin-app .pcard .nm{font-family:var(--serif);font-size:1.15rem;line-height:1.25;margin-top:2px}
.urgiin-app .pcard .nick{font-style:italic;color:var(--muted)}
.urgiin-app .pcard .meta{font-size:.92rem;color:var(--muted);margin-top:4px}
.urgiin-app .pcard .meta span{display:block}
.urgiin-app .pcard .note{font-size:.88rem;margin-top:6px}
.urgiin-app .card-actions{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;align-items:center}
.urgiin-app .nmbtn{appearance:none;border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.urgiin-app .nmbtn:hover{text-decoration-color:currentColor}
.urgiin-app .mk{display:inline-block;width:.72em;height:.72em;border:2px solid currentColor;margin-right:.4em;vertical-align:.02em}
.urgiin-app .mk.m{border-radius:1px}
.urgiin-app .mk.f{border-radius:50%}
.urgiin-app .mk.blood{border-width:3px}
.urgiin-app .empty-kids{border:1px dashed var(--rule);border-radius:12px;padding:18px;color:var(--muted)}
.urgiin-app .tag{display:inline-block;font-size:.75rem;padding:1px 8px;border-radius:999px;background:var(--blue-soft);color:var(--ink);vertical-align:1px;margin-left:6px;font-family:var(--sans)}
.urgiin-app .tag.div{background:#F6DEDB;color:#8C2A20}
.urgiin-app[data-theme="dark"] .tag.div{background:#4A2420;color:#FFB4A9}
@media (prefers-color-scheme: dark){.urgiin-app:not([data-theme="light"]) .tag.div{background:#4A2420;color:#FFB4A9}}
.urgiin-app .pcard.inlaw.div{border-style:dashed;border-color:var(--muted);opacity:.5}
.urgiin-app .pcard .par{font-size:.88rem;color:var(--muted);margin-top:4px}
.urgiin-app .pcard .par .nmbtn{color:var(--ink);font-family:var(--serif)}
.urgiin-app .ms-box{border:1px dashed var(--rule);border-radius:12px;padding:12px 14px 2px;margin:4px 0 12px}

/* Children line */
.urgiin-app .kline{margin-top:4px;--kl:var(--ink)}
.urgiin-app .kline.ml{--kl:var(--brown)}
.urgiin-app .kl-head,.urgiin-app .kl-row{display:grid;grid-template-columns:1fr 48px 1fr}
.urgiin-app .kl-head{margin-bottom:4px}
.urgiin-app .kl-head .kl-hl{justify-content:flex-end}
.urgiin-app .kl-row{align-items:center}
.urgiin-app .kl-l,.urgiin-app .kl-r{padding:6px 0;min-width:0}
.urgiin-app .kl-mid{position:relative;align-self:stretch;display:flex;align-items:center;justify-content:center}
.urgiin-app .kl-mid::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:3px solid var(--kl);transform:translateX(-1.5px)}
.urgiin-app .kl-row:nth-child(2) .kl-mid::before{top:50%}
.urgiin-app .kl-mid::after{content:"";position:absolute;top:50%;border-top:2px solid var(--kl)}
.urgiin-app .kl-mid.to-l::after{left:0;right:50%}
.urgiin-app .kl-mid.to-r::after{left:50%;right:0}
.urgiin-app .kl-row.kl-end .kl-mid::before{bottom:50%}
.urgiin-app .kl-row.kl-end .kl-mid::after{display:none}
.urgiin-app .kl-mk{position:relative;z-index:1;width:22px;height:22px;background:var(--sheet);border:3px solid var(--kl)}
.urgiin-app .kl-mk.m{border-radius:2px}
.urgiin-app .kl-mk.f{border-radius:50%}
.urgiin-app .kl-mk.end{background:var(--kl);width:12px;height:12px;border-width:0;border-radius:50%}
.urgiin-app .kl-mk.end.sq{border-radius:1px}
.urgiin-app .kl-row.kl-end{height:32px}

.urgiin-app .pager{display:flex;justify-content:space-between;gap:12px;margin-top:28px;padding-top:14px;border-top:1px solid var(--rule);flex-wrap:wrap}
.urgiin-app .pager button{max-width:48%}

/* Person profile */
.urgiin-app .person-grid{display:grid;grid-template-columns:minmax(160px,220px) 1fr;gap:24px;margin-top:16px;align-items:start}
.urgiin-app .portrait .ph .frame{aspect-ratio:3/4}
.urgiin-app .facts{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0}
.urgiin-app .facts dt{color:var(--muted);font-size:.92rem}
.urgiin-app .facts dd{margin:0;font-family:var(--serif);font-size:1.06rem;overflow-wrap:anywhere}
.urgiin-app .facts .none{color:var(--red);font-style:italic;font-size:.92rem;font-family:var(--sans)}
.urgiin-app .unk{color:var(--red);font-style:italic}
.urgiin-app .relgroup{margin-top:14px}
.urgiin-app .relgroup h3{margin:0 0 6px;font-size:.9rem;color:var(--muted);font-weight:500}
.urgiin-app .chips{display:flex;flex-wrap:wrap;gap:8px}
.urgiin-app .chip{appearance:none;border:1px solid var(--rule);background:var(--sheet);border-radius:999px;padding:5px 12px;cursor:pointer;font-family:var(--serif)}
.urgiin-app .chip:hover{border-color:var(--ink)}
.urgiin-app .chip .cy{color:var(--muted);font-size:.85em;font-family:var(--sans)}
.urgiin-app .lineage-top{text-align:center;margin:0 0 6px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.urgiin-app .lineage-top h3{margin:0 0 6px;font-size:.85rem;color:var(--muted);font-weight:500}
.urgiin-app .lineage-top ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 0}
.urgiin-app .lineage-top li{display:inline-flex;align-items:baseline;gap:5px}
.urgiin-app .lineage-top li + li::before{content:"›";color:var(--rule);margin:0 10px;font-size:1.1rem}
.urgiin-app .lineage-top .lg{font-family:var(--sc);font-weight:700;color:var(--gold-ink);font-size:.85rem}
.urgiin-app .lineage-top .nmbtn{font-family:var(--serif);font-size:.98rem;color:var(--ink)}
.urgiin-app .lineage-top .self{font-family:var(--serif);font-size:.98rem;font-weight:700}
.urgiin-app .lineage{list-style:none;margin:6px 0 4px;padding:0 0 0 2px;font-size:.92rem;color:var(--muted)}
.urgiin-app .lineage li{display:flex;align-items:baseline;gap:6px;padding:2px 0 2px 12px;border-left:2px solid var(--rule);position:relative}
.urgiin-app .lineage li::before{content:"";position:absolute;left:-2px;top:.85em;width:8px;border-top:2px solid var(--rule)}
.urgiin-app .lineage .lg{font-family:var(--sc);font-weight:700;color:var(--gold-ink);min-width:2.4em}
.urgiin-app .lineage .nmbtn{font-family:var(--serif);color:var(--ink);font-size:1rem}

/* Panels */
.urgiin-app .panel{background:var(--sheet);border-radius:16px;box-shadow:var(--shadow);padding:16px}
.urgiin-app .tbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.urgiin-app .tbar input,.urgiin-app .tbar select{border:1px solid var(--rule);border-radius:10px;padding:7px 11px;background:var(--bg)}
.urgiin-app .tbar input[type=search]{flex:1 1 220px}
.urgiin-app .tbar .sp{flex:1}
.urgiin-app .tcount{color:var(--muted);font-size:.9rem}
.urgiin-app .help{color:var(--muted);font-size:.92rem;margin:0 0 10px}
.urgiin-app .rmsg{min-height:1.2em;margin:-2px 0 8px;font-size:.9rem;color:var(--muted)}

/* Top-down tree */
.urgiin-app .chartwrap{overflow:auto;max-height:75vh;border:1px solid var(--rule);border-radius:10px;padding:16px;background:var(--bg)}
.urgiin-app .otree{width:max-content;margin:0 auto;transform-origin:top left}
.urgiin-app .otree ul{display:flex;justify-content:center;padding:20px 0 0;margin:0;position:relative}
.urgiin-app .otree > ul{padding-top:0}
.urgiin-app .otree li{list-style:none;position:relative;padding:20px 5px 0;display:flex;flex-direction:column;align-items:center}
.urgiin-app .otree > ul > li{padding-top:0}
.urgiin-app .otree li::before,.urgiin-app .otree li::after{content:"";position:absolute;top:0;right:50%;width:50%;height:20px;border-top:2px solid var(--muted)}
.urgiin-app .otree li::after{right:auto;left:50%;border-left:2px solid var(--muted)}
.urgiin-app .otree li:only-child::before,.urgiin-app .otree li:only-child::after{display:none}
.urgiin-app .otree li:only-child{padding-top:20px}
.urgiin-app .otree li:only-child::after{display:block;border-top:none;left:50%;width:0}
.urgiin-app .otree > ul > li::before,.urgiin-app .otree > ul > li::after{display:none}
.urgiin-app .otree li:first-child::before,.urgiin-app .otree li:last-child::after{border:0 none}
.urgiin-app .otree li:last-child::before{border-right:2px solid var(--muted);border-radius:0 8px 0 0}
.urgiin-app .otree li:first-child::after{border-radius:8px 0 0 0}
.urgiin-app .otree ul ul::before{content:"";position:absolute;top:0;left:50%;height:20px;border-left:2px solid var(--muted)}
.urgiin-app .on{background:var(--sheet);border:3px solid var(--ink);padding:6px 9px;min-width:104px;max-width:150px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.urgiin-app .on.m{border-radius:3px}
.urgiin-app .on.f{border-radius:22px;padding-left:12px;padding-right:12px}
.urgiin-app .on.ml{border-color:var(--brown)}
.urgiin-app .on.expandable{cursor:pointer}
.urgiin-app .on.expandable:hover{box-shadow:0 0 0 3px var(--gold-soft)}
.urgiin-app .on.expandable[aria-expanded="true"]{box-shadow:0 0 0 2px var(--gold)}
.urgiin-app .on .nmbtn{text-align:center;font-family:var(--serif);font-weight:500;font-size:.95rem;line-height:1.2}
.urgiin-app .on .ong{display:block;font-family:var(--sc);font-size:.72rem;color:var(--gold-ink);font-weight:700}
.urgiin-app .on .oy{font-size:.75rem;color:var(--muted)}
.urgiin-app .on .osp{font-size:.78rem;color:var(--muted);font-family:var(--sans);border-top:1px dashed var(--rule);padding-top:2px;margin-top:2px;width:100%;text-align:center}
.urgiin-app .on .oph{width:64px;height:64px;object-fit:cover;border-radius:6px;display:block;margin:2px auto 4px;border:1px solid var(--rule)}
.urgiin-app .on.f .oph{border-radius:50%}
.urgiin-app .otog{appearance:none;border:none;background:var(--gold-soft);color:var(--gold-ink);border-radius:999px;font-size:.72rem;padding:2px 8px;margin-top:3px;cursor:pointer}

/* Radial */
.urgiin-app .radialwrap{padding:0;max-height:80vh}
.urgiin-app .radial{display:block;margin:0 auto}
.urgiin-app .radial .rg{font-family:var(--sc);font-weight:700;font-size:15px;fill:var(--gold-ink);paint-order:stroke;stroke:var(--bg);stroke-width:5px}
.urgiin-app .radial text{font-family:var(--sans);font-size:11px;fill:var(--ink);paint-order:stroke fill;stroke:var(--halo);stroke-width:3.2px;stroke-linejoin:round}
.urgiin-app .radial .rl1{font-family:var(--serif);font-size:15px;font-weight:700}
.urgiin-app .radial .rl0{font-family:var(--serif);font-size:20px;font-weight:700}
.urgiin-app .radial .rn{cursor:pointer}
.urgiin-app .radial .rn:hover text{fill:var(--gold-ink);font-weight:700}
.urgiin-app .radial .rn:focus{outline:none}
.urgiin-app .radial .rn:focus-visible rect,.urgiin-app .radial .rn:focus-visible circle{stroke-width:5}
.urgiin-app .radial.dim path{stroke-width:.7px;opacity:.15}
.urgiin-app .radial.dim g.rn rect,.urgiin-app .radial.dim g.rn circle{opacity:.35}
.urgiin-app .radial.dim g.rlab text{opacity:.3}
.urgiin-app .radial.dim g.rlab.onpath text{opacity:1;font-weight:700}
.urgiin-app .radial.dim g.rn.onpath rect,.urgiin-app .radial.dim g.rn.onpath circle{opacity:1}
.urgiin-app .radial path.hl{stroke:var(--red);stroke-width:6px;opacity:1;stroke-linecap:round;animation:rblink 1.1s ease-in-out infinite}
.urgiin-app .radial g.rn.hit rect,.urgiin-app .radial g.rn.hit circle{stroke:var(--red);stroke-width:5px;opacity:1;animation:rblink 1.1s ease-in-out infinite}
.urgiin-app .radial g.rlab.hit text{fill:var(--red);font-weight:700;opacity:1;font-size:15px;animation:rblink 1.1s ease-in-out infinite}
@keyframes rblink{0%,100%{opacity:1}50%{opacity:.2}}
.urgiin-app .legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.88rem;color:var(--muted);margin:0 0 10px}
.urgiin-app .bsw{display:inline-block;width:14px;height:4px;border-radius:2px;vertical-align:3px;margin-right:6px}

/* List */
.urgiin-app .tree ul{list-style:none;margin:0;padding-left:20px;border-left:1px solid var(--rule)}
.urgiin-app .tree > ul{border-left:none;padding-left:0}
.urgiin-app .tree li{margin:2px 0}
.urgiin-app .tree summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:baseline;padding:3px 4px;border-radius:6px}
.urgiin-app .tree summary::-webkit-details-marker{display:none}
.urgiin-app .tree summary::before{content:"+";width:1em;display:inline-block;color:var(--gold-ink);font-weight:700;text-align:center}
.urgiin-app .tree details[open] > summary::before{content:"−"}
.urgiin-app .tree .leaf{display:flex;gap:8px;align-items:baseline;padding:3px 4px 3px calc(4px + 1em + 8px)}
.urgiin-app .tree .nmbtn{font-family:var(--serif)}
.urgiin-app .tree .ty,.urgiin-app .tree .tc{font-size:.82rem;color:var(--muted);white-space:nowrap}

/* Table */
.urgiin-app .twrap{overflow:auto;max-height:70vh;border:1px solid var(--rule);border-radius:10px}
.urgiin-app table.grid{border-collapse:collapse;font-size:.9rem;min-width:1520px;width:100%}
.urgiin-app table.grid th{position:sticky;top:0;background:var(--blue-soft);text-align:left;font-weight:500;padding:8px;border-bottom:1px solid var(--rule);white-space:nowrap;z-index:1}
.urgiin-app table.grid td{padding:6px 8px;border-bottom:1px solid var(--rule);vertical-align:top;max-width:260px}
.urgiin-app table.grid td.n{color:var(--muted);font-size:.8rem;white-space:nowrap}
.urgiin-app table.grid td.ed{cursor:text}
.urgiin-app table.grid td.ed:hover{background:var(--gold-soft)}
.urgiin-app table.grid td.nm{font-family:var(--serif);font-weight:500;white-space:nowrap}
.urgiin-app table.grid tr.inl td{background:color-mix(in srgb, var(--bg) 45%, transparent)}
.urgiin-app .cellin{width:100%;min-width:90px;border:1px solid var(--gold);border-radius:6px;padding:4px 6px;background:var(--sheet)}

/* Welcome */
.urgiin-app .welcome{background:var(--sheet);border-radius:16px;box-shadow:var(--shadow);padding:clamp(22px,5vw,48px);text-align:center}
.urgiin-app .welcome h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,3vw,2.2rem);margin:10px 0 6px}
.urgiin-app .welcome p{color:var(--muted);max-width:52ch;margin:0 auto 18px}
.urgiin-app .welcome .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.urgiin-app .welcome .em{width:110px;height:110px;margin:0 auto;color:var(--gold-ink)}
.urgiin-app .welcome .em svg{width:100%;height:100%}

/* Dialog */
.urgiin-app dialog{border:none;border-radius:16px;padding:0;background:var(--sheet);color:var(--ink);width:min(580px,calc(100vw - 24px));max-height:calc(100vh - 24px);box-shadow:0 20px 60px -20px rgba(0,0,0,.5)}
.urgiin-app dialog::backdrop{background:rgba(16,20,29,.45)}
.urgiin-app .dlg{display:flex;flex-direction:column;max-height:calc(100vh - 24px)}
.urgiin-app .dlg header{padding:18px 22px 10px;border-bottom:1px solid var(--rule)}
.urgiin-app .dlg header h3{margin:0;font-family:var(--serif);font-weight:500;font-size:1.4rem}
.urgiin-app .dlg header p{margin:4px 0 0;color:var(--muted);font-size:.95rem}
.urgiin-app .dlg .body{padding:14px 22px;overflow:auto}
.urgiin-app .dlg footer{padding:12px 22px 18px;border-top:1px solid var(--rule);display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.urgiin-app .dlg footer .sp{flex:1}
.urgiin-app .field{margin-bottom:12px}
.urgiin-app .field label,.urgiin-app .field .lbl{display:block;font-size:.88rem;color:var(--muted);margin-bottom:4px}
.urgiin-app .field input,.urgiin-app .field textarea,.urgiin-app .field select{width:100%;border:1px solid var(--rule);border-radius:10px;padding:8px 11px;background:var(--bg)}
.urgiin-app .field textarea{min-height:64px;resize:vertical}
.urgiin-app .field .chk{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:.95rem}
.urgiin-app .field .chk input{width:auto}
.urgiin-app .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.urgiin-app .seg{display:inline-flex;border:1px solid var(--rule);border-radius:10px;overflow:hidden;flex-wrap:wrap}
.urgiin-app .seg label{margin:0;padding:7px 14px;cursor:pointer;color:var(--ink);font-size:.95rem;position:relative}
.urgiin-app .seg input{position:absolute;opacity:0;pointer-events:none}
.urgiin-app .seg label:has(input:checked){background:var(--ink);color:var(--sheet)}
.urgiin-app .seg label:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:-2px}
.urgiin-app .spouse-box{border:1px solid var(--gold);background:var(--gold-soft);border-radius:12px;padding:12px 14px 2px;margin-top:6px}
.urgiin-app .spouse-box .hint{font-size:.9rem;margin:0 0 10px;color:var(--gold-ink)}
.urgiin-app .spouse-box input{background:var(--sheet)}
.urgiin-app .picker{position:relative}
.urgiin-app .picker-list{position:absolute;left:0;right:0;top:100%;z-index:5;background:var(--sheet);border:1px solid var(--rule);border-radius:10px;margin-top:4px;max-height:220px;overflow:auto;box-shadow:var(--shadow)}
.urgiin-app .picker-list button{display:block;width:100%;text-align:left;border:none;background:none;padding:7px 11px;cursor:pointer}
.urgiin-app .picker-list button:hover,.urgiin-app .picker-list button:focus{background:var(--blue-soft)}
.urgiin-app .parent-chosen{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:8px 11px;border-radius:10px;background:var(--blue-soft);flex-wrap:wrap}
.urgiin-app .err{color:#B3261E;font-size:.9rem;margin-top:6px}
.urgiin-app[data-theme="dark"] .err{color:#FF8A80}
@media (prefers-color-scheme: dark){.urgiin-app:not([data-theme="light"]) .err{color:#FF8A80}}
.urgiin-app .toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--sheet);padding:10px 16px;border-radius:10px;font-size:.95rem;z-index:50;max-width:calc(100vw - 32px)}

.urgiin-app .menu-btn{display:none}
@media (max-width:900px){
  .urgiin-app .layout{grid-template-columns:1fr}
  .urgiin-app .index{position:fixed;inset:0 auto 0 0;width:min(340px,88vw);max-height:none;height:100%;border-radius:0;z-index:30;transform:translateX(-102%);transition:transform .2s ease;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
  .urgiin-app .index.open{transform:none}
  .urgiin-app .scrim{position:fixed;inset:0;background:rgba(16,20,29,.4);z-index:25}
  .urgiin-app .menu-btn{display:inline-block}
  .urgiin-app .mast{grid-template-columns:auto 1fr;padding-top:18px}
  .urgiin-app .mast-actions{grid-column:1 / -1;justify-content:flex-start}
  .urgiin-app .mast-actions .btn{padding:6px 11px;font-size:.92rem}
}
@media (max-width:640px){ .urgiin-app .person-grid{grid-template-columns:1fr} .urgiin-app .portrait{max-width:220px} .urgiin-app .emblem-top .em,.urgiin-app .emblem-top img{width:96px;height:96px} }
@media (max-width:560px){
  .urgiin-app .sheet{grid-template-columns:1fr}
  .urgiin-app .margin{border-right:none;border-bottom:1px solid var(--rule);display:flex;gap:8px;align-items:baseline;padding:12px 18px;text-align:left}
  .urgiin-app .margin > div{display:flex;align-items:baseline;gap:6px}
  .urgiin-app .sheet-main{padding:16px 16px 22px}
  .urgiin-app .row2{grid-template-columns:1fr}
  .urgiin-app .cols{gap:8px}
  .urgiin-app .pcard{flex-direction:column;gap:6px;padding:10px}
  .urgiin-app .pthumb{width:38px;height:38px}
  .urgiin-app .pthumb svg{width:30px;height:30px}
  .urgiin-app .pcard .nm{font-size:.98rem;overflow-wrap:anywhere}
  .urgiin-app .pcard .meta{font-size:.85rem}
  .urgiin-app .kl-row,.urgiin-app .kl-head{grid-template-columns:1fr 30px 1fr}
  .urgiin-app .kl-mk{width:16px;height:16px}.urgiin-app .kline{--mk:16px}.urgiin-app .kline.kin .kl-row,.urgiin-app .kline.kin .kl-head{grid-template-columns:1fr 60px 1fr}
  .urgiin-app .mast h1{font-size:1.3rem}
  .urgiin-app .emblem{width:44px;height:44px}
}
.urgiin-app .ro [data-add],.urgiin-app .ro [data-edit],.urgiin-app .ro #addBtn,.urgiin-app .ro [data-photo],.urgiin-app .ro [data-photo-del],.urgiin-app .ro [data-act="story-edit"],.urgiin-app .ro [data-act="clear-all"],.urgiin-app .ro [data-act="import-json"],.urgiin-app .ro [data-act="sample"],.urgiin-app .ro [data-act="migrate"]{display:none!important}
.urgiin-app .ro table.grid td.ed{cursor:default}
.urgiin-app .ro table.grid td.ed:hover{background:none}
@media (prefers-reduced-motion: reduce){.urgiin-app *{animation:none!important;transition:none!important}}

/* Эрхгүй үйлдлийн товч, дүрс нуугдана (бусад display дүрмээс давуу) */
.urgiin-app [hidden]{display:none !important}
.urgiin-app table.grid td.ed.locked{cursor:default}
.urgiin-app table.grid td.ed.locked:hover{background:none}
.urgiin-app .dlg input[readonly]{opacity:.65;cursor:not-allowed}

/* Хүүхэд болсон байдал: үрчилж авсан, дагаж ирсэн (давхар зураас), үрчлүүлсэн; сум голын зураас руу эсвэл гадагш */
.urgiin-app .kline{--mk:22px}
.urgiin-app .kline.kin .kl-row,.urgiin-app .kline.kin .kl-head{grid-template-columns:1fr 104px 1fr}
.urgiin-app .kl-mid.dbl::after{border-top:8px double var(--kl);transform:translateY(-4px)}
.urgiin-app .kl-mid .ar{position:absolute;top:50%;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;transform:translateY(-50%);z-index:2}
.urgiin-app .kl-mid .ar.r{border-left:10px solid var(--kl)}
.urgiin-app .kl-mid .ar.l{border-right:10px solid var(--kl)}
.urgiin-app .kl-mid.to-l .ar.at-end{left:0}
.urgiin-app .kl-mid.to-r .ar.at-end{right:0}
.urgiin-app .kl-mid.to-l .ar.at-mk{right:calc(50% + var(--mk) / 2)}
.urgiin-app .kl-mid.to-r .ar.at-mk{left:calc(50% + var(--mk) / 2)}
.urgiin-app .tag.kin{background:var(--gold-soft);color:var(--gold-ink)}
.urgiin-app .kin-leg{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin:10px 0 2px;font-size:.82rem;color:var(--muted)}
.urgiin-app .kin-leg span{display:inline-flex;align-items:center;gap:6px}
.urgiin-app .kin-leg .kin-s{width:40px;height:12px;color:var(--ink)}
