/* V24: display only. The family database and original presentation stay intact. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;color-scheme:light}
button,a,input,select,summary{touch-action:manipulation}
input,select,textarea{font-size:16px}
button,input,select{max-width:100%}
button,a,summary{-webkit-tap-highlight-color:rgba(34,100,105,.18)}
:focus-visible{outline:3px solid #ad803c;outline-offset:3px}
@media screen{
  .dort-app{--edge-left:env(safe-area-inset-left,0px);--edge-right:env(safe-area-inset-right,0px);--edge-top:env(safe-area-inset-top,0px);--edge-bottom:env(safe-area-inset-bottom,0px)}
  .dort-app body{padding-bottom:var(--edge-bottom)}
  .dort-app .masthead{height:auto;min-height:84px;padding:16px max(24px,var(--edge-right)) 16px max(24px,var(--edge-left));padding-top:calc(16px + var(--edge-top));gap:16px}
  .dort-app .app-layout{padding-left:var(--edge-left);padding-right:var(--edge-right)}
  .dort-app main{padding-inline:clamp(18px,2.2vw,34px)}
  .dort-app .sidebar{height:100vh;height:100dvh;scrollbar-gutter:stable}
  .dort-app .sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
  .dort-app .sidebar-head .sidebar-title{margin:0}
  #close-search{display:none}
  .dort-app .search-box input,.dort-app select{font-size:16px;min-height:44px}
  .dort-app .toolbar button,.dort-app .kin-toolbar button,.dort-app .space-view button,.dort-app .history-generation-row button{min-height:44px}
  .dort-app .zoom-controls button,.dort-app .space-actions button[data-space=plus],.dort-app .space-actions button[data-space=minus]{min-width:44px}
  .dort-app .panel,.dort-app .facts dd,.dort-app .person-hero>div,.dort-app .root-card>span,.dort-app .kin-selection-head>div,.dort-app .tree-heading>div{min-width:0}
  .dort-app .details,.dort-app .source-card,.dort-app .finding-card,.dort-app .kin-selection{overflow-wrap:anywhere}
  .dort-app .root-initial{flex-shrink:0}
  .dort-app .table-wrap,.dort-app .generation-list{max-width:100%;-webkit-overflow-scrolling:touch}
  .dort-app .graph,.dort-app .kin-graph{height:clamp(340px,64vh,680px);height:clamp(340px,64svh,680px);scrollbar-width:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:auto}
  .dort-app .graph::-webkit-scrollbar,.dort-app .kin-graph::-webkit-scrollbar{width:12px;height:12px}
  .dort-app .graph::-webkit-scrollbar-thumb,.dort-app .kin-graph::-webkit-scrollbar-thumb{background:#91aba6;border:3px solid #eef3f0;border-radius:8px}
  .dort-app .space-stage canvas{height:clamp(340px,64vh,680px);height:clamp(340px,64svh,680px)}
  .dort-app .space-top>div{min-width:0}
  .dort-app .space-top>button{flex-shrink:0}
  .dort-app .space-view.expanded{height:100vh;height:100dvh;bottom:auto;padding:var(--edge-top) var(--edge-right) var(--edge-bottom) var(--edge-left);overscroll-behavior:contain}
  .dort-app .space-view.expanded .space-stage{flex:1 0 180px;min-height:180px}
  .dort-app .space-view.expanded canvas{height:100%}
  .dort-app .space-view.expanded .space-top{position:sticky;top:0;z-index:2;background:#183a40}
  .dort-app .selection-heading{gap:12px;flex-wrap:wrap}
  .dort-app .selection-heading button{min-height:44px}
  .dort-app .facts{grid-template-columns:minmax(75px,110px) minmax(0,1fr)}
  .dort-app .stats-row{flex-wrap:wrap}
  .dort-app .stats-row .stat{min-width:140px}
  .dort-app .stats-row .stat:last-child{display:block}
  /* Reading windows remain wide enough on MacBook and at browser zoom. */
  @media (min-width:951px) and (max-width:1400px){
    .dort-app .tree-with-history{grid-template-columns:minmax(0,1fr)}
    .dort-app .history-body{max-height:500px;overflow:auto}
    .dort-app .history-generation-row{max-width:480px}
  }
  @media (max-width:950px){
    .dort-app .masthead{min-height:72px;padding-bottom:12px;padding-top:calc(12px + var(--edge-top))}
    .dort-app .sidebar{height:auto;padding:18px 20px}
    .dort-app .sidebar.open #close-search{display:inline-flex;align-items:center;min-height:44px}
    .dort-app .results{max-height:38vh;max-height:38svh;-webkit-overflow-scrolling:touch}
    .dort-app .tabs{flex-wrap:wrap;white-space:normal;gap:8px 20px;overflow:visible}
    .dort-app .tabs button{min-height:44px;padding:9px 0}
    .dort-app #mobile-search{min-height:44px}
    .dort-app .toolbar{flex-wrap:wrap}
  }
  @media (max-width:600px){
    .dort-app main{padding:18px 14px}
    .dort-app .masthead{padding-left:max(14px,var(--edge-left));padding-right:max(14px,var(--edge-right))}
    .dort-app .brand{gap:8px}
    .dort-app .brand strong{font-size:25px}
    .dort-app .brand small{font-size:10px;letter-spacing:1px}
    .dort-app .monogram{width:35px;height:41px;font-size:27px;flex-shrink:0}
    .dort-app button,.dort-app .contact-button,.dort-app .actions a{min-height:44px}
    .dort-app .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}
    .dort-app .tabs button{text-align:left;font-size:14px;line-height:1.4}
    .dort-app .roots{grid-template-columns:repeat(2,minmax(0,1fr))}
    .dort-app .root-card{width:100%;min-width:0}
    .dort-app .root-card strong{overflow-wrap:anywhere}
    .dort-app .together{padding:10px 0}
    .dort-app .toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:10px}
    .dort-app .field{display:block;min-width:0}
    .dort-app .field label{display:block;font-size:14px;margin-bottom:5px}
    .dort-app .toolbar select{width:100%;font-size:16px;padding:8px 6px}
    .dort-app .segmented{grid-column:1/-1;justify-content:stretch;order:initial}
    .dort-app .segmented button{flex:1;font-size:15px;padding:7px}
    .dort-app .zoom-controls{grid-column:1/-1;justify-content:space-between;order:initial;margin:0;width:100%}
    .dort-app .zoom-controls output{font-size:14px}
    .dort-app .graph,.dort-app .kin-graph,.dort-app .space-stage canvas{height:clamp(280px,58vh,500px);height:clamp(280px,58svh,500px)}
    .dort-app .space-view.expanded canvas{height:100%}
    .dort-app .space-top{flex-wrap:wrap}
    .dort-app .space-top>button{margin-left:auto}
    .dort-app .space-person-actions{flex-wrap:wrap}
    .dort-app .space-person-actions button{flex:1 1 120px;white-space:normal}
    .dort-app .space-key{font-size:12px;max-width:100%;line-height:1.5}
    .dort-app .history-body{max-height:none;overflow:visible}
    .dort-app .history-people button{min-height:44px}
    .dort-app .person-link{min-height:44px}
    .dort-app .details .facts,.dort-app .annotation p,.dort-app .event-note,.dort-app .original-note{font-size:16px;line-height:1.6}
    .dort-app .source-links{font-size:14px}
    .dort-app .source-links a{padding-block:6px}
    .dort-app .kin-filters label{min-width:0;flex-basis:100%}
    .dort-app .kin-controls select,.dort-app .kin-controls input{width:100%;min-width:0}
    .dort-app .kin-toolbar button{flex:1 1 auto;white-space:normal}
    .dort-app .data-table td:first-child{white-space:normal;min-width:140px}
    .dort-app .intro-actions{flex-wrap:wrap}
    .dort-app .space-help{font-size:14px}
  }
  @media (max-width:374px){
    .dort-app .root-initial{display:none}
    .dort-app .facts{grid-template-columns:1fr;gap:4px}
    .dort-app .facts dd{margin-bottom:12px}
  }
  @media (max-height:500px) and (orientation:landscape){
    .dort-app .graph,.dort-app .kin-graph,.dort-app .space-stage canvas{height:300px;height:72svh;min-height:210px}
    .dort-app .space-view.expanded canvas{height:100%;min-height:0}
    .dort-app .space-view.expanded .space-help{display:none}
    .dort-app .space-view.expanded .space-selection{padding-block:8px}
  }
  .dort-document body{min-width:0;overflow-wrap:anywhere}
  .dort-document .table-wrap,.dort-document .scroll{max-width:100%;-webkit-overflow-scrolling:touch}
  .dort-document .filters>*{min-width:0;max-width:100%}
  .dort-document .nav{flex-wrap:wrap}
  .dort-document input,.dort-document select{font-size:16px;min-height:44px}
  .dort-document button{min-height:44px;white-space:normal}
  @media (any-pointer:coarse){
    .dort-app button,.dort-app .contact-button,.dort-app .actions a{min-height:44px}
    .dort-app .history-filters button{padding-block:9px}
    .dort-document summary{padding-block:10px}
  }
  @media (max-width:600px){
    .dort-document .filters{display:flex;flex-direction:column;align-items:stretch}
    .dort-document .filters label,.dort-document .filters>div{width:100%;min-width:0}
    .dort-document .filters input,.dort-document .filters select{width:100%}
    .dort-document .grid{grid-template-columns:minmax(0,1fr)}
    .dort-document .stats{gap:10px}
  }
}
