/* ========================================
   views.css  -  Excel風の表中心レイアウト
   ======================================== */

/* ===== 表（罫線あり・詰まった行） ===== */
.tbl-wrap{background:var(--bg2);border:1px solid var(--border);overflow:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th{
  text-align:left;padding:6px 9px;background:var(--bg3);color:var(--text2);
  font-weight:600;font-size:12px;white-space:nowrap;
  position:sticky;top:0;border:1px solid var(--grid);z-index:1;
}
table.tbl td{padding:5px 9px;border:1px solid var(--grid);vertical-align:middle}
table.tbl tr.clickable{cursor:pointer}
table.tbl tr.clickable:hover td{background:var(--row-hover)}
table.tbl tr.group-row td{background:var(--bg4);font-weight:700;font-size:12px;color:var(--text)}

/* ===== 案件詳細（全画面ビュー） ===== */
.dd-stepper{display:flex;align-items:center;flex-wrap:wrap;gap:6px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);padding:12px;margin-bottom:12px}
.ph-step{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:var(--r2);font-size:13px;background:var(--bg3);color:var(--text3)}
.ph-step.ph-done{color:var(--text2)}
.ph-step.ph-cur{background:var(--brand);color:#fff;font-weight:700}
.ph-ck{color:var(--green);font-weight:700}
.ph-sub{font-size:11px;opacity:.9}
.ph-arrow{color:var(--text3)}
.dd-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;align-items:start}
.dd-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.dd-mh{display:flex;align-items:center;justify-content:space-between;margin-top:12px;margin-bottom:5px}
.dd-mh-t{font-size:13px;font-weight:700}
.ln-note{width:100%;margin-top:4px;border:1px solid var(--border);border-radius:var(--r);padding:4px 7px;font-size:12px;background:var(--bg2);color:var(--text)}
.ln-note:focus{outline:none;border-color:var(--brand)}
.ln-note-ro{margin-top:3px;font-size:12px;color:var(--text)}
.ln-chk{width:17px;height:17px;cursor:pointer;accent-color:var(--brand)}
.ln-disc{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:11px;color:var(--text2);flex-wrap:wrap}
.ln-disc select{font-size:11px;padding:2px 4px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);color:var(--text)}
.ln-disc-v{width:74px;font-size:12px;padding:3px 6px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);color:var(--text);text-align:right}
.ln-disc-ro{margin-top:4px;font-size:11px;color:#c0392b}
.dd-disc select{font-size:12px;padding:2px 5px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);color:var(--text);margin:0 4px}
.qty-cell{display:inline-flex;align-items:center;gap:7px}
.dd-disc-edit{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--text2);padding:6px 0;margin-bottom:2px;border-bottom:1px dashed var(--border)}
.dd-disc-edit select{font-size:12px;padding:2px 5px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);color:var(--text)}
.dd-partner{font-size:16px;font-weight:700}
.dd-tot{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}
.dd-tot .trow{display:flex;justify-content:space-between;font-size:13px;color:var(--text2);padding:4px 0}
.dd-grand{display:flex;justify-content:space-between;font-size:16px;font-weight:700;padding-top:6px;color:var(--text)}
.dd-go{width:100%;background:var(--brand);color:#fff;border:none;border-radius:var(--r2);padding:14px;font-size:15px;font-weight:700;cursor:pointer}
.dd-go:hover{background:var(--brand-deep)}
.dd-done{text-align:center;padding:13px;background:var(--brand-soft);color:var(--brand-deep);border-radius:var(--r2);font-weight:700}
.dd-subactions{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.dd-danger{margin-top:18px;border-top:1px dashed var(--border);padding-top:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dd-del{background:var(--red);color:#fff;border:none;border-radius:var(--r2);padding:10px 16px;font-weight:700;cursor:pointer}
.dd-del:hover{filter:brightness(1.06)}
.mini-btn.danger{background:var(--red);color:#fff}
.dd-del-warn{background:#fdecec;border:1px solid #f3b4b4;border-radius:var(--r2);padding:12px;color:#7a1f1f}
:root[data-theme="dark"] .dd-del-warn{background:#3a1c1c;border-color:#5e3030;color:#f0a0a0}
.dd-pv-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
/* フェーズ連動の帳票プレビュー（実帳票を省略せず縮小表示） */
.dd-doc-preview{margin-top:10px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:10px;max-height:600px;overflow:auto}
.dd-doc-preview .a4-page{zoom:.5;margin:0 auto 10px;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.dd-memo-label{display:block;margin-top:12px;font-size:12px;font-weight:700;color:var(--text2)}
.dd-memo{width:100%;min-height:66px;margin-top:5px;border:1px solid var(--border);border-radius:var(--r2);padding:8px;font-size:13px;line-height:1.6;background:var(--bg2);color:var(--text);resize:vertical}
.dd-memo:focus{outline:none;border-color:var(--brand)}
.dd-paper{background:#fff;color:#2c2c2a;border:1px solid #d3d1c7;border-radius:3px;padding:12px;font-size:12px;margin-top:4px}
.dd-pp-top{display:flex;justify-content:space-between;color:#888780}
.dd-pp-title{text-align:center;font-size:15px;font-weight:700;letter-spacing:3px;margin:8px 0}
.dd-pp-to{border-bottom:1px solid #2c2c2a;padding-bottom:2px;margin-bottom:8px}
.dd-pl{display:flex;justify-content:space-between;padding:2px 0;border-bottom:.5px solid #e3e1d9}
.dd-pl.muted{color:#888780;border:none}
.dd-pp-grand{display:flex;justify-content:space-between;margin-top:8px;padding-top:4px;border-top:1px solid #2c2c2a;font-weight:700}
@media(max-width:900px){.dd-grid{grid-template-columns:1fr}}

/* BO（受注に在庫が足りない）行：ワーニング表示 */
table.tbl tr.bo-row td{background:#fff4f3}
table.tbl tr.bo-row td:first-child{box-shadow:inset 3px 0 0 var(--red)}
table.tbl tr.bo-row.clickable:hover td{background:#ffe9e7}
:root[data-theme="dark"] table.tbl tr.bo-row td{background:#2c1c1c}
:root[data-theme="dark"] table.tbl tr.bo-row.clickable:hover td{background:#3a2424}

/* 在庫の警告色 */
.stock-out{color:var(--red);font-weight:700}
.stock-low{color:var(--red);font-weight:700}
.stock-warn{color:var(--orange);font-weight:700}
.stock-ok{color:var(--green);font-weight:700}

/* バッジ */
.badge{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11px;font-weight:600;white-space:nowrap;border:1px solid transparent}
.badge-green{background:var(--brand-soft);color:var(--brand-deep);border-color:var(--brand)}
.badge-blue{background:#e7f0ff;color:#1d4ed8;border-color:#bcd4ff}
.badge-orange{background:#fbefd6;color:#9a5b00;border-color:#e6cf94}
.badge-red{background:#fde2e2;color:#b42121;border-color:#f3b4b4}
.badge-gray{background:var(--bg3);color:var(--text2);border-color:var(--border)}
.badge-purple{background:#efe7fb;color:#6d28d9;border-color:#d6c4f5}
:root[data-theme="dark"] .badge-blue{background:#16263f;color:#8fb6ff;border-color:#2c4566}
:root[data-theme="dark"] .badge-orange{background:#332814;color:#e0b56a;border-color:#5a4a2a}
:root[data-theme="dark"] .badge-red{background:#3a1c1c;color:#f0a0a0;border-color:#5e3030}
:root[data-theme="dark"] .badge-purple{background:#2a2140;color:#c4b5fd;border-color:#473a6b}

/* 製造/仕入の小ラベル */
.type-made{color:var(--brand-deep);font-weight:600}
.type-buy{color:var(--text2)}

/* ===== 写真サムネイル ===== */
.thumb{width:34px;height:34px;object-fit:cover;border:1px solid var(--border);border-radius:3px;background:#fff;display:block}
.thumb-ph{width:34px;height:34px;border:1px solid var(--border);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;font-weight:700}
.thumb-lg{width:120px;height:120px;object-fit:cover;border:1px solid var(--border);border-radius:4px;background:#fff}
.thumb-lg-ph{width:120px;height:120px;border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:34px;color:#fff;font-weight:700}

/* カラースウォッチ */
.swatch{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.25);vertical-align:middle;margin-right:5px}

/* ===== ホーム：コンパクトな数値ストリップ ===== */
.stat-strip{display:flex;gap:0;border:1px solid var(--border);background:var(--bg2);margin-bottom:14px;flex-wrap:wrap}
.stat{flex:1;min-width:150px;padding:9px 13px;border-right:1px solid var(--border)}
.stat:last-child{border-right:none}
.stat .lbl{font-size:11px;color:var(--text2);margin-bottom:3px}
.stat .val{font-size:20px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.stat .val.alert{color:var(--red)}

.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:900px){.home-grid{grid-template-columns:1fr}}
.panel-title{font-size:12px;font-weight:700;color:var(--text2);margin:0 0 6px;text-transform:none}

/* ボタン（小） */
.mini-btn{padding:3px 9px;font-size:12px;border-radius:var(--r);border:1px solid var(--border);background:var(--bg2);color:var(--text)}
.mini-btn:hover{background:var(--bg3)}
.mini-btn.brand{background:var(--brand);color:#fff;border-color:var(--brand)}
.qty-btn{width:24px;height:24px;border-radius:var(--r);border:1px solid var(--border);background:var(--bg2);font-size:14px;font-weight:700;line-height:1}
.qty-btn:hover{background:var(--bg3)}
.cell-input{width:64px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--r);text-align:right;background:var(--bg2)}

/* ===== モーダル ===== */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,20,28,.5);display:none;align-items:center;justify-content:center;z-index:100;padding:18px}
.modal-backdrop.open{display:flex}
.modal-box{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-card)}
.modal-box.wide{max-width:1040px}
.modal-head{display:flex;align-items:center;padding:11px 15px;border-bottom:1px solid var(--border);background:var(--bg3)}
.modal-title{font-size:15px;font-weight:700;flex:1}
.modal-close{width:26px;height:26px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--border);font-size:13px}
.modal-close:hover{background:var(--bg4)}
.modal-body{padding:15px;overflow:auto}

/* フォーム */
.frow{margin-bottom:10px}
.frow label{display:block;font-size:12px;color:var(--text2);margin-bottom:3px}
.frow input,.frow select,.frow textarea{width:100%;padding:6px 9px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);color:var(--text)}
.frow-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kv{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--grid)}
.kv .k{color:var(--text2)}
.kv:last-child{border-bottom:none}
.photo-pick{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}

/* ===== 商品追加：バリエーション入力グリッド ===== */
.np-vgrid{display:grid;gap:6px;align-items:center;margin-bottom:6px}
.np-vgrid.head{font-size:11px;color:var(--text2);margin-bottom:2px;padding:0 2px}
.np-vgrid input{width:100%;padding:5px 7px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);text-align:right;font-size:13px}
.np-vgrid input.txt{text-align:left}
.np-vgrid input[type=color]{padding:0;height:28px;width:30px;flex:none;cursor:pointer}
.np-vgrid .vname{display:flex;gap:5px;align-items:center}
.np-del{cursor:pointer;color:var(--text2);text-align:center;font-weight:700;user-select:none}
.np-del:hover{color:#c0392b}
.mv-price-panel{border-top:1px dashed var(--border);margin-top:10px;padding-top:8px}

/* ===== メンバー / お知らせ / ヘルプ ===== */
.member-list{border:1px solid var(--border);border-radius:var(--r);padding:2px 12px;background:var(--bg2)}
.member-row{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--grid);flex-wrap:wrap}
.member-row:last-child{border-bottom:none}
.m-info{flex:1;min-width:180px}
.m-actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.m-rolesel{font-size:12px;padding:3px 6px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);color:var(--text)}
.m-av{width:38px;height:38px;border-radius:50%;background:var(--brand-soft);color:var(--brand-deep);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none}
.m-av.lg{width:64px;height:64px;font-size:22px}
.pill{display:inline-block;font-size:11px;padding:1px 9px;border-radius:10px;background:var(--bg3);color:var(--text2);white-space:nowrap}
.pill-green{background:#1f7a4d;color:#fff}
.pill-gray{background:#888;color:#fff}
.news-item{border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;margin-bottom:8px;background:var(--bg2)}
.news-item.unread{border-left:3px solid var(--brand)}
.news-item .nv{font-size:11px;color:var(--brand-deep);font-weight:700}
.news-head{display:flex;align-items:center;gap:8px;cursor:pointer;flex-wrap:wrap}
.news-head .caret{color:var(--text2);font-size:11px}
.news-body{margin-top:7px}
.si-badge{margin-left:auto;background:var(--brand);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:9px;align-items:center;justify-content:center;padding:0 5px}
.help-sec{margin-bottom:12px}
.help-sec h4{margin:0 0 3px;font-size:13px}

/* ===== 見積ビルダー（一括入力） ===== */
.builder-top{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px}
.builder-top .frow{margin-bottom:0;min-width:160px}
.builder-rate{font-size:13px;color:var(--brand-deep);font-weight:700;padding-bottom:7px}
.builder-filter{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.builder-list{border:1px solid var(--border);max-height:50vh;overflow:auto}
.bl-group{border-bottom:1px solid var(--grid)}
.bl-ghead{display:grid;grid-template-columns:36px 1fr 168px 120px;gap:8px;align-items:center;padding:6px 9px;background:var(--bg2);cursor:pointer}
.bl-ghead:hover{background:var(--row-hover)}
.bl-ghead.single{cursor:default;grid-template-columns:36px 1fr 132px 132px}
.bl-ghead.has-qty{background:var(--row-sel)}
.bl-ghead .gname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-ghead .caret{color:var(--text3);display:inline-block;width:12px}
.bl-ghead .gdim{font-size:11px;color:var(--text2);background:var(--bg3);padding:1px 6px;border-radius:3px;margin-left:4px}
.bl-ghead .gprice{font-size:11px;color:var(--text2);white-space:nowrap}
.bl-row{display:grid;grid-template-columns:1fr 132px 132px;gap:8px;align-items:center;padding:5px 9px 5px 44px;border-top:1px solid var(--grid);font-size:13px;background:var(--bg1)}
.bl-row:hover{background:var(--row-hover)}
.bl-row.has-qty{background:var(--row-sel)}
.bl-row .opt{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bl-qty{display:flex;gap:4px;align-items:center;justify-content:flex-end}
.bl-price{display:flex;gap:4px;align-items:center;justify-content:flex-end}
.price-input{width:84px}
.builder-foot{display:flex;gap:18px;align-items:center;margin-top:10px;padding-top:10px;border-top:2px solid var(--border);flex-wrap:wrap}
.builder-foot .ttl{font-size:13px;color:var(--text2)}
.builder-foot .ttl b{font-size:17px;color:var(--text);font-variant-numeric:tabular-nums}

/* ===== 帳票プレビュー ===== */
.doc-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.doc-type-tabs{display:flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.doc-type-tabs button{padding:6px 15px;font-size:13px;color:var(--text2);background:var(--bg2);border-right:1px solid var(--border)}
.doc-type-tabs button:last-child{border-right:none}
.doc-type-tabs button.active{background:var(--brand);color:#fff}

.paper{background:#fff;color:#1a1a1a;width:760px;max-width:100%;margin:0 auto;padding:46px 50px;box-shadow:0 2px 14px rgba(0,0,0,.22);font-size:13px;line-height:1.6}
.paper h1{font-size:25px;letter-spacing:.3em;text-align:center;margin-bottom:22px;font-weight:700}
.paper .doc-head{display:flex;justify-content:space-between;gap:24px;margin-bottom:22px}
.paper .doc-to{flex:1}
.paper .doc-to .to-name{font-size:18px;font-weight:700;border-bottom:2px solid #1a1a1a;padding-bottom:4px;margin-bottom:8px}
.paper .doc-meta{text-align:right;font-size:12px;color:#444}
.paper .doc-from{margin-top:14px;text-align:right;font-size:12px}
.paper .doc-from .fr-name{font-size:15px;font-weight:700;color:#1a1a1a}
.paper .total-line{font-size:16px;font-weight:700;border:2px solid #1a1a1a;border-radius:4px;padding:9px 15px;display:inline-block;margin:8px 0 18px}
.paper table{width:100%;border-collapse:collapse;margin-bottom:16px}
.paper table th{background:#33424f;color:#fff;padding:7px 9px;font-size:12px;text-align:left}
.paper table th.num,.paper table td.num{text-align:right}
.paper table td{padding:7px 9px;border-bottom:1px solid #ddd}
.paper .sum-tbl{width:280px;margin-left:auto}
.paper .sum-tbl td{padding:5px 9px;border:none}
.paper .sum-tbl tr.grand td{border-top:2px solid #1a1a1a;font-weight:700;font-size:15px}
.paper .note{margin-top:22px;font-size:12px;color:#444;border-top:1px solid #ccc;padding-top:9px}
.paper .stamp{display:inline-block;border:2px solid #c0392b;color:#c0392b;border-radius:50%;width:52px;height:52px;line-height:48px;text-align:center;font-size:11px;transform:rotate(-12deg);float:right}

/* ===== A4ページ（システムでページ分割・ページ番号付き） ===== */
.a4-page{background:#fff;color:#1a1a1a;width:760px;min-height:1074px;margin:0 auto 18px;padding:46px 50px;box-shadow:0 2px 14px rgba(0,0,0,.22);position:relative;font-size:13px;line-height:1.6}
.a4-page h1{font-size:25px;letter-spacing:.3em;text-align:center;margin-bottom:22px;font-weight:700}
.a4-page .doc-head{display:flex;justify-content:space-between;gap:24px;margin-bottom:22px}
.a4-page .doc-to{flex:1}
.a4-page .to-name{font-size:18px;font-weight:700;border-bottom:2px solid #1a1a1a;padding-bottom:4px;margin-bottom:8px}
.a4-page .doc-meta{text-align:right;font-size:12px;color:#444}
.a4-page .doc-from{margin-top:14px;text-align:right;font-size:12px}
.a4-page .doc-from .fr-name{font-size:15px;font-weight:700;color:#1a1a1a}
.a4-page .total-line{font-size:16px;font-weight:700;border:2px solid #1a1a1a;border-radius:4px;padding:9px 15px;display:inline-block;margin:8px 0 18px}
.a4-page table{width:100%;border-collapse:collapse;margin-bottom:16px}
.a4-page th{background:#33424f;color:#fff;padding:7px 9px;font-size:12px;text-align:left}
.a4-page th.num,.a4-page td.num{text-align:right}
.a4-page td{padding:7px 9px;border-bottom:1px solid #ddd}
.a4-page .sum-tbl{width:280px;margin-left:auto}
.a4-page .sum-tbl td{padding:5px 9px;border:none}
.a4-page .sum-tbl tr.grand td{border-top:2px solid #1a1a1a;font-weight:700;font-size:15px}
.a4-page .note{margin-top:18px;font-size:12px;color:#444;border-top:1px solid #ccc;padding-top:9px}
.a4-page .stamp{display:inline-block;border:2px solid #c0392b;color:#c0392b;border-radius:50%;width:52px;height:52px;line-height:48px;text-align:center;font-size:11px;transform:rotate(-12deg);float:right}
.a4-page .cont-head{font-size:13px;font-weight:700;border-bottom:1px solid #ccc;padding-bottom:8px;margin-bottom:14px}
.a4-page .page-no{position:absolute;bottom:18px;right:24px;font-size:11px;color:#888}
.print-title{font-size:15px;font-weight:700;margin-bottom:10px}

/* ===== ログイン画面（サンプル） ===== */
#login-screen{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:500;padding:20px}
.login-card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:36px 40px;max-width:430px;width:100%;text-align:center;box-shadow:var(--shadow-card)}
.login-logo{font-size:30px;font-weight:800;margin-bottom:6px}
.login-logo .stk{color:var(--brand)}
.login-sub{color:var(--text2);font-size:13px;margin-bottom:24px}
.google-btn{display:inline-flex;align-items:center;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:6px;padding:11px 22px;font-size:14px;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.google-btn:hover{background:#f6f7f8}
.google-btn .g{font-weight:800;color:#4285f4;font-size:16px}
.login-note{margin-top:22px;font-size:11px;color:var(--text3);line-height:1.7}

/* トップバー：同期インジケータ・ユーザー */
.sync-ind{font-size:12px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:12px;padding:3px 10px;white-space:nowrap}
.user-chip{font-size:12px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:12px;padding:3px 10px;white-space:nowrap}
@media (max-width:768px){ .sync-ind{display:none} }

/* トースト */
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(16px);background:var(--brand-deep);color:#fff;padding:9px 20px;border-radius:4px;font-size:13px;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* 印刷 */
/* 印刷プレビューのポップアップ内のボタン行（スクロールしても下に残す） */
.pp-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;position:sticky;bottom:0;background:var(--bg2);padding:8px 0 2px}

@media print{
  @page{size:A4;margin:0}
  #topbar,#sidebar,.view-header,.doc-toolbar,.card{display:none !important}
  #app{display:block;height:auto}
  #main{position:static;overflow:visible}
  .view{position:static;padding:0;display:none}
  .view.active{display:block}
  .a4-page{box-shadow:none;width:auto;min-height:auto;margin:0;padding:14mm;page-break-after:always}
  .a4-page:last-child{page-break-after:auto}
  .paper{box-shadow:none;width:auto;margin:0}
  body{overflow:visible}
  /* 印刷プレビューのポップアップが開いている時は、アプリ本体を隠してモーダル内の書類だけ印刷 */
  body.print-pop #app{display:none !important}
  body.print-pop .modal-backdrop{position:static !important;display:block !important;background:none;padding:0}
  body.print-pop .modal-box{max-width:none;max-height:none;width:auto;border:none;box-shadow:none;background:none;display:block}
  body.print-pop .modal-head,body.print-pop .pp-actions{display:none !important}
  body.print-pop .modal-body{padding:0;overflow:visible}
}

/* ===== 商品ビュー：並び替え ===== */
/* 商品テーブル上のツールバー（件数＋並び替えボタン） */
.prod-toolbar2{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.prod-toolbar2 .tiny{flex:1}
/* 列見出しクリック（一時並び替え） */
table.tbl th.th-sort{cursor:pointer;user-select:none}
table.tbl th.th-sort:hover{background:var(--brand-soft);color:var(--brand-deep)}
table.tbl th.th-sorted{color:var(--brand-deep)}
.srt-arrow{font-size:10px}
.prod-sort-note{background:var(--brand-soft);border:1px solid var(--brand);color:var(--text2);border-radius:var(--r);padding:6px 10px;font-size:12px;margin-bottom:8px}
.prod-sort-note .lnk,a.lnk{color:var(--brand-deep);cursor:pointer;text-decoration:underline;font-weight:600}

/* マスター並び替えモード */
.srt-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:10px 12px;margin-bottom:8px}
.srt-title{font-weight:700;color:var(--brand-deep)}
.srt-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}
.srt-auto{height:30px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);color:var(--text);font-size:12px;padding:0 6px}
.srt-help{margin-bottom:10px;color:var(--text2)}
.srt-group{border:1px solid var(--border);border-radius:var(--r2);margin-bottom:10px;overflow:hidden;background:var(--bg2)}
.srt-ghead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--bg3);padding:7px 10px;border-bottom:1px solid var(--border)}
.srt-lname{font-weight:700;font-size:13px}
.srt-ghead .srt-auto{margin-left:auto}
.srt-lmv,.srt-mv{display:inline-flex;gap:3px}
.srt-rows{padding:4px}
.srt-row{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:var(--r);border:1px solid transparent}
.srt-row:hover{background:var(--bg3)}
.srt-row.srt-dragging{opacity:.5;border-color:var(--brand)}
.srt-handle{cursor:grab;color:var(--text3);font-size:15px;line-height:1}
.srt-code{font-size:12px;color:var(--text2);min-width:74px}
.srt-name{flex:1;font-size:13px;display:flex;align-items:center;gap:4px}
.srt-stock{color:var(--text3);white-space:nowrap}
.srt-mv .qty-btn{width:28px;height:26px}
