*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#f2f5f3; --card:#fff; --line:#dfe5e1; --txt:#1d2226; --sub:#6b7480;
  /* LINEのグリーン。白地に小さい文字で置くと薄いので、文字用は濃いほうを使う */
  --accent:#06c755; --accent-txt:#04913f; --accent-dk:#05a648;
  --ok:#1f7a3d; --warn:#b8860b; --ng:#c0392b; --info:#2266aa;
}
html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI",sans-serif}
body{padding-bottom:76px;font-size:15px;line-height:1.5}
a{color:var(--info)}

header{position:sticky;top:0;z-index:20;background:var(--accent);color:#fff;padding:10px 12px 8px}
header h1{margin:0;font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}
header .who{margin-left:auto;font-size:11px;opacity:.85;font-weight:400}
.bar{display:flex;gap:6px;margin-top:8px}
.bar input{flex:1;min-width:0;padding:9px 11px;border:0;border-radius:8px;font-size:15px}
#upd{margin-left:6px;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.22);
  color:#fff;border:0;font-variant-numeric:tabular-nums;cursor:pointer;font-size:11px}

main{padding:10px 12px}
.empty{text-align:center;color:var(--sub);padding:44px 14px;font-size:14px;line-height:1.9}
.empty b{display:block;color:var(--txt);font-size:15px;margin-bottom:6px}

/* 写真の一覧。タップで「送る」に入る（この画面の主役は選ぶことなので、開くより選ぶを優先） */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}
.pcell{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;
  overflow:hidden;cursor:pointer}
.pcell img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#eceff2}
.pcell .nm{padding:6px 8px 8px;font-size:12px;font-weight:600;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  /* 2行ぶんで固定して、タイルの高さをそろえる */
  height:calc(2 * 1.35em + 14px)}
