/* responsive.css —— Primer 断点 + 内在自适应，页面不另造断点。
   目标宽度：320 / 390 / 768 / 1012 / 1280；200% 缩放仍可操作。 */
*,*::before,*::after{box-sizing:border-box}
img,video,canvas,svg{max-width:100%}
html,body{max-width:100%;overflow-x:hidden}
body{margin-inline:auto}
body[data-app]{max-width:none}
.wrap{width:100%;max-width:var(--w-page);margin-inline:auto;padding-inline:var(--sp-4)}
.wrap.read{max-width:var(--w-read)}
.wrap.wide{max-width:var(--w-wide)}
header,.topbar,.toolbar,#top{flex-wrap:wrap;row-gap:var(--sp-1)}
header .grow,.topbar .grow{flex:1 1 auto;min-width:0}
table{max-width:100%}
.tblwrap,.tbl-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
/* --tap-min：桌面(=鼠标)用 --ctl-text 档（32/28），触摸设备才给 44。
   之前在 :root 里直接写 44，于是 .chat-mode-button / .action-cell .btn
   这些用 var(--tap-min) 的类在桌面上也成了 44px 大方块。 */
:root{--bp-compact:544px;--bp-medium:768px;--bp-wide:1012px;--bp-extra:1280px;--tap-min:var(--ctl-text);--pad-safe-t:env(safe-area-inset-top);--pad-safe-b:env(safe-area-inset-bottom)}
button,.btn{max-width:100%}
button,.btn,input,select,textarea{touch-action:manipulation}
h1{overflow-wrap:anywhere}
@media (pointer:coarse){:root{--tap-min:44px}button,.btn,summary,a.btn,input,select,textarea,[role=button]{min-height:var(--tap-min);min-width:var(--tap-min)}label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:var(--tap-min);display:inline-flex;align-items:center}}
/* 触摸设备才把命中区撑到 44（WCAG 2.5.8 / 手指操作）。
   原来这条挂在 max-width:1011px 上，于是**桌面窄窗口**也被撑成 44px 大方块
   （量出来 /status/ 在 1280 和 320 都是 44）。窄 ≠ 触摸，鼠标用户不需要 44。 */
@media (max-width:1011px) and (pointer:coarse){button,.btn,summary,a.btn,input,select,textarea,[role=button]{min-height:44px;min-width:44px}}
@media (display-mode:standalone){.app-top{padding-top:calc(var(--pad-safe-t) + var(--sp-2));padding-bottom:var(--pad-safe-b)}}
@media (max-width:543px){.wrap{padding-top:var(--sp-3);padding-bottom:var(--sp-6)}.grid{grid-template-columns:1fr}.panel .row{flex-wrap:wrap}}
/* ── 控件高度按断点分档（2026-09-25 用户定：不同尺寸下组件用不同尺寸）──
   基准 32px＝Primer control-medium-size(2rem)。窄屏收窄，宽屏回到 32。
   图标按钮在 544 以下收到 26/24（本站 30×26 是既定口径，不一刀切 44）。
   值只在这里改一处，页面只读 var(--ctl-*)。 */
@media (max-width:543px){:root{--ctl-icon:28px;--ctl-icon-h:26px;--ctl-text:28px;--ctl-input:28px}}
@media (min-width:544px) and (max-width:767px){:root{--ctl-icon:30px;--ctl-icon-h:26px;--ctl-text:28px;--ctl-input:28px}}
@media (min-width:768px){:root{--ctl-icon:30px;--ctl-icon-h:26px;--ctl-text:32px;--ctl-input:32px}}

/* 平板档：字号用共享层的 clamp 即可，这里**不再覆写字体**。
   旧规则在 ≤767px 把 --fs-base 压到 15.5px、--lh-normal 拉到 1.66，
   等于把 Primer 的 16px/1.5 全部推翻 —— 已删。 */
@media (max-width:767px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}.tag,.chip,.muted,.meta,.hint,.badge,.snip,.fslab,.olv,.bg,.pr,.due,small{font-size:var(--fs-xs)!important}}
@media (min-width:1280px){.wrap{max-width:min(var(--w-page),calc(100vw - var(--sp-7)))}.wrap.wide{max-width:min(var(--w-wide),calc(100vw - var(--sp-7)))}}
@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{:root{--shadow:none;--shadow-s:none}.ab,#side,.topbar,header{display:none!important}body{background:var(--panel);color:var(--fg)}}
