/* utilities.css — CSP対応: inline style を排するためのユーティリティ/補助クラス。
   このファイルは各ページで最後に読み込むこと。
   セレクタはクラスを2重掛け（.x.x）にして詳細度を 0,2,0 に上げている。これにより既存の
   要素ベース規則（例 .form label = 0,1,1）に勝ち、旧 inline style と同等の見た目を再現しつつ、
   実行時の element.style（= inline。JS の表示切替など）には従う（override される）ようにしている。
   自動生成部（u-xxxxxx）は scripts で機械生成。手動追記は上部の名前付きクラスに限る。 */

/* JS で表示/非表示を切り替える要素（inline display:none の置き換え） */
.is-hidden.is-hidden { display: none; }

/* 管理画面: 画像プレビュー（imgField） */
.d-prev.d-prev { object-fit: cover; border-radius: 10px; border: 1px solid var(--line); background: #f4f6f5; margin-bottom: 8px; }
.d-prev-cover.d-prev-cover { width: 100%; max-height: 96px; }
.d-prev-thumb.d-prev-thumb { width: 56px; height: 56px; }

/* 管理画面: ポイント増減の色 */
.pt-delta-pos.pt-delta-pos { color: var(--lc-d); font-weight: 700; }
.pt-delta-neg.pt-delta-neg { color: #c0392b; font-weight: 700; }

/* 店舗アプリ: ポイント増減の色 */
.lc-delta-pos.lc-delta-pos { color: var(--lc-theme); }
.lc-delta-neg.lc-delta-neg { color: #c0392b; }

/* ---- 自動生成: 旧 inline style 値 → ユーティリティクラス ---- */
.u-040836.u-040836 { margin:6px 0 8px; }
.u-046678.u-046678 { width:100%; }
.u-06550b.u-06550b { margin-top:18px; padding-top:12px; border-top:1px solid #e3e9e5; }
.u-08c7c3.u-08c7c3 { color:var(--lc); }
.u-0a2a3f.u-0a2a3f { gap:8px; cursor:pointer; }
.u-0a4c59.u-0a4c59 { cursor:pointer; font-weight:700; font-size:.88rem; }
.u-116966.u-116966 { margin:0; }
.u-129453.u-129453 { text-align:center; margin-top:12px; }
.u-13313b.u-13313b { display:flex; justify-content:space-between; align-items:center; }
.u-13c104.u-13c104 { justify-content:space-between; align-items:flex-start; }
.u-1462db.u-1462db { text-align:right; white-space:nowrap; color:var(--muted); }
.u-16223f.u-16223f { display:none; text-align:center; margin:0 0 10px; }
.u-17f9a1.u-17f9a1 { margin:12px 0 2px; }
.u-196558.u-196558 { background:#eef6f1; border:1px solid #cfe6da; border-radius:8px; padding:10px; }
.u-1b0f49.u-1b0f49 { margin-top:16px; }
.u-1d5a2e.u-1d5a2e { width:140px; border-radius:8px; border:1px solid var(--line); margin-bottom:6px; display:block; }
.u-1f53cf.u-1f53cf { display:flex; flex-direction:column; gap:2px; }
.u-220a05.u-220a05 { display:flex; gap:8px; margin-top:10px; }
.u-249d01.u-249d01 { margin:0 0 12px; }
.u-25e3e7.u-25e3e7 { font-size:.76rem; margin-bottom:2px; }
.u-2d7d27.u-2d7d27 { justify-content:space-between; align-items:center; }
.u-2f3f7d.u-2f3f7d { max-width:280px; }
.u-302f49.u-302f49 { margin:20px 0; }
.u-30e741.u-30e741 { width:auto; }
.u-390bb0.u-390bb0 { text-align:center; margin:8px 0 0; font-size:.78rem; }
.u-39e706.u-39e706 { width:120px; aspect-ratio:16/9; object-fit:cover; border-radius:8px; border:1px solid var(--line); }
.u-3b6a3a.u-3b6a3a { cursor:pointer; }
.u-41a3a4.u-41a3a4 { border-color:#e7b500; background:#fff8e6; }
.u-422be3.u-422be3 { white-space:pre-wrap; margin-top:8px; font-size:.8rem; }
.u-450d31.u-450d31 { font-size:1.25rem; }
.u-484601.u-484601 { text-decoration:underline; cursor:pointer; }
.u-49cd09.u-49cd09 { display:flex; gap:6px; }
.u-49fcd8.u-49fcd8 { margin-top:24px; }
.u-4e420a.u-4e420a { margin-bottom:6px; }
.u-4ede69.u-4ede69 { text-align:right; white-space:nowrap; }
.u-4ee1da.u-4ee1da { color:#e05555; font-size:11px; }
.u-4f0c96.u-4f0c96 { width:64px; height:64px; border-radius:10px; object-fit:cover; border:1px solid var(--line); }
.u-52e7f2.u-52e7f2 { text-align:center; margin:10px 0 0; }
.u-532b40.u-532b40 { max-width:180px; }
.u-5433df.u-5433df { height:84px; margin-top:14px; }
.u-54c2af.u-54c2af { text-align:right; }
.u-55e86d.u-55e86d { color:var(--lc-theme); font-size:1.1rem; }
.u-56f435.u-56f435 { margin-top:12px; }
.u-57098c.u-57098c { border:2px solid var(--lc); margin-bottom:0; }
.u-581e97.u-581e97 { border:0; padding:4px 0; }
.u-58d955.u-58d955 { margin:0 0 4px; }
.u-5db197.u-5db197 { margin:8px 0 0; font-size:.78rem; }
.u-5dd2a6.u-5dd2a6 { margin-left:8px; }
.u-5ec902.u-5ec902 { max-width:240px; font-weight:700; letter-spacing:2px; text-align:center; }
.u-600dee.u-600dee { padding:10px 0; border-top:1px solid var(--line); }
.u-607468.u-607468 { width:110px; }
.u-63e775.u-63e775 { margin:4px 0 0; }
.u-682686.u-682686 { justify-content:space-between; gap:10px; margin-bottom:10px; }
.u-6926eb.u-6926eb { margin:6px 0 10px; }
.u-6ba842.u-6ba842 { gap:12px; flex-wrap:wrap; }
.u-759e41.u-759e41 { margin:0 0 10px; }
.u-77fda0.u-77fda0 { background:#fdf3e7; border:1px solid #f0ddc0; border-radius:8px; padding:10px; }
.u-7a96d9.u-7a96d9 { max-width:140px; }
.u-7d7a52.u-7d7a52 { display:flex; flex-direction:column; gap:6px; align-items:flex-end; }
.u-7e3a94.u-7e3a94 { font-weight:400; }
.u-7eba57.u-7eba57 { max-width:150px; }
.u-7f93bc.u-7f93bc { width:1.6em; color:var(--muted); }
.u-7f93fe.u-7f93fe { padding-left:1.3em; line-height:2; margin:8px 0 0; }
.u-80d654.u-80d654 { text-decoration:none; }
.u-81f434.u-81f434 { gap:12px; align-items:flex-start; }
.u-824603.u-824603 { margin:10px 0 0; }
.u-82c0dd.u-82c0dd { cursor:pointer; text-align:center; font-size:.8rem; }
.u-84f4c5.u-84f4c5 { margin:6px 0 0; }
.u-85c718.u-85c718 { font-weight:600; margin-bottom:6px; }
.u-86de7a.u-86de7a { margin-top:18px; }
.u-8a77e5.u-8a77e5 { margin-top:8px; }
.u-9096ee.u-9096ee { white-space:pre-wrap; margin-top:2px; }
.u-909728.u-909728 { font-size:1.35rem; }
.u-91a870.u-91a870 { text-align:center; }
.u-951b72.u-951b72 { font-size:1rem; }
.u-96ad60.u-96ad60 { margin-top:4px; }
.u-97445a.u-97445a { flex:1; }
.u-9889f6.u-9889f6 { text-align:center; font-size:1.6rem; letter-spacing:6px; font-weight:800; margin:6px 0; }
.u-9bcd21.u-9bcd21 { font-size:.85rem; }
.u-9c42a8.u-9c42a8 { color:var(--lc-theme); }
.u-9e8c02.u-9e8c02 { gap:6px; margin-bottom:14px; }
.u-9fc0a7.u-9fc0a7 { color:#fff; opacity:.85; }
.u-a3f154.u-a3f154 { max-width:380px; max-height:80vh; overflow:auto; }
.u-a484fe.u-a484fe { text-transform:uppercase; }
.u-a548ea.u-a548ea { white-space:pre-wrap; }
.u-a562f4.u-a562f4 { justify-content:space-between; }
.u-a5d7a0.u-a5d7a0 { max-width:240px; }
.u-a697fa.u-a697fa { margin:6px 0 0; padding-left:18px; font-size:.9rem; }
.u-a6a761.u-a6a761 { margin:18px 0 8px; font-size:.92rem; }
.u-a726b0.u-a726b0 { font-size:.8rem; }
.u-ad7f18.u-ad7f18 { margin:0 0 6px; }
.u-ae4c4a.u-ae4c4a { text-align:center; margin:14px 0; }
.u-af1d23.u-af1d23 { margin:4px 0 10px; }
.u-b172b9.u-b172b9 { width:auto; margin-top:3px; }
.u-b234d9.u-b234d9 { justify-content:space-between; align-items:flex-start; gap:10px; }
.u-b2fe69.u-b2fe69 { background:#06C755; border-color:#06C755; color:#fff; text-decoration:none; }
.u-b8f614.u-b8f614 { margin-right:12px; }
.u-ba134d.u-ba134d { gap:10px; align-items:flex-start; }
.u-bac0f0.u-bac0f0 { margin:8px 0 4px; }
.u-bd61b7.u-bd61b7 { display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
.u-bdc875.u-bdc875 { margin:10px 0 0; text-align:center; }
.u-c00d39.u-c00d39 { margin-top:3px; }
.u-c1fafc.u-c1fafc { margin:6px 0; }
.u-c234c7.u-c234c7 { background:#fff; border-radius:16px; max-width:340px; padding:20px; text-align:left; }
.u-c704d4.u-c704d4 { margin:10px 0 4px; }
.u-c81ce4.u-c81ce4 { margin-bottom:4px; }
.u-c83460.u-c83460 { color:#d33; }
.u-c94d43.u-c94d43 { margin:8px 0 0; }
.u-cb2373.u-cb2373 { width:100%; max-width:360px; border-radius:12px; background:#000; }
.u-cecc68.u-cecc68 { background:#f6faf8; border-color:#dcebe3; }
.u-d1e917.u-d1e917 { margin-top:4px; white-space:pre-wrap; }
.u-d20fce.u-d20fce { border:1px solid var(--line); border-radius:12px; }
.u-d24602.u-d24602 { gap:16px; margin-top:8px; }
.u-d2c171.u-d2c171 { margin-top:10px; }
.u-d2db4c.u-d2db4c { white-space:pre-wrap; margin-top:8px; font-size:.82rem; }
.u-d46224.u-d46224 { margin-top:0; }
.u-d6e47a.u-d6e47a { font-size:.9rem; }
.u-d6f2af.u-d6f2af { margin-top:14px; }
.u-da12f2.u-da12f2 { margin-bottom:12px; }
.u-ddd3df.u-ddd3df { gap:14px; flex-wrap:wrap; }
.u-df6718.u-df6718 { margin:0 0 8px; }
.u-e08b76.u-e08b76 { margin-top:12px; opacity:.5; }
.u-e6dddd.u-e6dddd { color:#b4231d; }
.u-e6eac2.u-e6eac2 { margin:16px 0 6px; font-size:.95rem; }
.u-e72d85.u-e72d85 { padding-left:1.2em; line-height:1.9; }
.u-eabc81.u-eabc81 { display:flex; align-items:flex-start; gap:8px; margin:14px 0 0; cursor:pointer; font-size:.85rem; color:#444; }
.u-ec6626.u-ec6626 { width:70px; }
.u-ef0b7a.u-ef0b7a { margin-bottom:0; }
.u-f00d37.u-f00d37 { font-size:1.05rem; margin:18px 0 10px; }
.u-f3499d.u-f3499d { gap:8px; cursor:pointer; margin-top:10px; }
.u-f5554e.u-f5554e { margin:8px 0; }
.u-f5d222.u-f5d222 { flex:1; font-size:.85rem; }
.u-f6ce4d.u-f6ce4d { gap:16px; }
.u-fa50d3.u-fa50d3 { margin-top:14px; border-top:1px solid var(--line); padding-top:10px; }
.u-fb7990.u-fb7990 { text-align:left; margin-bottom:10px; }
.u-fd8c3c.u-fd8c3c { margin:10px 0 14px; line-height:1.7; font-size:.9rem; color:#333; }
.u-fe7b49.u-fe7b49 { margin-top:6px; }