.pcell .cat{position:absolute;left:38px;top:7px;background:rgba(0,0,0,.55);color:#fff;
  font-size:10px;padding:2px 7px;border-radius:999px;max-width:52%;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.pcell .more{position:absolute;right:5px;top:5px;width:28px;height:28px;border-radius:999px;
  border:0;background:rgba(255,255,255,.9);color:var(--sub);font-size:14px;line-height:1;
  cursor:pointer;box-shadow:0 1px 4px #0003;padding:0}
.pcell .pick{position:absolute;left:5px;top:5px;width:28px;height:28px;border-radius:999px;
  border:1.5px solid rgba(255,255,255,.9);background:rgba(0,0,0,.14);color:#fff;font-size:15px;
  line-height:1;display:flex;align-items:center;justify-content:center;pointer-events:none;
  box-shadow:0 1px 3px #0003}
.pcell.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
.pcell.on .pick{background:var(--accent);border-color:var(--accent)}

.sheet{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40;display:none}
.sheet.on{display:block}
.sheet .in{position:absolute;left:0;right:0;bottom:0;max-height:92vh;overflow:auto;
  background:var(--bg);border-radius:16px 16px 0 0;padding:14px 14px 28px}
.sheet h2{margin:2px 0 2px;font-size:16px}
.sheet .cd2{font-size:12px;color:var(--sub);margin-bottom:8px}
.close{position:absolute;right:10px;top:8px;border:0;background:#0000;font-size:24px;
  color:var(--sub);cursor:pointer}

.btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 13px;
  font-size:14px;cursor:pointer;font-family:inherit;color:var(--txt)}
.btn.p{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.g{background:var(--ok);color:#fff;border-color:var(--ok)}
.btn.d{color:var(--ng)}
.btn:disabled{opacity:.5}
.btn.big{width:100%;padding:16px;font-size:16px;font-weight:700}
.fld{margin-top:10px}
.fld label{display:block;font-size:12px;color:var(--sub);margin-bottom:4px}
.fld input,.fld textarea,.fld select{width:100%;padding:9px 10px;border:1px solid var(--line);
  border-radius:8px;font-size:15px;font-family:inherit;background:#fff}
.fld textarea{min-height:70px}
.sinfo{font-size:11.5px;color:var(--sub);margin-top:6px;line-height:1.7}
.sinfo b{color:var(--accent-txt)}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px}
.stat h3{margin:0 0 8px;font-size:14px}

nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);
  border-top:1px solid var(--line);z-index:41;padding-bottom:env(safe-area-inset-bottom)}
nav button{flex:1;border:0;background:#0000;padding:9px 0 11px;font-size:11px;
  color:var(--sub);cursor:pointer;font-family:inherit}
nav button b{display:block;font-size:19px;line-height:1.15;font-weight:400}
nav button.on{color:var(--accent-txt);font-weight:700}
nav .badge{position:absolute;transform:translate(14px,-6px);background:var(--ng);color:#fff;
  border-radius:999px;font-size:10px;padding:0 5px;font-weight:700}

/* 担当者チップ */
.whorow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.wchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;
  font-size:13px;cursor:pointer;font-family:inherit;color:var(--txt)}
.wchip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.whoNow{font-size:12px;color:var(--sub);margin-left:2px}
.shake{animation:sk .5s}
@keyframes sk{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

/* 追加タブ */
.uprow{display:flex;gap:9px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:8px;margin-bottom:8px}
.uprow img{width:64px;height:64px;flex:0 0 64px;border-radius:8px;object-fit:cover;background:#eceff2}
.uprow .f{flex:1;min-width:0}
.uprow input{width:100%;padding:8px 9px;border:1px solid var(--line);border-radius:7px;
  font-size:14px;font-family:inherit}
.uprow .x{flex:0 0 30px;width:30px;height:30px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--ng);font-size:16px;line-height:1;cursor:pointer}

/* 選んだ写真のバー */
.sharebar{position:fixed;left:0;right:0;bottom:calc(57px + env(safe-area-inset-bottom));
  z-index:39;background:var(--card);border-top:2px solid var(--accent);
  border-bottom:1px solid var(--line);box-shadow:0 -6px 18px #0002;padding:8px 12px}
.sheet.on ~ .sharebar{display:none}
.sharebar .shrow{display:flex;align-items:center;gap:8px}
.sharebar .shths{display:flex;gap:3px;align-items:center;flex:1;min-width:0;overflow:hidden}
.sharebar .shths img{width:34px;height:34px;flex:0 0 34px;border-radius:6px;object-fit:cover;background:#eceff2}
.sharebar .shths .more{font-size:11px;color:var(--sub);margin-left:2px}
.sharebar .btn{padding:10px 14px;font-size:14px}
.sharebar .btn.p b{font-size:17px;margin-right:2px}
body:has(.sharebar){padding-bottom:200px}

/* 送るシートの中の一覧 */
.shlist{max-height:34vh;overflow:auto;border:1px solid var(--line);border-radius:10px;
  padding:6px;margin-bottom:12px;background:#fafbfc}
.shitem{display:flex;gap:9px;align-items:center;padding:5px 3px;border-bottom:1px solid var(--line)}
.shitem:last-child{border-bottom:0}
.shitem img{width:44px;height:44px;flex:0 0 44px;border-radius:7px;object-fit:cover;background:#eceff2}
.shitem .nm{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.shitem .x{flex:0 0 30px;width:30px;height:30px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--ng);font-size:16px;line-height:1;cursor:pointer}

.shurl{word-break:break-all;background:#f3f6f9;border:1px solid var(--line);border-radius:8px;
  padding:10px 12px;font-size:13px;margin:4px 0 10px;font-family:ui-monospace,SFMono-Regular,monospace}
.shhrow{border-bottom:1px solid var(--line);padding:9px 0}
.shhrow:last-child{border-bottom:0}
.shhrow .t{font-size:13.5px;font-weight:600}
.shhrow .t span{display:block;font-weight:400;font-size:11px;color:var(--sub)}
.shhrow .v{font-size:11.5px;color:var(--sub);margin-top:2px}
.shhrow .btns{margin-top:5px;gap:6px}
.shhrow .btns .btn{padding:6px 10px;font-size:12.5px}
.shhrow.dead{opacity:.55}
.shths2{display:flex;gap:3px;margin-top:5px;overflow:hidden}
.shths2 img{width:38px;height:38px;border-radius:6px;object-fit:cover;background:#eceff2}

/* 拡大表示 */
.zoom{position:fixed;inset:0;background:#000;z-index:60;display:none;
  align-items:center;justify-content:center;flex-direction:column}
.zoom.on{display:flex}
.zoom img{max-width:100%;max-height:100%;object-fit:contain}
.zclose{position:absolute;right:10px;top:calc(8px + env(safe-area-inset-top));z-index:2;border:0;
  background:rgba(0,0,0,.5);color:#fff;width:40px;height:40px;border-radius:999px;
  font-size:22px;cursor:pointer}
.znav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;border:0;
  background:rgba(0,0,0,.42);color:#fff;width:44px;height:60px;font-size:26px;cursor:pointer}
.zprev{left:0;border-radius:0 8px 8px 0}
.znext{right:0;border-radius:8px 0 0 8px}
.zcount{position:absolute;top:calc(14px + env(safe-area-inset-top));left:14px;color:#fff;font-size:13px}
.zname{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));left:0;right:0;
  text-align:center;color:#fff;font-size:13px;padding:0 60px}

.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#222;color:#fff;
  padding:10px 16px;border-radius:999px;font-size:13px;z-index:70;opacity:0;transition:.2s;
  pointer-events:none;max-width:88vw;text-align:center}
.toast.on{opacity:1}
.spin{display:inline-block;width:13px;height:13px;border:2px solid #fff6;border-top-color:#fff;
  border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes sp{to{transform:rotate(360deg)}}


/* ---------- フォルダ ---------- */
.frow{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:11px 12px;margin-bottom:7px;cursor:pointer}
.frow:active{background:#f0f2f5}
.frow .fh{display:flex;align-items:baseline;gap:8px}
.frow .fn{font-weight:700;font-size:14.5px;flex:1;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.frow .fc{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums}
.frow .fc::after{content:"枚"}
.fth{display:flex;gap:4px;margin-top:8px;align-items:center}
.fth img{width:52px;height:52px;border-radius:7px;object-fit:cover;background:#eceff2}

.fbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.fbar .btn{padding:8px 11px;font-size:13px;flex:0 0 auto}
.ftitle{flex:1;min-width:0;font-weight:700;font-size:15px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.ftitle span{font-weight:400;font-size:11.5px;color:var(--sub);margin-left:6px}

/* 下のバーは2段（枚数と選択解除／共有とリンク） */
.sharebar .shrow2{display:flex;gap:8px;margin-top:8px}
.sharebar .shrow2 .btn.big{flex:1;padding:13px 10px;font-size:15px;font-weight:700}
.sharebar .shrow2 .btn.big i{font-style:normal;font-size:11px;opacity:.8;margin-left:5px}
.sharebar .cnt{font-size:12px;color:var(--sub);white-space:nowrap}
.sharebar .cnt b{font-size:17px;color:var(--accent-txt);margin-right:1px}

/* 「フォルダ追加」タブの、いまあるフォルダの一覧 */
.nfrow{display:flex;justify-content:space-between;gap:8px;font-size:13px;
  padding:6px 0;border-bottom:1px solid var(--line)}
.nfrow:last-child{border-bottom:0}
.nfrow span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nfrow .fc{color:var(--sub);font-size:11.5px;flex:0 0 auto}
.nfrow .fc::after{content:"枚"}

/* 押したときに少し濃くする（LINEのボタンと同じ感じ） */
.btn.p:active{background:var(--accent-dk);border-color:var(--accent-dk)}

/* 部位の見出し（フォルダの中を部位ごとに分ける） */
.bui{display:flex;align-items:baseline;gap:7px;font-weight:700;font-size:13.5px;
  color:var(--txt);margin:14px 2px 6px;padding-bottom:4px;border-bottom:2px solid var(--accent)}
.bui:first-of-type{margin-top:2px}
.bui span{font-weight:400;font-size:11px;color:var(--sub)}
.bui span::after{content:"枚"}

/* 振り分け待ち・フォルダなしを目立たせる */
.frow.warn{border-color:#e8b04b;background:#fffaf0}
.wmsg{font-size:11.5px;color:#8a6417;line-height:1.7;margin-top:5px;
  background:#fff6e2;border:1px solid #f0dcae;border-radius:8px;padding:7px 9px}

/* 商品名が空の行 */
.uprow.miss{border-color:var(--ng);background:#fdf1f0}
.uprow.miss input{border-color:var(--ng)}
.upnote{font-size:12px;color:var(--txt);background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:8px 10px;margin:0 0 8px;line-height:1.8}
.upnote b{color:var(--ng)}
.upnote span{background:#f1f4f2;border-radius:5px;padding:1px 6px;font-size:11.5px}

/* 移し先の一覧はタップできる */
.nfrow.tap{cursor:pointer;padding:11px 4px}
.nfrow.tap:active{background:#f0f2f5}
