:root{
  --bg:#f4f6f8; --card:#fff; --line:#d9dee3; --ink:#1f2933; --muted:#67727e;
  --brand:#c0392b; --brand2:#2e7d32; --accent:#2563eb; --warn:#b45309; --dev:#7c3aed;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}
.topbar{display:flex;align-items:center;gap:12px;background:#1f2933;color:#fff;
  padding:10px 18px;position:sticky;top:0;z-index:10}
.topbar .brand{font-weight:700}
.topbar .beta{color:#ffd27a;font-size:.8em;font-weight:600}
.topbar .spacer{flex:1}
.topbar .user{color:#cfd8e3}
.topbar .logout{color:#ffd27a;text-decoration:none;margin-left:14px}
.container{max-width:1100px;margin:0 auto;padding:18px}
.page-title{font-size:1.3rem;margin:.2em 0 .6em}
.page-title .acct{font-size:.7em;color:var(--muted);font-weight:500}

.flash{padding:8px 12px;border-radius:8px;margin:8px 0;font-weight:600}
.flash.ok{background:#e7f6ec;color:#1b5e20;border:1px solid #b6dfc2}
.flash.warn{background:#fff4e5;color:#8a4b00;border:1px solid #f0cd9a}
.flash.dev{background:#f1e9fb;color:#5b21b6;border:1px solid #d6c2f0}

.step{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;margin:14px 0}
.step h3{margin:.1em 0 .5em;font-size:1.05rem}
.hint{color:var(--muted);font-size:.85em;margin:.2em 0}
.hint.ok{color:var(--brand2)} .hint.warn{color:var(--warn)}
.empty{color:var(--muted);padding:20px;text-align:center}

textarea,input[type=text],input[type=email],input[type=password],input[type=date],select{
  width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;
  font:inherit;background:#fff;color:var(--ink)}
textarea.mono{font-family:"Consolas","Courier New",monospace;font-size:12px}
label{display:block;margin:6px 0;font-size:.85em;color:var(--muted)}
label input,label textarea,label select{margin-top:3px}
button{cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font:inherit;
  font-weight:600;background:#e6eaee;color:#1f2933}
button.primary{background:var(--brand);color:#fff}
button.danger{background:#fff;color:var(--brand);border:1px solid var(--brand)}
button:hover{filter:brightness(.96)}

.searchform{display:flex;gap:10px;align-items:flex-start}
.searchform textarea{flex:1}
.searchbtns{display:flex;flex-direction:column;gap:6px}
.searchbtns button{white-space:nowrap}
.staffbar{margin:10px 0}
.staffbar select{max-width:280px}
.datebar{display:flex;gap:8px;align-items:center;margin:6px 0 12px}
.datebar input{max-width:200px}

.card{background:var(--card);border:1px solid var(--line);border-radius:10px;
  margin:8px 0;overflow:hidden}
.card>summary{cursor:pointer;padding:9px 12px;font-size:.9em;background:#fbfcfd;
  user-select:none;list-style:none}
.card>summary::-webkit-details-marker{display:none}
.card[open]>summary{border-bottom:1px solid var(--line);background:#f0f4f8}
.card .grid{display:grid;grid-template-columns:3fr 2fr;gap:16px;padding:12px}
@media(max-width:820px){.card .grid{grid-template-columns:1fr}}
/* ヤフオク!スタイル：上から順の1カラム */
.cardbody{max-width:800px;padding:12px}
.cardbody>fieldset,.cardbody>form>fieldset{margin:12px 0}
.cardbody legend{font-size:.9em;font-weight:700;color:var(--ink);padding:0 6px}
.row2{display:flex;gap:12px;flex-wrap:wrap}
.row2>label{flex:1;min-width:180px}
fieldset{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0}
legend{font-size:.8em;color:var(--muted);padding:0 5px}
.row{display:flex;gap:12px;align-items:flex-end}
.row .cost{white-space:nowrap;color:var(--muted);padding-bottom:8px}
.preview{background:#f6f8fa;border-radius:6px;padding:6px 8px;margin:6px 0;
  font-size:.85em;word-break:break-all}
.count{font-size:.8em;margin:.2em 0}
.over{color:var(--brand);font-weight:700}
.ok{color:var(--brand2)}
.delform{padding:0 12px 12px;text-align:right}

.login-card{max-width:380px;margin:8vh auto;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:26px 28px}
.login-card h2{margin:0 0 14px}
.login-card button{width:100%;margin-top:12px}

/* カテゴリ */
.catwrap{margin:0 12px 10px}
.catbox{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.catbox .catform{display:flex;flex-wrap:wrap;gap:8px}
.catbox select{width:auto;min-width:150px}
.catbox .catidform{margin-left:auto}
.catbox .catidform input{width:180px}
.catbox .hint{flex-basis:100%;margin:2px 0 0}
.remarks{background:#f6f8fa;border-radius:6px;padding:8px 10px;
  white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;
  line-height:1.55;max-height:220px;overflow:auto}

/* 商品説明プレビュー（読み取り専用・自動生成HTML） */
.htmlprev{margin:0 12px 10px;border:1px dashed var(--line);border-radius:8px;background:#fcfcfd}
.htmlprev>summary{cursor:pointer;padding:8px 10px;font-size:.85em;color:var(--muted)}
.htmlprev-body{max-height:420px;overflow:auto;padding:10px;background:#fff;border-top:1px dashed var(--line)}
.htmlprev-body img{max-width:100%;height:auto}
.htmlprev-body table{max-width:100%}
/* 写真サムネイル（プレビュー上部） */
.photostrip{margin:0 0 12px;padding:8px;background:#f0f4f8;border:1px solid var(--line);border-radius:8px}
.photostrip .ptitle{font-size:.85em;color:var(--muted);font-weight:600}
.photostrip.nophoto{color:var(--warn)}
.pthumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pthumbs img{width:96px;height:96px;object-fit:cover;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:zoom-in}

/* 読込インジケータ */
#busy{position:fixed;top:10px;right:14px;background:#1f2933;color:#ffd27a;
  padding:6px 12px;border-radius:20px;font-size:.8em;font-weight:600;
  box-shadow:0 2px 8px rgba(0,0,0,.2);display:none;z-index:50}
body.busy #busy{display:block}

/* ── チャネル切替ナビ（入り口2つ：Cアカ / メルカリ） ── */
.channelnav{display:flex;gap:8px;margin:0 0 12px}
.channelnav a{
  padding:8px 16px;border:1px solid var(--line);border-radius:9px;
  background:var(--card);color:var(--muted);text-decoration:none;font-weight:700;font-size:.95em}
.channelnav a:hover{border-color:var(--accent);color:var(--accent)}
.channelnav a.active{background:var(--accent);color:#fff;border-color:var(--accent)}

/* メルカリ商品説明プレビュー（プレーン文＝改行保持） */
.descprev{white-space:pre-wrap;font-size:.85em;color:var(--ink);
  background:#f8fafc;border:1px solid var(--line);border-radius:7px;padding:8px 10px;margin-top:8px}

/* ブランド選択（メルカリ・任意） */
.brandbox input[type="search"]{width:100%;padding:6px 8px;border:1px solid #cfd6de;border-radius:6px;font-size:13px}
.brandlist{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;max-height:150px;overflow-y:auto}
.brandopt{background:#f4f7fb;border:1px solid #cfd6de;border-radius:14px;padding:4px 10px;
          font-size:12px;cursor:pointer;line-height:1.4}
.brandopt:hover{background:#e3ecf7;border-color:#8fb4dd}
.brandopt small{color:#7a848f;margin-left:3px}
.brandpicked{display:flex;align-items:center;gap:8px}
.brandtag{background:#e8f5e9;border:1px solid #a5d6a7;border-radius:14px;padding:4px 10px;font-size:13px}
.btn-mini{background:#fff;border:1px solid #cfd6de;border-radius:6px;padding:3px 8px;font-size:12px;cursor:pointer}
.btn-mini:hover{background:#f4f7fb}
.brandlock{background:#fff4e5;border:1px solid #ffcc80;border-radius:6px;
           padding:6px 10px;font-size:12px;color:#8a5300;margin:0 0 6px}

/* ★ヤフオク用語（入札 等）がメルカリの商品説明に混ざったときの注意（2026-08-28） */
.ngwords{background:#fdecea;border:1px solid #f5c2bd;border-radius:6px;
         padding:6px 10px;font-size:12px;color:#8a1f13;margin:6px 0 4px}
.btn-fixwords{background:#fff;border:1px solid #e08a7d;color:#8a1f13;border-radius:6px;
              padding:4px 10px;font-size:12px;cursor:pointer;margin:0 0 4px}
.btn-fixwords:hover{background:#fdecea}

/* ============================================================
   チャレンビーメルカリ（メルカリShops 管理画面の社内版・2026-09-03）
   ============================================================ */
.envbadge{font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px}
.envbadge.sandbox{background:#fff4e5;color:#8a5300;border:1px solid #ffcc80}
.envbadge.prod{background:#3a4550;color:#ffd6d1;border:1px solid #5a6570}
.whoami{color:#cfd8e3;font-size:12px;margin:0 4px}
.envbar{padding:8px 14px;font-size:13px;border-bottom:1px solid #ffcc80}
.envbar.sandbox{background:#fff8ec;color:#8a5300}
.envbar code{background:#fff;border:1px solid #ffcc80;border-radius:4px;padding:1px 5px}

.mlayout{display:grid;grid-template-columns:212px 1fr;gap:18px;align-items:start}
@media (max-width:820px){.mlayout{grid-template-columns:1fr}}

.msidebar{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:8px;position:sticky;top:56px}
.mshop{padding:8px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.mshop-name{font-weight:700}
.mshop-sub{font-size:11px;color:var(--muted)}
.mnav{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;
  color:var(--ink);text-decoration:none;font-size:14px}
.mnav:hover{background:#eef2f7}
.mnav.on{background:#eaf1fb;color:#14417a;font-weight:700}
.mnav-ico{width:20px;text-align:center}
.mnav.ext{color:var(--muted);font-size:13px}
.mnav-sep{height:1px;background:var(--line);margin:8px 4px}

.mmain{min-width:0}
.mtitle{font-size:20px;margin:0 0 4px}
.msub{color:var(--muted);font-size:13px;margin:0 0 14px}
.mh2{font-size:15px;margin:22px 0 10px}
.mnote{color:var(--muted);font-size:12px;margin:8px 0 0}
.mnotice{background:#eef4fb;border:1px solid #c9dcf2;border-radius:8px;padding:10px 12px;
  font-size:13px;margin:0 0 12px}
.mnotice.warn{background:#fff8ec;border-color:#ffcc80;color:#8a5300}
.mnotice-sub{color:var(--muted);font-size:11px;margin-top:4px}

.mcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.mcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.mcard-l{font-size:12px;color:var(--muted)}
.mcard-v{font-size:22px;font-weight:700;margin:2px 0 2px}
.mcard-s{font-size:11px;color:var(--muted)}
.mcard.hi{border-color:#a5d6a7;background:#f4fbf5}
.mcard.link{text-decoration:none;color:inherit;display:block}
.mcard.link:hover{border-color:#8fb4dd;background:#f7fbff}
.mcard.warn{border-color:#ffcc80;background:#fff8ec}
.mcard.alert{border-color:#f5c2bd;background:#fdecea}

/* 読み込み中の骨組み（数字が入るまでの枠） */
.mcard.skel{opacity:.6}
.skel-l{height:10px;width:46%;background:#e6ebf1;border-radius:4px}
.skel-v{height:22px;width:70%;background:#eef2f6;border-radius:4px;margin-top:8px}

.mquick{display:flex;flex-wrap:wrap;gap:8px}
.qbtn{display:inline-block;background:var(--card);border:1px solid var(--line);
  border-radius:8px;padding:8px 14px;text-decoration:none;color:var(--ink);font-size:13px}
.qbtn:hover{background:#eef2f7;border-color:#8fb4dd}

/* 暗いヘッダーの上に置くボタン（素のリンクだと青くて読めない） */
.topbar .btn.ghost{background:#2b3641;border:1px solid #46525f;color:#e6edf5;
  text-decoration:none;border-radius:6px;padding:4px 10px;font-size:12px;white-space:nowrap}
.topbar .btn.ghost:hover{background:#3a4550;border-color:#6b7684}

/* 商品セクション */
.mfilter{display:flex;gap:8px;margin:0 0 10px;flex-wrap:wrap}
.mfilter select,.mfilter input{padding:6px 10px;border:1px solid var(--line);
  border-radius:6px;font-size:13px;background:#fff}
.mfilter input{flex:1;min-width:200px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}
.mtable{border-collapse:collapse;width:100%;font-size:12.5px}
.mtable th{background:#f2f5f9;text-align:left;padding:7px 10px;white-space:nowrap;
  border-bottom:1px solid var(--line);position:sticky;top:0}
.mtable td{padding:6px 10px;border-bottom:1px solid #eef1f5;white-space:nowrap;
  max-width:320px;overflow:hidden;text-overflow:ellipsis}
.mtable tr:hover td{background:#f7fbff}
.editlink{text-decoration:none}
.listhead{display:flex;align-items:center;gap:14px;margin:0 0 8px;font-size:13px;color:var(--muted)}
.pager{margin-left:auto;display:flex;gap:10px;align-items:center}
.pager a{color:var(--accent);text-decoration:none;cursor:pointer}
.issue{background:#fff;border:1px solid var(--line);border-radius:8px;margin:0 0 8px}
.issue>summary{padding:10px 12px;cursor:pointer;font-weight:700;font-size:13.5px}
.issue-body{padding:0 12px 12px}
.issue-desc{font-size:12.5px;color:var(--muted);margin:0 0 6px}
.issue-act{font-size:13px;color:#14417a;margin:0 0 8px}
.copybox{margin-top:8px}
.copybox>summary{font-size:12px;color:var(--muted);cursor:pointer}
.copybox textarea{width:100%;font-size:12px;font-family:monospace;margin-top:6px;
  border:1px solid var(--line);border-radius:6px;padding:6px}

/* 値下げの確定（取り消せない操作なので目立たせる） */
.confirmbox{background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:12px 14px;margin:12px 0;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.confirmbox label{font-size:13px}
.btn-apply{background:var(--brand);color:#fff;border:0;border-radius:8px;
  padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;margin-left:auto}
.btn-apply:disabled{background:#c8ced5;cursor:not-allowed}
.btn-apply:not(:disabled):hover{filter:brightness(1.08)}
.mtable input[type=number]{padding:3px 6px;border:1px solid var(--line);border-radius:5px;font-size:12.5px}
.mtable small{color:var(--muted)}

/* 値下げを反映した直後の結果表示（押したことが一目で分かるように） */
.applied{border-radius:10px;padding:12px 14px;margin:0 0 14px;border:2px solid}
.applied.ok{background:#eefaf0;border-color:#7cc98d}
.applied.ng{background:#fff8ec;border-color:#ffb74d}
.applied-head{font-size:15px;margin-bottom:6px}
.applied-body{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chip{background:#fff;border:1px solid #cfd6de;border-radius:14px;padding:3px 10px;font-size:12.5px}
.applied-sub{font-size:12px;color:var(--muted);margin-top:4px}
.applied-sub.warn{color:#8a5300}
/* 送信中インジケータ（HTMXが .htmx-request を付けている間だけ出す） */
.applying{display:none;color:var(--brand);font-size:13px;font-weight:700}
.htmx-request .applying, .htmx-request.applying{display:inline}

/* 反映後に「次に何ができるか」を示す行（画面が行き止まりにならないように） */
.applied-next{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;
  padding-top:10px;border-top:1px dashed #cfd6de;font-size:12.5px;color:var(--muted)}
.qbtn.mini{padding:5px 10px;font-size:12.5px}

/* 1件だけ値下げ（商品一覧の行の下に開く） */
.rowact{white-space:nowrap}
.rowact .btn-mini{margin-right:4px}
.pricerow>td{background:#f7fbff;border-bottom:2px solid #cfe0f5}
.one-box,.one-ok{padding:4px 2px}
.one-head{font-size:13px;margin-bottom:6px}
.one-sub{color:var(--muted);font-size:11.5px;margin-left:6px}
.one-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0}
.one-form label{font-size:12.5px}
.one-err{background:#fdecea;border:1px solid #f5c2bd;color:#8a1f13;
  border-radius:6px;padding:6px 10px;font-size:12.5px;margin:4px 0}
.one-ok{background:#eefaf0;border:1px solid #7cc98d;border-radius:8px;padding:8px 12px;font-size:13px}
.btn-apply.mini{padding:6px 12px;font-size:12.5px;margin-left:0}

/* 一覧を横スクロールしても「操作」列は左に貼り付いたまま（ボタンに必ず届く） */
.mtable th.stick, .mtable td.stick{position:sticky;left:0;z-index:2;
  background:#fff;box-shadow:2px 0 0 #eef1f5}
.mtable th.stick{background:#f2f5f9;z-index:3}
.mtable tr:hover td.stick{background:#f7fbff}
.pricerow>td{position:static}
/* 商品名が長すぎて他の列を押し出さないように */
.mtable td.cname{max-width:230px;overflow:hidden;text-overflow:ellipsis}

/* 注文（帳票発行）で使う小物 */
.mtable th.num, .mtable td.num{text-align:right}
.htmx-indicator{display:none;margin-left:10px;color:var(--muted);font-size:12.5px}
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator{display:inline}

/* 注文一覧：横スクロールさせない（列幅を決めて商品名・お客様は省略表示） */
.otable{table-layout:fixed;width:100%}
.otable th:nth-child(1),.otable td:nth-child(1){width:34px}    /* 済（帳票を作ったか） */
.otable th:nth-child(2),.otable td:nth-child(2){width:112px}   /* 配送 */
.otable th:nth-child(3),.otable td:nth-child(3){width:52px}    /* 棚 */
.otable th:nth-child(4),.otable td:nth-child(4){width:126px}   /* 管理番号 */
.otable th:nth-child(6),.otable td:nth-child(6){width:46px}    /* 数量 */
.otable th:nth-child(7),.otable td:nth-child(7){width:76px}    /* 金額 */
.otable th:nth-child(8),.otable td:nth-child(8){width:132px}   /* お客様 */
.otable td.ostat{text-align:center}
/* 既に帳票を作った注文（今回の対象外）は淡く */
.otable tr.odone td{opacity:.55;background:#fafafa}
.otable td.shelf{font-weight:700}
.otable td.cname,.otable td.cbuyer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 🚫 注文をキャンセルして棚に戻す（返金＋再出品） */
.otable th.ocx,.otable td.ocx{width:40px;text-align:center;padding-left:0;padding-right:0}
/* ★帳票を作った行は淡くしているが、このボタンだけは淡くしない
   （「伝票発行済みでも棚戻しできるように」が要望の本体・押せないと意味がない） */
.otable tr.odone td.ocx{opacity:1;background:transparent}
.cxbtn{border:1px solid #e0b4b4;background:#fdf6f6;border-radius:6px;cursor:pointer;
  font-size:13px;line-height:1;padding:4px 6px}
.cxbtn:hover{background:#f8e8e8;border-color:#c98d8d}
.cxrow>td{padding:0!important;background:#fdf6f6}
.cxbox{border:2px solid #e0b4b4;border-radius:8px;margin:6px 2px;padding:10px 12px;background:#fff}
.cxhead{font-size:14px;font-weight:700;margin-bottom:8px}
.cxcode{font-weight:400;color:var(--muted);margin-left:8px}
.cxclose{float:right}
.cxsub{font-size:12.5px;font-weight:700;margin:8px 0 2px}
.cxlist{margin:0;padding-left:18px;font-size:12.5px;line-height:1.7}
.cxwarn{color:#8a5300}
.cxrow2{margin:8px 0}
.cxrow2 select{padding:5px 8px;border:1px solid #cfd8e3;border-radius:6px;font-size:13px}
.cxtable{margin:8px 0}
.cxtable td.cname{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn-apply.danger{background:#c0392b;border-color:#a93226;color:#fff}
.btn-apply.danger:hover{background:#a93226}

/* 発送を知らせる（追跡番号の登録） */
.shipwrap{margin-top:22px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.shipwrap>summary{cursor:pointer;font-size:14px}
.shipwrap input[type=file]{margin:8px 8px 8px 0}
.stable th.pick,.stable td.pick{width:44px;text-align:center}
.confirmbox.danger{border-color:#e0b4b4;background:#fdf6f6}
/* ★flexのままだと日本語の文がフレックスアイテムに割れて途中で折り返す（岡田指摘 2026-09-03）。
   発送連絡の確認欄は縦積みにする（価格・帳票の confirmbox は横並びのままでよい）。 */
.confirmbox.stack{display:block}
.confirmbox.stack p{margin:0 0 6px}
.confirmbox.stack .agree{display:inline-flex;align-items:center;gap:6px}
.agree{font-weight:700}
.skipbox{margin-top:12px}
.skipbox>summary{cursor:pointer;color:var(--muted);font-size:12.5px}

/* 押したボタンのすぐ上に出す注意（画面上部だと遠くて気づけない） */
.warn-here{margin-top:10px;padding:8px 10px;border-radius:6px;
  background:#fff3cd;border:1px solid #e0c97f;font-size:13px;font-weight:700}
.agree.needs{background:#fff3cd;border:1px solid #e0c97f;border-radius:6px;
  padding:4px 8px;display:inline-flex;align-items:center;gap:6px}

/* 価格一覧：横スクロールさせない（商品名以外は幅を決める） */
.ptable{table-layout:fixed;width:100%}
.ptable th.pick,.ptable td.pick{width:34px;text-align:center}
.ptable th:nth-child(2),.ptable td:nth-child(2){width:124px}  /* 管理番号 */
.ptable th:nth-child(4),.ptable td:nth-child(4){width:66px}   /* 現在 */
.ptable th:nth-child(5),.ptable td:nth-child(5){width:104px}  /* 新価格 */
.ptable th:nth-child(6),.ptable td:nth-child(6){width:106px}  /* 下限 */
.ptable th:nth-child(7),.ptable td:nth-child(7){width:78px}   /* 経過 */
.ptable th:nth-child(8),.ptable td:nth-child(8){width:56px}   /* 棚 */
.ptable td.cname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:none}
.ptable td small{margin-left:4px;color:var(--muted)}

/* お問い合わせ */
/* 列＝放置／棚／管理番号／商品名／お客様／状態／開く（商品名だけ可変） */
.qtable{table-layout:fixed;width:100%}
.qtable th:nth-child(1),.qtable td:nth-child(1){width:66px}    /* 放置 */
.qtable th:nth-child(2),.qtable td:nth-child(2){width:50px}    /* 棚 */
.qtable th:nth-child(3),.qtable td:nth-child(3){width:124px}   /* 管理番号 */
.qtable th:nth-child(5),.qtable td:nth-child(5){width:112px}   /* お客様 */
.qtable th:nth-child(6),.qtable td:nth-child(6){width:92px}    /* 状態 */
.qtable th:nth-child(7),.qtable td:nth-child(7){width:96px}    /* 開く */
.qtable td.cname,.qtable td.cbuyer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lv{font-weight:700}
.lv.warn{color:#b26a00}
.lv.bad{color:#c0392b}
tr.lv-warn td{background:#fffaf0}
tr.lv-bad td{background:#fdf3f2}
.thread{margin-top:18px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#fff}
.thread-head{font-size:14px;margin-bottom:10px}
.thread-grid{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}
.msgs{display:flex;flex-direction:column;gap:10px}
.msg{border-radius:8px;padding:9px 11px;font-size:13px;white-space:pre-wrap;
  overflow-wrap:anywhere;line-height:1.6}
.msg.buyer{background:#f2f5f9}
.msg.mine{background:#eef7ee;margin-left:32px}
.msg-who{font-size:11.5px;color:var(--muted);margin-bottom:4px;display:flex;
  justify-content:space-between;gap:8px}
.sideinfo{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fafbfc}
.sideinfo-h{font-weight:700;font-size:13px;margin-bottom:8px}
.sideimg{width:100%;border-radius:6px;display:block;margin-bottom:8px}
.sideimg.none{background:#eef1f5;color:var(--muted);text-align:center;padding:26px 0;font-size:12px}
.kv{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:3px 0;
  border-bottom:1px dashed #e6eaef}
.shelfbig{font-size:15px}
.replybox{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.tmplrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
#replyform textarea{width:100%;padding:8px 10px;border:1px solid var(--line);
  border-radius:6px;font-size:13px;line-height:1.6;font-family:inherit}
.statusrow{margin-top:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* 写真を追加（QR） */
.photorow{margin-top:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.qrbox{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#fafbfc}
.qrgrid{display:grid;grid-template-columns:190px 1fr;gap:16px;align-items:start}
.qrimg{width:190px;height:190px;image-rendering:pixelated;background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:6px}
.qrsteps{margin:6px 0 8px 18px;padding:0;font-size:13px;line-height:1.9}
.qrurl{word-break:break-all;color:var(--muted);font-size:11.5px}
.qtable td.shelfcell{font-weight:700}


/* 開いている行が分かるように */
.openbtn.on{background:#eaf1fb;border-color:#9dbde4;color:#1b4f9c;font-weight:700}
tr.opened td{background:#f2f7ff !important}
.thread-head .closebtn{float:right;margin-left:10px}

/* 見張り番 */
.mcard.ng{border-color:#e0b4b4;background:#fdf6f6}
.wtable{table-layout:fixed;width:100%}
.wtable th:nth-child(1),.wtable td:nth-child(1){width:132px}
.wtable th:nth-child(2),.wtable td:nth-child(2){width:86px}
.wtable th:nth-child(3),.wtable td:nth-child(3){width:118px}
.wtable th:nth-child(4),.wtable td:nth-child(4){width:124px}
.wtable th:nth-child(6),.wtable td:nth-child(6){width:120px}
.wtable td.cname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.watchwhat{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:8px}
.ww{border:1px solid var(--line);border-radius:8px;padding:11px 13px;background:#fff;font-size:13px}
.ww > b{display:block;margin-bottom:5px}   /* 見出しだけ。文中の太字は改行しない */
.ww p{margin:0;line-height:1.7;color:#43506080}
.ww p{color:#435060}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;
  background:#f2f5f9;padding:1px 5px;border-radius:4px}

/* 売上 */
.stbl{table-layout:fixed;width:100%}
.stbl th:nth-child(1),.stbl td:nth-child(1){width:18%}
.stbl th:nth-child(2),.stbl td:nth-child(2){width:13%}
.stbl th:nth-child(3),.stbl td:nth-child(3){width:12%}
.stbl th:nth-child(4),.stbl td:nth-child(4){width:13%}
.stbl th:nth-child(5),.stbl td:nth-child(5){width:8%}
.stbl th:nth-child(6),.stbl td:nth-child(6){width:8%}
.stbl th:nth-child(7),.stbl td:nth-child(7){width:10%}
.stbl th:nth-child(8),.stbl td:nth-child(8){width:8%}
.stbl th:nth-child(9),.stbl td:nth-child(9){width:10%}
.stbl th{white-space:normal;line-height:1.25;padding-left:7px;padding-right:7px;vertical-align:bottom}
.stbl td{padding-left:7px;padding-right:7px}
.stbl td:first-child{white-space:normal}
.stbl td small{margin-left:5px;color:var(--muted)}

/* 売上グラフ（ライブラリを使わずCSSだけ） */
.chart{display:flex;align-items:flex-end;gap:10px;padding:12px 6px;border:1px solid var(--line);
  border-radius:10px;background:#fff;margin-bottom:6px;overflow-x:auto}
.cbar{flex:1;min-width:74px;text-align:center}
.cbar-v{font-size:11.5px;color:var(--muted);margin-bottom:4px;white-space:nowrap}
.cbar-box{position:relative;height:130px;background:#f2f5f9;border-radius:6px;overflow:visible}
.cbar-fill{position:absolute;left:0;right:0;bottom:0;background:#7fa8d8;border-radius:6px 6px 0 0}
.cbar-fill.now{background:#a9c6e6}
.cbar-dot{position:absolute;left:50%;transform:translate(-50%,50%);width:9px;height:9px;
  border-radius:50%;background:#e08a3c;border:2px solid #fff}
.cbar-l{margin-top:6px;font-size:12.5px;font-weight:700}
.cbar-l small{display:block;font-weight:400;color:var(--muted);font-size:10.5px}
.cbar-s{font-size:11px;color:var(--muted)}

/* 売上グラフ（SVG） */
.csvg{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:8px;background:#fff;margin:6px 0 4px}
.chart-ops{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.seg .btn.mini{border:0;border-radius:0;margin:0}
.seg .btn.mini.on{background:#2f6fb2;color:#fff}
.minisel{flex:0 0 auto;width:132px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:13px}

.gline{color:#8e2c22}

.mtable td.fee{color:#8a94a0}
.taxnote{font-size:12px;color:var(--muted)}

/* ⚙️ 設定 */
.setrow{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;
  border:1px solid var(--line);border-radius:9px;background:#fff;padding:12px 14px;margin:6px 0 10px}
.setrow.bad{border-color:#e6b8b3;background:#fdf6f5}
.setrow-l{font-size:12px;color:var(--muted)}
.setrow-v{font-size:18px;font-weight:700;margin:2px 0 4px}
.setrow-op{flex:0 0 auto;max-width:340px;text-align:right}
.setrow-op form{margin:0}
.setgrid{display:grid;gap:12px;border:1px solid var(--line);border-radius:9px;
  background:#fff;padding:12px 14px;margin:6px 0 10px}
.setpair{display:flex;gap:22px;flex-wrap:wrap}
.wdays{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.wd{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);
  border-radius:7px;padding:4px 9px;background:#fff;font-size:13px;cursor:pointer}
.wide{width:100%;max-width:420px;padding:5px 8px;border:1px solid var(--line);border-radius:7px}
.cronj th:nth-child(1),.cronj td:nth-child(1){width:22%}
.cronj th:nth-child(3),.cronj td:nth-child(3){width:14%}
.cronj td,.sonly td{white-space:normal}
.sonly th:nth-child(1),.sonly td:nth-child(1){width:30%}

.tokbox{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 14px;margin:6px 0 10px}
.tokbox summary{cursor:pointer;font-weight:700}
.tokbox input[type=password]{margin:6px 0}

.thsub{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:2px;white-space:normal}

.qbtn.ext{border-style:dashed}
.qbtn.ext::after{content:" ↗";color:var(--muted);font-size:11px}
.mnav small{color:var(--muted);font-size:11px}

.mquick.tight{margin:4px 0 12px}

/* 🚀 出品・出品予約 */
.pubgrp{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px;margin:8px 0 14px}
.ptbl{table-layout:fixed;width:100%}
.ptbl th.chk,.ptbl td.chk{width:34px;text-align:center}
.ptbl td.cname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptbl td.bad,.ptbl .bad{color:#c0392b;font-weight:700}
.pubops{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;margin-top:10px;
  border-top:1px solid var(--line);padding-top:10px}
.pubop{display:flex;flex-direction:column;gap:4px}
.pubop label{font-size:12px;color:var(--muted)}
.pubop .prow{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}
.pubop input[type=date]{width:150px}
.pubop.grow{margin-left:auto;justify-content:flex-end}
.wide-dt{width:196px}
.pubres td.cname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 出品時間の自動振り分け */
.pubspread{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.pubspread>label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.prow.wrap{flex-wrap:wrap;gap:8px}
.hsel{width:74px;padding:5px 6px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:13px}
.tilde{color:var(--muted)}
.rad{display:inline-flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap}
.mh3{font-size:14px;margin:14px 0 6px}
.mdet{margin-top:12px}
.mdet>summary{cursor:pointer;font-size:13px;color:var(--muted)}

.ci{font-size:11px;color:var(--muted);margin-left:3px;font-weight:400}

/* 予約する時間帯（画面全体の設定） */
.spcfg{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:10px 12px;margin:12px 0}
.spcfg>label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:600}
.spcfg .mnote{margin-top:8px}
.spsaved{display:inline-block;font-size:12px;color:#1b7f4b;margin:0 0 6px;min-height:1em}

/* 要確認の表：商品名で幅を食わせない（右端の列が切れるため） */
.issue-body .mtable td.cname{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.issue-body .mtable th,.issue-body .mtable td{padding:6px 7px}

/* 要確認の表：その場で直す */
.dosel{padding:3px 5px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px;max-width:190px}
.issue-body .mtable th.doth,.issue-body .mtable td.doth{background:#fbfcfe;border-left:1px solid var(--line)}
.issue-body form>.btn{margin-top:6px}

/* 棚出し */
.numin{width:66px;padding:3px 5px;border:1px solid var(--line);border-radius:6px;font-size:12px}
.numin.sm{width:78px;margin-left:5px}
.pullmade{border:2px solid #f0b429;border-radius:9px;background:#fffdf5;padding:10px 12px;margin:10px 0 16px}
.mtable td.reason{white-space:nowrap;font-size:12px}
.ptbl td.cname{max-width:200px}

/* 棚出しの表：管理番号・理由・行き先は縮めない（縮むのは商品名だけ） */
.pulltbl{width:100%}
.pulltbl th,.pulltbl td{padding:6px 7px;max-width:none;overflow:visible;text-overflow:clip}
.pulltbl th.chk,.pulltbl td.chk{width:30px;text-align:center;padding:6px 4px}
.pulltbl td.cname{max-width:180px;overflow:hidden;text-overflow:ellipsis}
.pulltbl td.mn{font-size:12px}
.pulltbl .dosel{max-width:none;min-width:126px}   /* 「ヤフオク回送」が切れない最小幅 */
.pulltbl td.cname{max-width:150px}                /* 狭いときは商品名から先に縮める */

/* ---- 一括編集（/m/bulk） ---- */
.btabs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 10px}
.btab{padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;
      font-size:13px;cursor:pointer;color:#334}
.btab:hover{background:#f4f7fb}
.btab.on{background:#eef4ff;border-color:#9db8e8;color:#1d4ed8;font-weight:700}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.flab{font-size:12px;color:#667;margin-bottom:4px}
.chips{display:flex;flex-wrap:wrap;gap:4px}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--line);
      border-radius:14px;background:#fff;font-size:12px;cursor:pointer;margin:2px 2px 0 0}
.chip:hover{background:#f4f7fb}
.ta{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px}
.dosel.wide{min-width:340px;max-width:none}
/* 表：縮むのは商品名だけ（管理番号・値は切らない） */
.bulktbl,.desctbl,.logtbl{width:100%}
.bulktbl th,.bulktbl td,.desctbl th,.desctbl td,.logtbl th,.logtbl td{
  padding:6px 7px;max-width:none;overflow:visible;text-overflow:clip}
.bulktbl th.chk,.bulktbl td.chk,.desctbl th.chk,.desctbl td.chk{
  width:30px;text-align:center;padding:6px 4px}
.bulktbl td.cname{max-width:170px;overflow:hidden;text-overflow:ellipsis}
.logtbl td.cname{max-width:130px;overflow:hidden;text-overflow:ellipsis}
.desctbl td.cname{max-width:120px;overflow:hidden;text-overflow:ellipsis}
.desctbl td.ex2{max-width:430px;white-space:normal}
.exl{max-width:430px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
     font-size:12px;line-height:1.5}
.exl.now{color:#8a6d3b}
.exl.aft{color:#1d6b34;font-weight:600}
.bulktbl td.mn,.desctbl td.mn,.logtbl td.mn{font-size:12px}

/* 出品予約：日ごとの目次＋開閉（ヤフオク!の予約一覧に合わせた見せ方） */
.rsvidx{border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden;margin:0 0 8px}
.rsvrow{display:grid;grid-template-columns:minmax(150px,1.4fr) 74px minmax(120px,1fr) minmax(120px,1.2fr);
        gap:10px;align-items:center;padding:9px 12px;font-size:13px}
.rsvrow.head{background:#f6f8fb;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}
.rsvday{border-top:1px solid var(--line)}
.rsvidx .rsvday:first-of-type{border-top:0}
.rsvday>summary{cursor:pointer;list-style:none}
.rsvday>summary::-webkit-details-marker{display:none}
.rsvday>summary:hover{background:#f4f7fb}
.rsvday>summary .c1::before{content:"▸ ";color:var(--muted)}
.rsvday[open]>summary{background:#eef4ff;border-bottom:1px solid var(--line)}
.rsvday[open]>summary .c1::before{content:"▾ "}
.rsvday .c2,.rsvday .c4{color:var(--muted)}
.rsvday[open] .c2{color:inherit}
.rsvbody{padding:8px 12px 12px}
.rsvbody .ptbl th.rt,.rsvbody .ptbl td.rt{width:64px;white-space:nowrap}
.tchip{display:inline-block;padding:2px 7px;margin:0 4px 4px 0;border:1px solid var(--line);
       border-radius:12px;background:#fbfcfe;font-size:11.5px;white-space:nowrap}
.todaysum{margin-left:6px;padding:2px 9px;border:1px solid var(--line);border-radius:12px;
          background:#f7fbff;font-size:12px;color:#334;white-space:nowrap}
.rsvres{border:1px solid var(--line);border-radius:9px;background:#fff;margin:0 0 12px}
.rsvres>summary{cursor:pointer;padding:9px 12px;font-size:13px}
.rsvres>summary:hover{background:#f4f7fb}
.rsvres[open]>summary{border-bottom:1px solid var(--line);background:#f6f8fb}
.rsvres>.rsvidx{border:0;border-radius:0;margin:0}
.rsvres>.mnote{padding:0 12px 10px}
.rsvbody .ptbl th.kind,.rsvbody .ptbl td.kind{width:152px;white-space:nowrap}
.rsvbody .ptbl th.mnc,.rsvbody .ptbl td.mnc{width:120px;white-space:nowrap;font-size:12px}
.hsel.wide{width:92px}

/* ============================================================
   スマホ表示（〜640px・2026-09-08）
   ★PC（641px以上）の見た目は一切変えない。ここだけで完結させる。
     直したのは3点：
       ① ヘッダーのボタンが画面外に溢れてログアウトが押せない
       ② 左メニューが position:sticky のまま画面の上半分を占領し続ける
       ③ 左右の余白が広く本文が細い
     テーブルは元から .tablewrap の横スクロール＋先頭列 stick が効くのでそのまま。
   ============================================================ */
@media (max-width:640px){
  /* ① ヘッダー：溢れさせず折り返す。スクロール中は追わせない（縦を稼ぐ） */
  .topbar{flex-wrap:wrap;gap:6px 8px;padding:8px 12px;position:static}
  .topbar .brand{font-size:14px;width:100%}
  .topbar .spacer{display:none}
  .topbar .btn.ghost{padding:4px 9px;font-size:12px}
  .envbadge{font-size:11px;padding:2px 8px}
  .whoami{font-size:11px}

  /* ③ 余白・本文 */
  .container{padding:12px 10px}
  .mlayout{gap:10px}
  .mtitle{font-size:18px}
  .mcards{grid-template-columns:1fr 1fr;gap:8px}
  .mcard{padding:10px}
  .mcard-v{font-size:18px}
  .mquick button,.mquick .qbtn{width:100%}
}

/* ② 左メニュー：.mlayout が1列になる帯（820px）で、貼り付けをやめ
      丸いチップの横並びにして数行に畳む。
      縦積み13項目のままだと本文に届くまで丸1画面スクロールが要る。 */
@media (max-width:820px){
  .msidebar{position:static;display:flex;flex-wrap:wrap;gap:5px;padding:8px}
  .mshop{width:100%;padding:2px 4px 8px;margin-bottom:0}
  .mshop-name{font-size:14px}
  .mnav{flex:0 0 auto;padding:5px 9px;font-size:12.5px;
        border:1px solid var(--line);background:#fbfcfd;border-radius:16px}
  .mnav-ico{width:auto}
  .mnav-sep{display:none}
}


/* ============================================================
   状態説明テンプレ（メルカリ商品説明の差し込み文）の編集枠
   ★メディアクエリより後ろに置かないと上書きされる罠があるので、
     ここは単純なクラスだけで完結させている。
   ============================================================ */
.desctmpl > summary{cursor:pointer;font-weight:700;padding:2px 0}
.desctmpl > summary:hover{color:var(--brand)}
.desctmplpick{display:block;margin:0 0 6px;max-width:320px}
.dtmpl{border-collapse:collapse;width:100%;font-size:12.5px;margin:6px 0}
.dtmpl th{background:#f2f5f9;text-align:left;padding:6px 8px;border-bottom:1px solid #dfe5ec;white-space:nowrap}
.dtmpl td{padding:5px 8px;border-bottom:1px solid #eef1f5;vertical-align:top}
.dtmpl input[type=text]{width:100%}
.dtmpl textarea{width:100%;font:inherit}
.dtmpl input[type=number]{width:64px}
.dtmpl tr.blankrow td{background:#fcfdff}
.dtmplbtns{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.mcard.desctmpl{margin-top:14px}


/* ============================================================
   出品の実績（2026-09-16）
   ★「今日ぜんぶで何件出したか」を画面の一番上に出す。
     数えているのはキューのP列（CSV出力日時）＝出し方に関係なく必ず入る。
   ============================================================ */
.pubtoday{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;
          margin:0 0 12px;padding:10px 14px;border:1px solid #cfe3ac;border-radius:9px;
          background:linear-gradient(180deg,#f7fbef,#f2f8e8)}
.pubtoday .pt-main{font-size:14px;font-weight:700;color:#3d5a1f}
.pubtoday .pt-n{font-size:22px;line-height:1;margin:0 2px;color:#42761a}
.pubtoday .pt-sub{font-size:12px;color:#4a5a3a;padding:2px 9px;border-radius:12px;
                  background:#fff;border:1px solid #dfe9cd;white-space:nowrap}
.pubtoday .pt-eq{font-size:16px;font-weight:700;color:#6a8a3a}
.pubtoday .pt-sub.done{border-color:#bcd99a}
.pubtoday .pt-sub.wait{background:#fffaf0;border-color:#ecd9a8;color:#6a5320}
.pubtoday .pt-sub small{font-size:11px;color:#6a7a5a;margin-left:2px}
.pubtoday .pt-sub.bad{color:#b3261e;border-color:#f0c9c5;background:#fff6f5}
.pubstat .rsvbody .ptbl th.mnc,.pubstat .rsvbody .ptbl td.mnc{width:110px}


/* ============================================================
   ✏️ 直す（キュー再編集）／2026-09-19
   ★出品待ち・予約済みの行の下に開くパネル。表は table-layout:fixed なので
     「直す」列は幅を決めておく（決めないと他の列が痩せる）。
   ============================================================ */
.ptbl th.opx,.ptbl td.opx{width:46px;text-align:center;padding:4px 2px}
.ptbl th.opx{font-size:11px;color:#6b7280}
.ptbl tr.nocat td{background:#fffaf2}
.btn-mini.need{border-color:#e0a800;background:#fff7e0}
.qeditrow>td{padding:0 !important;background:#f7f9fc}
.qe-box{border:2px solid #9ec5ea;border-radius:10px;background:#fff;
        margin:6px 4px 10px;padding:12px 14px}
.qe-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
         border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px}
.qe-head .qe-x{margin-left:auto}
.qe-sub{font-size:12px;color:#5a6572}
.qe-note{font-size:12.5px;background:#fff8e6;border:1px solid #f0dca8;
         border-radius:7px;padding:7px 10px;margin:0 0 10px}
.qe-ok{font-size:13px;background:#eef8ea;border:1px solid #cfe3ac;
       border-radius:7px;padding:7px 10px;margin:0 0 10px;
       display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.qe-err{font-size:13px;color:#b3261e;background:#fff6f5;border:1px solid #f0c9c5;
        border-radius:7px;padding:7px 10px;margin:0 0 10px}
.qe-grid{display:flex;flex-wrap:wrap;gap:10px 14px}
.qe-f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#44506a}
.qe-f.qe-full{width:100%;max-width:none;margin-top:10px}   /* ★.wide は別物（468行）＝名前を分けないと padding/枠が付く */
.qe-f input,.qe-f select,.qe-f textarea{font-size:13px;padding:5px 7px;
        border:1px solid var(--line);border-radius:6px;background:#fff}
.qe-f input[type=number]{width:120px}
.qe-f input[type=date]{width:150px}
.qe-f input[type=text]{width:180px}
.qe-f textarea{width:100%;font-family:inherit;line-height:1.5}
.qe-hint{font-size:11px;color:#6b7280}
.qe-lab{font-size:12px;color:#44506a;margin:12px 0 4px}
.qcat,.qbrand{border:1px solid var(--line);border-radius:8px;padding:8px 10px;
              background:#fbfcfe;margin-top:8px}
.qcatsel{display:flex;flex-wrap:wrap;gap:6px}
.qcatsel select{font-size:13px;padding:4px 6px;border:1px solid var(--line);
                border-radius:6px;background:#fff;max-width:260px}
.qcatid{display:block;font-size:12px;color:#44506a;margin-top:8px}
.qcatid input{width:280px;font-size:13px;padding:5px 7px;
              border:1px solid var(--line);border-radius:6px}
.qbrand input[type=search]{width:280px;font-size:13px;padding:5px 7px;
              border:1px solid var(--line);border-radius:6px}
.qe-desc{margin-top:10px}
.qe-desc>summary{cursor:pointer;font-size:13px;color:#44506a}
.qe-desc textarea{width:100%;font-family:inherit;font-size:12.5px;line-height:1.55;
        padding:7px 9px;border:1px solid var(--line);border-radius:6px;margin-top:6px}
.qe-ops{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;
        border-top:1px solid var(--line);padding-top:10px}
@media (max-width:640px){
  .qe-f input[type=text],.qcatid input,.qbrand input[type=search]{width:100%}
  .qe-f{width:100%}
}

/* 2026-10-02 写真とタイトルを並べる（入れ替わり事故の対策） */
.sumthumb{width:34px;height:34px;object-fit:cover;border-radius:4px;vertical-align:middle;margin-right:6px;border:1px solid var(--line)}
.titlephoto{display:flex;gap:10px;align-items:flex-start}
.titlephoto img{width:120px;height:120px;object-fit:cover;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:zoom-in}
.titlephoto .tp-none{width:120px;height:120px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:.85em}
.titlephoto .tp-main{flex:1;min-width:0}
.titlephoto .tp-main textarea{width:100%}
@media (max-width:640px){.titlephoto img,.titlephoto .tp-none{width:84px;height:84px}}

/* 商品一覧の写真（2026-10-05）：タイトル違いを写真で探す。マウスを乗せると大きく */
.mtable td.pthumb{padding:3px 6px;position:relative;overflow:visible}
.mtable td.pthumb img{width:44px;height:44px;object-fit:contain;background:#fff;
  border:1px solid var(--line);border-radius:4px;display:block;transition:transform .12s}
.mtable td.pthumb a:hover img{transform:scale(4);transform-origin:left center;
  position:relative;z-index:20;box-shadow:0 4px 18px rgba(0,0,0,.25)}
