html { min-width: 320px; }
body.is-web { width:100%; height:auto; min-height:100dvh; overflow:auto; font-size:14px; }
.web-banner { padding:8px 16px; background:#fff2ef; color:#8d3026; font-size:12px; text-align:center; }
#startupError { padding:18px; color:#a5281c; background:#fff; }
.is-web .app-header { flex-wrap:wrap; gap:12px; padding:14px 20px; }
.is-web .app-main { height:auto; overflow:visible; max-width:1440px; margin:0 auto; padding:20px; }
.is-web .control { min-height:40px; }
.is-web .btn { min-height:36px; }
.is-web .nav-btn { min-height:38px; }
.is-web .card { scroll-margin-top:12px; }
.is-web .note { padding-bottom:20px; }
.is-web .modal { max-width:calc(100vw - 24px); }
@media (max-width:760px) {
  .is-web .app-header { padding:14px 14px 10px; gap:12px; }
  .is-web .brand { width:100%; }
  .is-web .brand-title { font-size:19px; }
  .is-web .brand-icon { width:30px; height:30px; }
  .is-web .brand-sub { margin-left:auto; font-size:11px; max-width:49%; }
  .is-web .header-actions { margin:0; width:100%; justify-content:space-between; order:2; gap:8px; }
  .is-web .header-actions .field-inline { flex:1; }
  .is-web .header-actions input { font-size:16px; width:94px; }
  .is-web .header-actions .btn { min-height:42px; padding:8px 12px; }
  .is-web #btnReload span { display:none; }
  .is-web .nav { position:fixed; left:0; right:0; bottom:0; z-index:40; border-radius:0; border-top:1px solid #e3e6ec; background:#fff; padding:7px 5px calc(7px + env(safe-area-inset-bottom)); justify-content:space-around; box-shadow:0 -3px 15px #00000008; }
  .is-web .nav-btn { flex:1; padding:8px 3px; min-height:44px; font-size:13px; }
  .is-web .app-main { padding:12px 10px calc(88px + env(safe-area-inset-bottom)); }
  .is-web .sig-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .is-web .card-head { flex-wrap:wrap; padding:12px; gap:8px; }
  .is-web .card-body { padding:12px; }
  .is-web .card-head-actions { flex-wrap:wrap; max-width:100%; }
  .is-web .grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .is-web input, .is-web select, .is-web textarea { font-size:16px; }
  .is-web .sum-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .is-web .sum-bar > div:last-child { grid-column:1/-1; }
  .is-web .sig-head { flex-wrap:wrap; }
  .is-web .sig-price { margin-left:auto; }
  .is-web .row, .is-web .fld { flex-wrap:wrap; }
  .is-web .bm, .is-web .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .is-web .notice, .is-web .hint, .is-web .note { overflow-wrap:anywhere; }
  .is-web #toastRoot { bottom:calc(86px + env(safe-area-inset-bottom)); }
}
