/* ---------- 1. Shared modern layout safeguards ---------- */
:root{--sheet-scroll:0px;--table-min-width:100%}
html{scroll-padding-top:16px;scroll-padding-bottom:80px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.mobile-dock{display:none}.mobile-sheet{padding:0;border:1px solid var(--line);border-radius:12px 12px 0 0;background:var(--surface);color:var(--ink);width:min(620px,100%);max-width:100%;max-height:85vh;max-height:85dvh;margin:auto auto 0;box-shadow:0 -12px 50px color-mix(in srgb,var(--brand-black) 18%,transparent);overflow:auto;overscroll-behavior:contain}
.mobile-sheet::backdrop{background:color-mix(in srgb,var(--brand-black) 48%,transparent)}
.mobile-sheet__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--line);padding:1rem 1.2rem;z-index:1}
.mobile-sheet__head h2{font-size:1.3rem;line-height:1.3;margin:0}.mobile-sheet__head button{min-height:44px;padding:.55rem .8rem;font-size:.9rem}
.mobile-sheet__body{padding:1rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom))}.mobile-sheet__body input{width:100%;font-size:1rem;min-height:48px;margin-bottom:1rem}
.mobile-sheet__links{display:grid;gap:.15rem}.mobile-sheet__links a{display:flex;align-items:center;min-height:48px;padding:.75rem .7rem;text-decoration:none;line-height:1.5;border-bottom:1px solid var(--line);color:var(--ink);overflow-wrap:anywhere}
.mobile-sheet__links a[aria-current]{background:var(--surface-2);color:var(--brand-blue);border-left:3px solid var(--brand-blue)}
.mobile-sheet-open{position:fixed;top:var(--sheet-scroll);left:0;right:0;overflow:hidden}
.scroll-hint{font-size:.8rem;color:var(--ink-mute);margin:.7rem 0 .25rem}.tbl-wrap{overscroll-behavior-inline:contain}.plan-chart>summary{min-height:48px;padding:.65rem 0;cursor:pointer;color:var(--brand-blue)}
.tbl-wrap,.katex{position:relative}figure.tbl-wrap,figure.table-wrap{margin-inline:0}
.topic-picker{container-type:inline-size;min-width:0}.topic-picker__controls{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-picker__controls>*{min-width:0}.topic-picker__chips{max-width:100%;position:relative}
@container (max-width:560px){.topic-picker__controls{grid-template-columns:1fr}}
@media(max-width:600px){.topic-picker__controls{grid-template-columns:1fr}}
.gantt2__canvas{--gantt-label-width:220px;--gantt-gap:8px;position:relative;min-width:720px}.gantt2__canvas .gantt2__row{flex-wrap:nowrap;gap:var(--gantt-gap)}.gantt2__canvas .gantt2__label{width:var(--gantt-label-width);min-height:44px;padding:.4rem .5rem .4rem 0;text-align:left;border:0;background:none;border-radius:0;font-size:.85rem}.gantt2__canvas .gantt2__marker-label{width:calc(var(--gantt-label-width) + var(--gantt-gap))}.gantt2__marker-track span:first-child{transform:none}.gantt2__marker-track span:last-child{transform:translateX(-100%)}
.gantt2__item--done{opacity:1;text-decoration:none}.gantt2__item--done .gantt2__item-name{color:var(--ink-mute);text-decoration:line-through}
.gantt2__bar{container-type:inline-size}@container(max-width:75px){.gantt2__bar-dates{visibility:hidden}}
/* ---------- 2. Phone and small landscape layouts ---------- */
@media(max-width:800px),(max-width:900px) and (max-height:500px){
  html{scroll-padding-top:82px;scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom))}
  body.mobile-enhanced{--mobile-dock-offset:calc(56px + env(safe-area-inset-bottom));padding-bottom:var(--mobile-dock-offset)}
  body.mobile-input-active{--mobile-dock-offset:0px}
  .site-header{padding-top:env(safe-area-inset-top)}.header-row{min-height:64px;gap:.6rem}.identity strong{font-size:1rem}.identity img{width:34px}.identity small{display:none}
  .header-actions button{min-width:44px;min-height:44px;padding:.3rem}.primary-nav{display:none}.menu-toggle{display:inline-flex}.mobile-enhanced .menu-toggle{display:none!important}.mobile-enhanced .mobile-nav{display:none!important}
  .search-link{display:none}
  .mobile-enhanced .mobile-dock{position:fixed;inset:auto 0 0;z-index:40;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 max(.5rem,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(.5rem,env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--line)}
  .mobile-dock>a,.mobile-dock>button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:56px;padding:.5rem .2rem;font-size:.9rem;line-height:1.2;font-weight:600;color:var(--brand-blue);background:none;border:0;border-radius:0;text-decoration:none}
  .mobile-dock>button[aria-expanded=true]{background:var(--surface-2)}.mobile-input-active .mobile-dock{display:none}
  .article-progress{bottom:var(--mobile-dock-offset,0)}
  .shell,.container{width:calc(100% - 32px);max-width:1240px}.imported-content>.container:not(.detail-layout){padding-inline:0!important}
  .home-intro{padding-top:36px}.intro-copy h1{font-size:clamp(2.15rem,9.5vw,3.2rem)}
  .page-header{padding-top:24px}.page-header h1{font-size:clamp(2rem,7.3vw,2.65rem)}.page-lead{font-size:1rem}
  button:not(.abbreviation-help),.btn,.page-actions a{min-height:44px}.page-actions{gap:.5rem}.page-actions button,.page-actions a{font-size:.875rem}
  .route-card a{display:inline-flex;align-items:center;min-height:44px;padding-block:.4rem}.route-card li{margin:.15rem 0}.route-card p{min-height:0}
  input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:1rem!important;min-height:44px;max-width:100%;min-width:0}
  input[type=checkbox],input[type=radio]{width:24px;height:24px;min-width:24px}.task-item label{min-height:44px;align-items:flex-start}.task-item input{margin-top:.2rem}
  .toc__list a,summary{min-height:44px}.toc__list a{padding:.65rem .5rem}
  .copy-button{float:none;display:block;margin:.75rem 0 0 auto}.copy-button+pre{margin-top:.3rem;clear:both}
  pre{font-size:.9rem}.tbl-wrap table{min-width:var(--table-min-width,100%)}.tbl-wrap th,.tbl-wrap td{overflow-wrap:normal;word-break:normal;font-size:.9rem}
  .detail-content>h2,.detail-content h3,.tool[id],section[id]{scroll-margin-top:16px}
  .section-anchor{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:32px;margin-left:.25rem}
  .tool{padding:1rem!important}.tools-card{min-height:110px}.tool__title{font-size:1.45rem}.gantt2__panel{padding:.8rem;border:0;background:var(--surface-2)}
  .gantt2__level{width:100%;padding:.6rem;gap:.2rem .7rem}.gantt2__level label{min-height:44px}.gantt2__row>.field{width:100%}
  .gantt2__item{display:grid;grid-template-columns:44px minmax(0,1fr);padding:.8rem;align-items:start;gap:.6rem}
  .gantt2__item-dates{grid-column:1/-1;display:flex;width:100%;padding-left:0;gap:.5rem}.gantt2__item-dates>input[type=date]{width:100%;flex-basis:100%}
  .gantt2__date-separator{display:none}.gantt2__dur-input{width:80px}.gantt2__recovery{grid-column:1/-1;padding-left:0}.gantt2__item-name{padding-top:.5rem;font-size:1rem}
  .gantt2__summary{padding:1rem}.gantt2__row--actions{gap:.5rem}.gantt2__chart{font-size:.9rem}.plan-chart{margin:0;padding:.25rem 0!important}
  .search-form__hint{display:none}.search-filters{gap:.5rem;flex-wrap:wrap}
  [data-page=search] .page-actions{display:none}[data-page=search] .page-header{padding-bottom:1rem;margin-bottom:0}[data-page=search] .imported-content>.container{padding-top:1rem!important}
  .search-page,.search-form{min-width:0}
}
@media(min-width:801px){.mobile-sheet{border-radius:12px}.tbl-wrap:focus-visible{outline-offset:2px}}
@media print{.mobile-dock,.mobile-sheet,.scroll-hint{display:none!important}body.mobile-enhanced{padding:0}html{scroll-padding:0}.plan-chart>summary{display:none}.plan-chart:not([hidden])>div{display:block!important}}
