  @media screen and (max-width:767px){
    .stats{grid-template-columns:1fr 1fr;}
    .two{grid-template-columns:1fr;}
    .sl-row{grid-template-columns:44px 1fr 1fr 1fr;font-size:12px;}
    .sl-row span:nth-child(4),.sl-row span:last-child{display:none;}
    .st-row{grid-template-columns:1fr 1fr 1fr;font-size:12px;}
    .st-row span:nth-child(2),.st-row span:nth-child(4){display:none;}
    .ex-row{grid-template-columns:76px 1fr 92px 40px;font-size:12px;}
    .ex-row span:nth-child(3),.ex-row span:nth-child(5){display:none;}
    .segr{grid-template-columns:88px 1fr 88px;gap:8px;}
    .segr .sp{display:none;}
    .stats{grid-template-columns:1fr 1fr;}
    .shtbl th.nm{min-width:96px;font-size:12px;}
    /* イベント受注：4行に組み替えて取引先・時間・割当メンバーも出す
       1行目 日付/場所/操作　2行目 時間/取引先　3行目 クローザー/キャッチャー　4行目 割当メンバー */
    .ev-row{grid-template-columns:76px minmax(0,1fr) 88px;gap:5px;row-gap:5px;font-size:12px;align-items:start;}
    .ev-row.hd{display:none;}
    .ev-row>span:nth-child(1){grid-column:1;grid-row:1;padding-top:3px;}
    .ev-row>span:nth-child(2){grid-column:2;grid-row:1;padding-top:3px;font-size:13px;}
    .ev-row>span:nth-child(8){grid-column:3;grid-row:1/span 4;justify-content:flex-end;}
    .ev-row>span:nth-child(4){grid-column:1;grid-row:2;font-size:11px;white-space:normal;line-height:1.25;}
    .ev-row>span:nth-child(3){grid-column:2;grid-row:2;}
    .ev-row>span:nth-child(5){grid-column:1;grid-row:3;}
    .ev-row>span:nth-child(6){grid-column:2;grid-row:3;}
    .ev-row>span:nth-child(7){grid-column:1/3;grid-row:4;}
    .ev-row>span:nth-child(5),.ev-row>span:nth-child(6){text-align:left;display:flex;align-items:center;gap:4px;}
    .ev-row>span:nth-child(5)::before{content:"クロ";}
    .ev-row>span:nth-child(6)::before{content:"キャ";}
    .ev-row>span:nth-child(5)::before,.ev-row>span:nth-child(6)::before{
      font-size:10px;color:var(--faint);flex-shrink:0;}
    .ev-row .fill{font-size:11px;padding:2px 7px;}
    /* 編集/複製/削除ボタンが被らないよう最後の列に余裕を持たせる */
    .ev-row>span:last-child{gap:6px !important;}
    .ev-row .act{padding:5px;}
    .ev-ghd{padding:8px 12px !important;flex-wrap:wrap;row-gap:2px;}
    .stats.st3{grid-template-columns:1fr 1fr;}
    .pk{grid-template-columns:16px 1fr 96px;}
    .cd{min-height:66px;padding:3px;}
    .cd-h span{font-size:11px;}
    .cd-a{opacity:1;}
    .ev-chip em{font-size:9.5px;} .ev-chip small{font-size:9px;}
    .links{flex-direction:column;}
    .lk{width:100%;}
    nav.bottom button{font-size:9px;}
    .ivgrid{grid-template-columns:1fr 1fr;}
    .ivform{padding:14px;}
    /* 明細をスマホでは1行=1カード化し、各入力欄に項目名ラベルを付ける */
    .ivtbl{border:none;background:none;}
    .ivrow{display:block;border:1px solid var(--line);border-radius:10px;background:var(--card);
      padding:10px 12px;margin-bottom:10px;position:relative;}
    .ivrow.hd{display:none;}
    .ivrow>span{display:flex;align-items:center;gap:8px;padding:5px 0;}
    .ivrow>span[data-label]::before{content:attr(data-label);flex:0 0 68px;font-size:11px;
      font-weight:600;color:var(--muted);}
    .ivrow .cell{flex:1;width:auto;font-size:14px;padding:8px 10px;text-align:left;}
    .ivrow .cell.r{text-align:right;}
    .ivrow .amt{justify-content:flex-start;font-size:15px;font-weight:700;color:var(--ink);}
    .ivrow .amt::before{color:var(--muted);}
    .ivrow .rm-c{position:absolute;top:4px;right:6px;padding:0;gap:0;}
    .ivrow .rm-c .act{padding:6px;}
    .ivrow.empty-r{display:block;padding:12px;}
    .ivsum{width:100%;}
    /* 請求書・見積書の一覧：スマホでは金額とボタンを下の段へ */
    .ivc{flex-wrap:wrap;align-items:flex-start;gap:10px 12px;padding:13px 13px 12px;}
    .ivc-ic{width:34px;height:34px;}
    .ivc-main{flex:1 1 calc(100% - 50px);}
    .ivc-side{flex:1 0 100%;flex-direction:row;align-items:center;justify-content:space-between;
      padding-top:10px;border-top:1px solid var(--line);}
    .ivc-amt{font-size:20px;}
    .ivc-b{padding:7px 10px;}
    /* 請求書の明細（1行＝1枚）：スマホでは縦に積む。品目→期間・稼働者→単価×数量→金額→操作 */
    .ivl{padding:12px;grid-template-columns:28px minmax(0,1fr) auto;
      grid-template-areas:"no name name" "meta meta meta" "calc calc calc" "op op op";}
    .ivno{margin-top:19px;}
    .ivl-meta{grid-template-columns:1fr;}
    .ivl-calc{flex-wrap:wrap;justify-content:flex-end;}
    .ivamt{flex:1 0 100%;font-size:21px;}
    .ivl-op{justify-self:end;margin-top:0;}
    .ivop-menu{top:auto;bottom:calc(100% + 7px);}
    .ivop-menu::before{top:auto;bottom:-6px;transform:rotate(225deg);}
    .ivsum.ivtot{bottom:calc(58px + env(safe-area-inset-bottom));justify-content:space-between;gap:4px 14px;padding:10px 12px;}
    .ivtot-n{flex:1 0 100%;}
    .wl-acts{margin-left:0;width:100%;}
    .wl-acts .save,.wl-acts .prt{flex:1;justify-content:center;}
    /* 見出し行のボタンは横に並べきれないので、見出しの下に折り返す */
    .pg-head{flex-direction:column;align-items:stretch;gap:12px;}
    .pg-head .wl-acts{flex-wrap:wrap;}
    .pg-head .wl-acts>button{flex:1 1 auto;justify-content:center;}
    .pg-head .add-btn{flex-shrink:1;justify-content:center;}
    .wl-grid .row{grid-template-columns:48px 28px 1fr 74px 74px 52px;gap:4px;padding:6px 8px;}
    .wl-grid .cell{padding:4px 5px;font-size:12px;}
    .wl-grid .c-r{font-size:12px;}
    .wl-grid .row.so-row{grid-template-columns:40px minmax(0,1.5fr) 44px 44px 38px 62px;gap:4px;padding:8px 6px;font-size:12px;}
    .so-row .c-t{white-space:nowrap;}
    .att-sel{padding:4px 2px;font-size:11px;}
    /* サイドバーをスライド式ドロワーにして、全機能をスマホからも開けるようにする */
    aside{display:flex;position:fixed;top:0;left:0;bottom:0;width:82%;max-width:300px;z-index:60;
      transform:translateX(-100%);transition:transform .25s ease;overflow-y:auto;
      padding-bottom:env(safe-area-inset-bottom);}
    body.nav-open aside{transform:translateX(0);}
    #nav-overlay{display:none;position:fixed;inset:0;z-index:55;background:rgba(22,35,59,.45);}
    body.nav-open #nav-overlay{display:block;}
    /* ハンバーガーを目立たせる：ゴールドの枠付きボタン＋「メニュー」ラベル */
    .menu-btn{display:flex;align-items:center;justify-content:center;gap:5px;color:#fff;
      padding:7px 11px;margin-right:8px;flex-shrink:0;border:1px solid var(--gold-line);
      border-radius:8px;background:rgba(200,164,92,.18);font-size:12px;font-weight:600;}
    .menu-btn::after{content:"メニュー";}
    .menu-btn:active{background:rgba(200,164,92,.32);}
    header.top{display:flex;}
    main{padding-bottom:64px;}
    nav.bottom{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--card);
      border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);}
    nav.bottom button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;color:var(--faint);font-size:10px;font-weight:500;}
    .svc{grid-template-columns:1fr;}
    .modal .mb{grid-template-columns:1fr;}
    .up-row{grid-template-columns:1.2fr 74px 90px 64px;font-size:12px;}
    .up-row span:nth-child(4){display:none;}
    .up-row2{grid-template-columns:84px 1fr 84px 60px;font-size:12px;}
    .up-row2 span:nth-child(4),.up-row2 span:nth-child(5){display:none;}
    /* 個人別（取引先つき）：1行目=スタッフ／平日単価／操作、2行目=明細行＋取引先 */
    .up-row3{grid-template-columns:minmax(0,1fr) 84px 58px;row-gap:2px;font-size:12px;}
    .up-row3 span:nth-child(2),.up-row3 span:nth-child(5),.up-row3 span:nth-child(6){display:none;}
    .up-row3 span:nth-child(1){order:1;font-weight:600;}
    .up-row3 span:nth-child(4){order:2;}
    .up-row3 span:nth-child(7){order:3;}
    .up-row3 span:nth-child(3){order:4;grid-column:1/-1;}
    .up-row3.hd span:nth-child(3){display:none;}
    .ai-l{grid-template-columns:minmax(0,1fr) 70px 78px;row-gap:2px;font-size:12px;}
    .ai-l>span:nth-child(1){grid-column:1/-1;}
    .ai-l>span:nth-child(2){grid-column:1;}
    .ai-l>span:nth-child(3){grid-column:2;}
    .ai-l>span:nth-child(4){display:none;}
    .ai-l>span:nth-child(5){grid-column:3;}
    .brush .bc{min-width:0;flex:1 1 140px;}
    .ai-l.as-l{grid-template-columns:minmax(0,1fr) 96px;}
    .ai-l.as-l>span:nth-child(1){grid-column:1/-1;}
    .ai-l.as-l>span:nth-child(2){grid-column:1;text-align:left;}
    .ai-l.as-l>span:nth-child(3){display:none;}
    .ai-l.as-l>span:nth-child(4){grid-column:2;}
    /* 請求書一覧：作成者は .s の中だと省略されて見えないので独立行に出す */
    .iv-by.pc-by{display:none;}
    .iv-byl{display:block;margin-top:4px;}
    .iv-byl .iv-by{font-size:11.5px;font-weight:700;color:var(--ink);
      background:var(--gold-soft);border:1px solid var(--gold-line);padding:2px 8px;}
    .iv-byl .iv-by svg{color:var(--gold);}
    .iv-byl .iv-by.none{color:var(--faint);background:var(--surface2);border-color:var(--line);font-weight:500;}
    .mb-cl{display:inline;}
    /* 割り当てバー：スマホでは画面上に貼り付け、店舗は横にスクロールする1行にまとめる */
    #sh-brush:has(.b2){position:sticky;top:56px;z-index:25;}
    .brush.b2{padding:8px 10px;margin-bottom:10px;background:color-mix(in srgb,var(--canvas) 92%,transparent);}
    .b2-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
      padding-bottom:2px;-webkit-mask-image:linear-gradient(90deg,#000 86%,transparent);mask-image:linear-gradient(90deg,#000 86%,transparent);}
    .b2-row::-webkit-scrollbar{display:none;}
    .b2 .bt{flex:none;white-space:nowrap;padding:6px 12px;font-size:12.5px;}
    .b2-top{flex-wrap:nowrap;}
    .b2-top .bl{display:none;}
    .b2-cur{flex:none;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .b2-top .bc{flex:1 1 auto;min-width:0;}
    .b2-sp{display:none;}
    /* イベント受注：1件ずつカードに分け、取引先の見出しは画面上に貼り付ける */
    .list:has(.ev-row){background:none;border:none;overflow:visible;border-radius:0;}
    .ev-row:not(.hd){margin:0 0 10px;border:1px solid var(--line) !important;border-radius:14px;
      background:var(--card-glass);padding:12px 12px 12px 15px;}
    .ev-row:not(.hd):hover{background:var(--card-glass);}
    .ev-ghd{position:sticky;top:56px;z-index:5;border-radius:12px;margin:14px 0 8px;
      border:1px solid var(--line2) !important;background:color-mix(in srgb,var(--card) 94%,transparent) !important;
      backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
    .ev-ghd:first-child{margin-top:0;}
    .ev-d{font-size:16px;font-weight:700;color:var(--ink);}
    .ev-row .pl-b{white-space:normal;line-height:1.35;}
    .ev-tools .ev-tg{flex:1 1 auto;justify-content:center;}
    /* 取引先ごとの見出しの下では、カードの中の取引先名は繰り返さない */
    .ev-grouped .ev-row>span:nth-child(3){display:none;}
    .ev-grouped .ev-row>span:nth-child(4){grid-column:2;grid-row:2;font-size:12px;}

    /* 売上予測 */
    .fc{padding:14px 14px 12px;}
    .fc-v{font-size:36px;}
    .fc-ft{gap:3px 12px;font-size:11.5px;}
    .fc-up{font-size:22px;letter-spacing:.18em;}

    /* ================= スマホのダッシュボード ================= */
    .dh{margin:-16px -16px 16px;border-radius:0 0 24px 24px;border-left:none;border-right:none;border-top:none;}
    .dh-in{flex-direction:column;align-items:stretch;gap:14px;padding:18px 16px 20px;}
    .dh-r{text-align:left;}
    .dh-date b{font-size:20px;}
    .dh-v b{font-size:34px;} .dh-v small{font-size:17px;}
    .dh-kpi{grid-template-columns:1fr 1fr;gap:10px;}
    .dh-kpi .stat{padding:14px;}
    .dh-kpi .stat .num{font-size:27px;margin-top:10px;}
    .dh-kpi .stat .lbl{font-size:11px;}
    .dh-kpi .kpi-s{font-size:10.5px;}
    .dh-card{padding:4px 14px;}
    .dh-row{flex-wrap:wrap;row-gap:1px;font-size:13px;}
    .dh-row b{flex:1 1 auto;}
    .dh-row em{flex:none;}
    .dh-row span{flex:1 1 100%;padding-left:18px;order:3;}
    .dh-t{padding:12px 14px;}
    .dh-t .dh-tx b{font-size:13px;}
    /* タップの波紋（サービスタイル） */
    .svc .t{position:relative;overflow:hidden;}
    .rip{position:absolute;border-radius:50%;background:rgba(198,161,91,.4);transform:scale(0);
      animation:ripOut .6s ease-out forwards;pointer-events:none;}
    @keyframes ripOut{to{transform:scale(2.2);opacity:0;}}
  }

  @media screen and (max-width:767px) and (prefers-reduced-motion:reduce){
    .dh *,.svc .t,.svc .t .ic,.svc .t::after{animation:none !important;}
    .svc .t{opacity:1 !important;transform:none !important;}
    .dh-dots,.dh-scan{display:none;}
  }
