
@layer reset, tokens, base, components, utilities;
@layer tokens{
  :root{
    /* Tally流ライトデザインシステム(2026-07-24全面刷新)。意味色は少なく・濃く・光らせない */
    --success:#16a34a; --warning:#d97706; --danger:#dc2626; --info:#3b5bfd;
    --success-bg:#e8f6ee; --warning-bg:#fdf3e2; --danger-bg:#fdecec; --info-bg:#eef1ff;
    --r-1:6px; --r-2:9px; --r-3:12px; --r-4:16px;
    --sp-2:8px; --sp-3:12px; --sp-4:16px;
    --fs-h1:clamp(17px, 1rem + 0.5vw, 20px);
    --tap:44px;
  }
}
@layer components{
  :root{ --bg:#f6f7f9; --panel:#ffffff; --card:#ffffff; --line:#e7e9ee; --line2:#f0f2f5;
         --txt:#16181d; --sub:#6b7280; --faint:#9aa1ab; --accent:#3b5bfd; --btn:#16181d;
         --ok:#16a34a; --warn:#d97706; --err:#dc2626;
         --mono:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;
         color-scheme:light; }
  *{box-sizing:border-box}
  body{margin:0;font-family:'Inter','Noto Sans JP',-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--txt);
       background:linear-gradient(180deg,#f2f5f8 0%,var(--bg) 260px);}
  .app{display:flex;min-height:100vh}
  /* サイドバー */
  .sidebar{width:216px;flex:0 0 216px;background:var(--panel);border-right:1px solid var(--line);
           padding:16px 10px;position:sticky;top:0;height:100vh;block-size:100dvh;overflow-y:auto;overscroll-behavior:contain}
  .brand{font-weight:800;font-size:14.5px;padding:2px 10px 14px;letter-spacing:.01em}
  .brand small{display:block;color:var(--faint);font-weight:500;font-size:10px;margin-top:2px}
  nav{display:flex;flex-direction:column;gap:2px}
  .navgrp{display:flex;flex-direction:column}
  .navsec{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--faint);
          text-transform:uppercase;padding:14px 10px 5px}
  nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;color:var(--sub);
        text-decoration:none;font-size:13px;font-weight:500;cursor:pointer}
  nav a:hover{background:#f3f4f6;color:var(--txt)}
  nav a.active{background:var(--info-bg);color:var(--accent);font-weight:700}
  nav a.parent{color:var(--txt);font-weight:600}
  nav a.parent.open{background:#f3f4f6}
  nav a .ic{width:20px;height:20px;flex:0 0 20px;display:flex;align-items:center;justify-content:center;font-size:13px;filter:grayscale(.15)}
  nav a.parent .caret{margin-left:auto;font-size:15px;line-height:1;color:var(--faint);transition:transform .18s ease}
  nav a.parent.open .caret{transform:rotate(90deg)}
  .subwrap{margin:2px 0 4px 19px;padding-left:10px;border-left:1.5px solid var(--line);
        display:flex;flex-direction:column;gap:1px}
  nav a.sub{padding:6px 9px;font-size:12.5px;border-radius:8px}
  nav a.sub .ic{width:5px;height:5px;flex:0 0 5px;background:#d3d7de;border-radius:50%}
  nav a.sub.active .ic{background:var(--accent)}
  nav a.sub.active{background:var(--info-bg)}
  /* コンテンツ */
  .content{flex:1;min-width:0;padding:20px 24px 40px;max-width:none}
  h1{font-size:var(--fs-h1);font-weight:700;letter-spacing:-.015em;margin:0 0 4px}
  .muted{color:var(--sub);font-size:11.5px;line-height:1.55}
  .card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0;
        box-shadow:0 1px 2px rgba(16,24,40,.04)}
  .card h2{font-family:var(--mono);font-size:10px;margin:0 0 8px;color:var(--faint);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
  label{display:block;font-size:12px;color:var(--sub);font-weight:600;margin:0 0 5px}
  input,select,textarea{width:100%;background:#fff;border:1px solid #dfe3e8;color:var(--txt);
        border-radius:10px;padding:9px 12px;font-size:14px;font-family:inherit}
  input::placeholder{color:#b3b9c2}
  select{text-align:center;text-align-last:center;cursor:pointer}
  #empBody select,#empBody span{text-align:center}
  input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,91,253,.14)}
  select:hover{border-color:#c6cbd4}
  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
  .actions{display:flex;justify-content:flex-end;margin-top:12px;gap:10px}
  button{background:var(--btn);color:#fff;border:0;border-radius:999px;padding:9px 18px;font-size:13.5px;
         cursor:pointer;font-weight:600;font-family:inherit;transition:background .12s ease,border-color .12s ease,opacity .12s}
  button:hover:not(:disabled){background:#2b2f36}
  button.ghost{background:#fff;border:1px solid #d7dae0;color:var(--txt)}
  button.ghost:hover:not(:disabled){background:#f6f7f9;border-color:#c6cbd4}
  button.warn{background:var(--warning-bg);color:#92580a;border:1px solid #f2d9ac}
  button.warn:hover:not(:disabled){background:#fbe9c8}
  button:disabled{opacity:.4;cursor:not-allowed}
  a{cursor:pointer;color:var(--accent)}
  table{width:100%;border-collapse:collapse;font-size:12px}
  th,td{padding:5px 8px;border-bottom:1px solid var(--line2);text-align:center;white-space:nowrap;vertical-align:middle}
  /* ページスクロール統一(2026-08-18): 表ヘッダーの既定=固定アプリバー(52px)直下に吸着。
     内側スクロール箱(.scroll等・報酬計算グリッド・モーダル)の中だけtop:0に戻す */
  th{font-family:var(--mono);color:var(--faint);font-weight:600;font-size:10.5px;text-transform:uppercase;
     letter-spacing:.09em;position:sticky;top:52px;background:#fbfbfc;z-index:5;border-bottom:1px solid var(--line)}
  .scroll th,.scroll-tall th,dialog th,.sfb-box th{top:0;z-index:1}
  tbody tr:hover td{background:#fafbfc}
  .scroll{max-height:380px;overflow:auto;border:1px solid var(--line);border-radius:12px}
  .scroll-tall{max-height:max(440px, calc(100vh - 250px));overflow:auto;border:1px solid var(--line);border-radius:12px}
  .pagetbl{margin-top:16px} .pagetbl th{z-index:2}
  .adjtbl td,.adjtbl th{padding:3px 6px;font-size:11.5px} .adjtbl .pill{font-size:10px;padding:1px 6px} .adjtbl .adjbtn{padding:2px 8px;font-size:11px}
  /* overflow:visible(2026-08-18): スクロール容器にしない=ヘッダーのページ吸着(top:52px)を効かせる。
     横に収まらない表はページごと横スクロールになる(内側スクロールは作らない方針) */
  .adjwrap{border:1px solid var(--line);border-radius:12px;overflow:visible;background:#fff}
  /* 振込データ表: 共用adjtblの密度(11.5px)では読めないため専用に緩める(2026-08-10) */
  #bkTbl td,#bkTbl th{padding:9px 10px;font-size:12.5px}
  #bkTbl .num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.02em}
  /* 源泉管理(2026-08-18): 内側スクロール廃止=ページスクロールに一本化。
     overflowを作らないことでヘッダー(アプリバー直下)と合計行(画面下)のsticky吸着がページに対して効く */
  #whWrap{overflow:visible}
  /* min-width=金額8列が省略(…)されない下限。狭い窓ではページごと横スクロールになる(内側スクロールは作らない) */
  #whWrap table{table-layout:fixed;min-width:960px}
  #whWrap th,#whWrap td{overflow:hidden;text-overflow:ellipsis;padding:9px 8px;font-size:12.5px}
  #whWrap td.num{font-size:12px}
  #whWrap th{white-space:normal;line-height:1.3;top:52px;z-index:5;   /* 固定アプリバー(52px)の直下に吸着 */
    box-shadow:0 6px 8px -6px rgba(20,24,40,.08)}
  #whWrap .nm{text-align:left}
  #whWrap td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.02em}
  #whWrap .num{text-align:right}
  #whWrap tfoot td{position:sticky;bottom:0;background:#eef0f7;z-index:4;
    border-top:2px solid var(--line);box-shadow:0 -6px 8px -6px rgba(20,24,40,.10)}
  /* 来店予約管理(2026-08-18): 出勤/リクエストのバッジ */
  .rsv-b{display:inline-block;font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;border:1px solid transparent}
  .rsv-work{background:#e9f2ef;color:#2c5a4a;border-color:#cfe2db}
  .rsv-req{background:#f5efe7;color:#6b5433;border-color:#e5d9c6}
  .rsv-first{background:#eceff5;color:#3d4661;border-color:#d5dae6;margin-left:4px}
  #rsvTbl th{white-space:nowrap}
  #rsvTbl td{vertical-align:middle}
  .rsv-sel{padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px}
  /* 源泉管理: 3グループ整理(2026-08-18オーナー指示)。
     混在する3要素(支給の流れ/源泉所得税額の計算/記帳用厚生費)をステップカード+
     グループバンド+縦罫+背景tintで区切る。色は仕訳タグと同族=対応が視覚で追える。
     同じ仕訳=同じ色(キャスト報酬と🔺は同一科目)。彩度は抑えめ=データより主張しない */
  #whWrap th{vertical-align:bottom}
  .wh-tag{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.02em;line-height:1.25;
    padding:2px 7px;border-radius:999px;margin-bottom:4px;white-space:normal;
    border:1px solid transparent}
  .wh-tag.wt1{background:#eceff5;color:#3d4661;border-color:#d5dae6}          /* キャスト報酬 */
  .wh-tag.wt2{background:#e9f2ef;color:#2c5a4a;border-color:#cfe2db}          /* 預り金 */
  .wh-tag.wt3{background:#f5efe7;color:#6b5433;border-color:#e5d9c6}          /* 🔺支払手数料 */
  .wh-thname{display:block;white-space:nowrap;font-size:11px}
  .wh-saikei{display:block;font-size:9px;font-weight:600;color:var(--sub);margin-bottom:4px}
  /* ステップカード: 表の3グループと同順・同色。各グループの式をチップ(=列名)で示す */
  .wh-flow{margin:8px 0 12px;display:flex;gap:8px;flex-wrap:wrap}
  .wh-step{flex:1 1 260px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff}
  .wh-step.wsA{border-left:3px solid #a9b4cc}
  .wh-step.wsB{border-left:3px solid #8fbcab;background:#fbfdfc}
  .wh-step.wsC{border-left:3px solid #d3bd94;background:#fdfbf7}
  .wh-step-h{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;margin-bottom:6px}
  .wh-stepno{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;
    border-radius:50%;font-size:10.5px;font-weight:800;color:#fff;flex:none}
  .wh-stepno.sn1{background:#5b6785}.wh-stepno.sn2{background:#3f7a63}.wh-stepno.sn3{background:#8a6f42}
  .whg-note{font-size:10px;font-weight:600;color:var(--sub)}
  .wh-formula{font-size:11.5px;color:var(--sub);display:flex;align-items:center;flex-wrap:wrap;gap:3px}
  .wh-chip{display:inline-block;font-size:10px;font-weight:700;color:var(--text);
    background:#fff;border:1px solid var(--line);border-radius:6px;padding:2px 7px;line-height:1.4}
  .wh-op{font-family:var(--mono);font-weight:700;color:var(--sub);padding:0 1px}
  .wh-fnote{font-size:9.5px;color:var(--sub);align-self:center;margin-left:1px}
  /* グループバンド(theadの1段目)+2段sticky。1段目は高さ固定=2段目のtop計算を安定させる */
  #whWrap table{min-width:1080px}
  #whWrap thead tr.whg-row th{top:52px;height:30px;box-sizing:border-box;padding:0 8px;box-shadow:none;
    text-align:center;font-size:10.5px;font-weight:800;line-height:1;white-space:nowrap;vertical-align:middle}
  #whWrap thead tr.whg-row th .wh-stepno{width:15px;height:15px;font-size:9.5px;margin-right:5px;vertical-align:-3px}
  #whWrap thead tr.whg-row th .whg-note{margin-left:5px;font-weight:600}
  #whWrap thead tr.whg-row .whg-blank{background:#fff}
  #whWrap th.whgA{background:#eef1f6;color:#3d4661}
  #whWrap th.whgB{background:#e7f1ed;color:#2c5a4a}
  #whWrap th.whgC{background:#f4eee2;color:#6b5433}
  #whWrap thead tr.whcols th{top:85px}   /* 52(アプリバー)+33(バンド実高。実測合わせ) */
  /* グループ境界の縦罫+グループ2/3の背景tint(ヘッダー・本体・合計共通) */
  #whWrap .gb{border-left:2px solid var(--line)}
  #whWrap .wgB{background:#f7faf9}
  #whWrap .wgC{background:#faf7f1}
  #whWrap thead tr.whcols th.wgB{background:#f0f6f4}
  #whWrap thead tr.whcols th.wgC{background:#f6f1e7}
  #whWrap tfoot td.wgB{background:#e4ece9}
  #whWrap tfoot td.wgC{background:#ece5d6}
  /* 再掲列(グループ2の控除前報酬)は淡色=グループ1の値の写しであることを示す */
  #whWrap td.dim{color:var(--sub)}
  /* ホーム: 店舗カードの遷移ボタン(着色 2026-08-18)。テーマ層のbutton既定(グレー)より強くする */
  button.dh-navbtn{font-size:11px;padding:5px 15px;background:var(--acc-fill)!important;color:#fff!important;
    border:none!important;border-radius:999px!important;font-weight:700;cursor:pointer;letter-spacing:.02em}
  /* アクションリンク(2026-08-18): リンクであることを常時明示。装飾ではなく機能の表示 —
     ①アクセント色は操作にのみ使う(既存原則) ②常時下線(薄)=リンクの普遍記号
     ③ホバーで色と下線が深まる(位置は動かさない) */
  .dh-link{color:var(--accent);font-size:12.5px;font-weight:800;cursor:pointer;
    text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;
    text-decoration-color:rgba(242,92,5,.35);transition:color .15s,text-decoration-color .15s}
  .dh-link:hover{color:#c94a03;text-decoration-color:#c94a03}
  .dh-link:focus-visible{outline:2px solid #d94f04;outline-offset:2px;border-radius:2px}
  /* Braunキーキャップ(2026-08-18): 上面ハイライト+下端の受け影=物理ボタンの文法。
     ホバー=発色が深まるだけ(位置不動)、押下=キー全体が受け影の上へ沈む */
  button.dh-navbtn{transition:box-shadow .12s,filter .12s,transform .06s;
    background:linear-gradient(180deg,#ff7a24 0%,var(--acc-fill) 45%,#e85703 100%)!important;
    box-shadow:0 2px 0 #c34803,0 3px 6px rgba(242,92,5,.32),inset 0 1px 0 rgba(255,255,255,.35)}
  button.dh-navbtn:hover{filter:saturate(1.06) brightness(1.05);
    box-shadow:0 2px 0 #c34803,0 4px 10px rgba(242,92,5,.45),inset 0 1px 0 rgba(255,255,255,.4)}
  button.dh-navbtn:active{transform:translateY(2px);
    box-shadow:0 0 0 #c34803,inset 0 2px 4px rgba(0,0,0,.28)}
  button.dh-navbtn:focus-visible{outline:2px solid #d94f04;outline-offset:2px}
  /* ロータリーエンコーダー(2026-08-18): 期間送り‹›を円形ノブに。外周=ローレット刻み
     (repeating-conic)、面=金属質の微グラデ、押下=沈み込み。Braunのダイヤルの文法 */
  #sfbPrev,#sfbNext,#mPrev,#mNext,#psPrev,#psNext,#whPrev,#whNext{
    width:34px;height:34px;padding:0!important;border-radius:50%!important;
    border:3px solid transparent!important;
    background:radial-gradient(circle at 50% 36%,#ffffff 0%,#f3f2ee 52%,#e2e0d8 100%) padding-box,
      repeating-conic-gradient(#c7c4ba 0deg 5deg,#efeee9 5deg 10deg) border-box !important;
    color:#1d1d1b;font-size:15px;font-weight:600;line-height:1;
    display:inline-flex;align-items:center;justify-content:center;
    box-shadow:0 1.5px 3px rgba(20,22,26,.2),inset 0 1px 0 rgba(255,255,255,.85);
    transition:box-shadow .12s,transform .06s}
  #sfbPrev:hover,#sfbNext:hover,#mPrev:hover,#mNext:hover,#psPrev:hover,#psNext:hover,#whPrev:hover,#whNext:hover{
    box-shadow:0 2.5px 6px rgba(20,22,26,.28),inset 0 1px 0 rgba(255,255,255,.9)}
  #sfbPrev:active,#sfbNext:active,#mPrev:active,#mNext:active,#psPrev:active,#psNext:active,#whPrev:active,#whNext:active{
    transform:translateY(1px);box-shadow:0 0 1px rgba(20,22,26,.25),inset 0 2px 4px rgba(20,22,26,.22)}
  #sfbPrev:disabled,#sfbNext:disabled{opacity:.35}
  /* ホーム: 人別売上ランキング(2026-08-18)。3カラム流し込み(1位→10位が左列)・上位3位はアクセント */
  .dh-rank{display:grid;grid-auto-flow:column;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(var(--r3,10),auto);gap:8px 18px}
  @media(max-width:1100px){.dh-rank{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--r2,15),auto)}}
  @media(max-width:700px){.dh-rank{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none}}
  .dh-lg{display:flex;gap:10px;font-size:11px;color:var(--sub);font-weight:700}.dh-lg span{font-weight:900}
  .dh-rank .cbn{margin:0;--h:64px}.dh-rank .cbn .nm{font-size:16px}.dh-rank .cbn .sub{font-size:11px;white-space:normal;overflow:visible;text-overflow:clip}.dh-rank .cbn.sm{--h:64px}.dh-rank .cbn .rk{font-size:15px}
  .dh-rank .ri{display:flex;align-items:center;gap:9px;padding:6.5px 2px;border-bottom:1px solid var(--line2);break-inside:avoid}
  .dh-rank .rn{font-family:var(--mono);font-size:11px;color:var(--faint);width:20px;text-align:right;flex:none}
  .dh-rank .ri.top3 .rn{color:var(--accent);font-weight:800;font-size:13px}
  .dh-rank .av{width:26px;height:26px;border-radius:50%;object-fit:cover;background:#eef0f4;flex:none}
  .dh-rank .nm{font-size:12.5px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dh-rank .nm small{font-size:10px;color:var(--faint);font-weight:700;margin-left:5px}
  .dh-rank .val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;text-align:right;flex:none;line-height:1.35}
  .dh-rank .grp{font-size:10px;color:var(--faint)}
  .dh-rank .sub2{font-size:9.5px;color:var(--faint);margin-left:3px}
  #whWrap tfoot td{padding-left:6px;padding-right:6px}
  #whWrap tfoot td.num{font-size:11px}   /* 合計は桁が1つ多い(8桁+太字monoが収まるサイズ+狭パディング) */
  #bkTbl .bk-amt{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
  #bkTbl tr.bk-miss td{background:var(--danger-bg);border-bottom:1px solid #f5d0d0}
  #bkTbl tr.bk-miss td:first-child{border-left:3px solid var(--danger)}
  #bkTbl tr.bk-miss:hover td{background:#fbe2e2}
  #bkTbl .bk-name{text-align:left;font-weight:700}
  #bkTbl .bk-reason{color:var(--danger);font-weight:700;text-align:left}
  #bkTbl .bk-hint{color:var(--sub);font-weight:400;font-size:11.5px}
  .bk-note{margin:6px 0;padding:9px 12px;border-radius:9px;font-size:12.5px}
  .bk-note.info{background:var(--info-bg);color:var(--txt)}
  .bk-note.danger{background:var(--danger-bg);color:#8f1d1d;border:1px solid #f0c4c4}
  .adjbtn{padding:5px 13px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent}
  .adjbtn.edit{background:#fff;border-color:#d7dae0;color:var(--txt)}
  .adjbtn.edit:hover{background:#f6f7f9}
  .adjbtn.end{background:#fff;border-color:#f2d9ac;color:#92580a}
  /* 報酬明細 */
  .ps-sheet{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;max-width:440px;margin:0 auto 16px;font-size:13px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
  .ps-title{font-weight:800;font-size:16px;margin-bottom:6px}
  .ps-meta{color:var(--sub);font-size:12px;line-height:1.7;margin-bottom:10px;border-bottom:1px solid var(--line);padding-bottom:8px}
  .ps-total{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:15px;padding:6px 0;border-bottom:2px solid var(--txt);margin-bottom:8px}
  .ps-sec{margin-bottom:10px}
  .ps-sec-h{font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:4px}
  .ps-row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px dotted var(--line)}
  .ps-row span{color:var(--sub)} .ps-strong{font-weight:700}
  .ps-net{display:flex;justify-content:space-between;font-weight:800;font-size:16px;background:var(--info-bg);border-radius:8px;padding:9px 12px;margin:10px 0}
  .ps-biko{font-size:12px;line-height:1.7}
  #psPrint{display:none}
  @media print{
    .sidebar,.content>section:not(#view-payslip),#view-payslip>*:not(#psPrint){display:none!important}
    .app{display:block!important}
    body,body::before{background:#fff!important}
    #psPrint{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}
    .ps-sheet{max-width:100%;color:#000;background:#fff;border:1px solid #999;break-inside:avoid;font-size:12px;box-shadow:none}
    .ps-title{color:#000}.ps-sec-h{color:#333}.ps-row span{color:#333}.ps-meta{color:#333}
    .ps-net{background:#eee;color:#000}.ps-row{border-bottom:1px dotted #ccc}
  }
  .pill{font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px}
  .p-ok{background:var(--success-bg);color:var(--ok)} .p-guar{background:var(--info-bg);color:var(--accent)}
  .p-end{background:#f0f1f4;color:var(--sub)} .p-quit{background:var(--danger-bg);color:var(--err)}
  .toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
  .status{font-size:13px;color:var(--sub);align-self:center}
  .kpi{display:flex;gap:26px;flex-wrap:wrap} .kpi div{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
  .kpi b{font-size:22px;font-family:'Inter','Noto Sans JP',sans-serif;letter-spacing:-.01em;color:var(--txt);display:block;margin-top:2px}
  /* 要確認リスト */
  .issue{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--line2);min-height:30px}
  /* 計算結果テーブル: ヘッダー行+名前列を固定、縦横スクロール(C-1) */
  #resWrap{max-height:calc(100vh - 300px);min-height:340px;overflow:auto;overflow-x:scroll}
  #resWrap thead th{position:sticky;top:0;background:#eef0f7;z-index:3;cursor:pointer;user-select:none}
  #resWrap th:first-child,#resWrap td:first-child{position:sticky;left:0;background:#fff;z-index:2;text-align:left}
  #resWrap thead th:first-child{z-index:4;background:#eef0f7}
  #resWrap tfoot td{position:sticky;bottom:0;background:#eef0f7;font-weight:700;border-top:2px solid var(--line)}
  #resWrap tfoot td:first-child{z-index:2;background:#eef0f7}
  /* 報酬(最終列)は右端に常時固定=スクロールせずに最重要の金額が見える */
  #resWrap th:last-child,#resWrap td:last-child{position:sticky;right:0;background:#fff;z-index:2;border-left:1px solid var(--line);box-shadow:-6px 0 8px -6px rgba(20,24,40,.12)}
  #resWrap thead th:last-child{z-index:4;background:#eef0f7}
  #resWrap tfoot td:last-child{background:#eef0f7}
  /* 横スクロールバーを常時見せる(macOSのオーバーレイ非表示対策) */
  .adjwrap::-webkit-scrollbar{height:11px;width:11px}
  .adjwrap::-webkit-scrollbar-thumb{background:#b9c0d4;border-radius:6px;border:2px solid #fff}
  .adjwrap::-webkit-scrollbar-track{background:#f0f2f8;border-radius:6px}
  .adjwrap{scrollbar-width:thin;scrollbar-color:#b9c0d4 #f0f2f8}
  .issue:last-child{border-bottom:0}
  .issue .sev{font-family:var(--mono);font-weight:700;font-size:9px;min-width:44px;text-align:center;border-radius:5px;padding:2px 0;letter-spacing:.05em}
  .sev.WARN{background:var(--warning-bg);color:var(--warn)} .sev.ERROR{background:var(--danger-bg);color:var(--err)}
  .sev.INFO{background:#f0f1f4;color:var(--sub)}
  .issue .ist{flex:none;width:56px;text-align:center}
  .issue .who{font-weight:700;flex:none;width:92px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
  .issue .igp{flex:none;width:118px;text-align:left}
  .issue .msg{color:var(--sub);font-size:12px;flex:1;line-height:1.35;text-align:left}
  .issue .iact{flex:none;display:flex;gap:6px;justify-content:flex-end}
  .issue button,.issue .adjbtn{padding:3px 8px;font-size:11px} .issue .pill{font-size:10px;padding:1px 6px}
  .issue.done{opacity:.5} .issue.done .msg{text-decoration:line-through}
  .step{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);
        border:1px solid var(--line);border-radius:999px;padding:4px 12px;margin-right:6px;background:#fff}
  .step.on{background:var(--btn);color:#fff;border-color:transparent;font-weight:600}
  .banner{border-radius:12px;padding:12px 14px;font-size:13.5px;margin:12px 0}
  .banner.ok{background:var(--success-bg);color:#166534;border:1px solid #c5e9d2}
  .banner.wait{background:var(--warning-bg);color:#92580a;border:1px solid #f2d9ac}
  .seg{display:inline-flex;background:#eff1f4;border-radius:10px;padding:3px;border:none}
  .seg button{flex:1;background:transparent;border:0;border-radius:8px;color:var(--sub);font-weight:600;padding:7px 16px;font-size:13px;white-space:nowrap}
  .seg button:hover:not(.on):not(.active){background:rgba(255,255,255,.6);color:var(--txt)}
  .seg button.on,.seg button.active{background:#fff;color:var(--txt);box-shadow:0 1px 3px rgba(16,24,40,.12);font-weight:700}
  .seg button.on[data-sign="-1"]{color:var(--err)}
  #empSubTog{max-width:260px}
  #empSubTog button{padding:7px 14px}
  .sns-ic{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#f0f1f4;vertical-align:middle;border:1px solid var(--line)}
  span.sns-none{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;color:var(--faint)}
  .sns-at{color:var(--faint);margin-right:1px}
  .sns-xid{background:#fff;border:1px solid #dfe3e8;border-radius:8px;color:var(--txt);padding:6px 9px;width:150px;font-size:13px;font-family:var(--mono)}
  .sns-click{transition:transform .1s ease,box-shadow .1s ease}
  .sns-click:hover{transform:scale(1.07);box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}
  .sns-open{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;
            border:1px solid var(--line);background:#fff;color:var(--txt);text-decoration:none;font-size:14px;font-weight:700;
            margin-right:6px;vertical-align:middle;cursor:pointer;transition:all .12s ease}
  .sns-open:hover{border-color:var(--accent);background:var(--info-bg);color:var(--accent);transform:translateY(-1px)}
  .sns-open.disabled{opacity:.3;pointer-events:none}
  /* レイアウト不変原則: ボタンは全行で同じ位置に常駐し、出す/出さないはvisibilityのみで切替(位置をずらさない) */
  .sns-save{padding:5px 0;width:68px;margin-left:6px;font-size:12px;text-align:center}
  tr.g-ended{background:#f4f5f8}
  tr.g-ended td{color:#a7aeba}
  tr.g-ended .gcell.g-off,tr.g-ended .gcell.g-on{opacity:.45}
  .kupbtn{width:172px;padding:7px 0;font-size:12.5px;text-align:center}
  .sns-refresh{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;
    border:1px solid var(--line);background:#fff;color:var(--sub);font-size:13px;cursor:pointer;
    margin-left:8px;vertical-align:middle;padding:0;line-height:1;transition:all .12s}
  .sns-refresh:hover:not(:disabled){border-color:var(--accent);background:var(--info-bg);color:var(--accent)}
  .sns-refresh:disabled{opacity:.4;cursor:default}
  .sns-refresh.spin{animation:snsspin .8s linear infinite}
  @keyframes snsspin{to{transform:rotate(360deg)}}
  .nf-tmpl{width:100%;background:#fff;border:1px solid #dfe3e8;border-radius:8px;color:var(--txt);padding:8px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box}
  #notifyBox .card code{background:#f0f1f4;padding:1px 6px;border-radius:5px;font-family:var(--mono);font-size:12px}
  #notifyBox{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;align-items:start}
  #notifyBox .card{margin:0;padding:14px 16px}
  #notifyBox .card.nf-irregular{border:2px solid #e0b100!important;background:#fffdf3!important}   /* イレギュラー通知(LINE宛)は黄色枠で識別 2026-09-13 */
  #notifyBox .card>b{font-size:14px}
  #notifyBox .nf-ch{inline-size:100%}
  .store-seg{margin-top:4px;inline-size:fit-content;max-inline-size:100%}
  .store-seg button{flex:0 0 auto;padding:8px 18px;font-size:13px}
  .gcell{text-align:center;font-size:10px;min-width:40px;padding:3px 4px}
  .g-on{background:var(--info-bg);color:var(--accent);font-weight:700}
  .g-off{background:#f0f1f4;color:var(--faint)}
  .g-lock{background:#e3e5ea;color:var(--sub);font-weight:700}
  .login{padding:4px 10px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
  .login label{font-size:11px;color:var(--faint)} .login select{margin-top:4px}
  .login .who{margin-top:6px;font-size:11px;color:var(--sub)}
  .uchip{display:flex;align-items:center;gap:8px;padding:7px 9px;margin:2px 4px 10px;background:#f6f7f9;border:1px solid var(--line);border-radius:10px}
  .uava{width:26px;height:26px;border-radius:50%;background:var(--btn);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;flex:none;overflow:hidden}
  .umeta{display:flex;flex-direction:column;min-width:0}
  .umeta b{font-size:12px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}
  .umeta b .uid{font-size:10px;color:var(--faint);font-weight:500;font-family:var(--mono)}
  .umeta small{font-size:10px;color:var(--sub)}
  /* 写真指名 */
  .kbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0 4px}
  .kpill{font-weight:700;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
  .kpill::before{content:'';width:8px;height:8px;border-radius:50%;background:#34c759}
  .ksearch{flex:1;min-width:150px;max-width:260px;padding:8px 13px;border:1px solid #dfe3e8;border-radius:10px;font:inherit;font-size:13px}
  .ktbl{table-layout:fixed;width:100%}
  .ktbl td{vertical-align:middle}
  .ktbl td.knm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;text-align:left}
  .ktbl th:nth-child(2){text-align:left}
  .ktbl tr.koff td{opacity:.45}
  .ktbl tr{transition:opacity .15s}
  .kswwrap{display:flex;align-items:center;gap:10px;min-height:28px}
  .kmode{font-size:11px;color:var(--faint)}
  .kst{font-family:var(--mono);font-size:11px;font-weight:700;width:30px;flex:none;letter-spacing:.03em}
  .kst.on{color:#248a3d}
  .kst.off{color:var(--faint)}
  .kauto{background:none;border:none;padding:0;font:inherit;font-size:12px;font-weight:600;color:var(--accent);cursor:pointer}
  .kauto:disabled{opacity:.5;cursor:default}
  .kava,.kava-t{width:36px;height:36px;border-radius:50%;flex:none}
  .kava{object-fit:cover;background:#f0f1f4}
  .kava-t{background:var(--info-bg);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
  /* 流入経路分析(2026-09-11) */
  .kk-card{margin-bottom:14px}
  .kk-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
  .kk-grid{display:grid;grid-template-columns:minmax(260px,5fr) minmax(300px,7fr);gap:18px 24px}
  @media(max-width:900px){.kk-grid{grid-template-columns:1fr}}
  .kk-row{display:grid;grid-template-columns:10px minmax(96px,150px) 1fr 34px 46px;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line2);font-size:12.5px}
  .kk-sw{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:6px}
  .kk-row .kk-sw{margin:0}
  .kk-lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kk-bar{display:block;height:8px;border-radius:4px;background:#efeeea;overflow:hidden}
  .kk-bar i{display:block;height:100%;border-radius:4px}
  .kk-n{text-align:right;font-variant-numeric:tabular-nums}
  .kk-p{text-align:right;color:var(--sub);font-variant-numeric:tabular-nums;font-size:11.5px}
  .kk-trendwrap{position:relative;overflow-x:auto}
  .kk-svg{display:block;width:100%;height:200px;min-width:320px}
  .kk-svg .kk-gl{stroke:#ecebe6;stroke-width:1}
  .kk-svg .kk-tick{font-size:10px;fill:var(--sub)}
  .kk-svg .kk-val{font-size:10.5px;fill:var(--txt);font-weight:600}
  .kk-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--sub);margin-top:6px}
  .kk-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:5px}
  .kk-tip{position:absolute;z-index:5;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;box-shadow:0 6px 20px rgba(16,24,40,.12);pointer-events:none;min-width:150px}
  .kk-tip-h{font-weight:600;margin-bottom:4px}
  .kk-tip div b{display:inline-block;min-width:26px;text-align:right;margin-right:6px;font-variant-numeric:tabular-nums}
  .kk-tip div i{display:inline-block;width:10px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}
  .kk-details{margin-top:12px}
  .kk-details summary{cursor:pointer;font-size:12.5px;color:var(--sub)}
  .kk-tbl{margin-top:8px}.kk-tbl td.num,.kk-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
  .kk-heat td[data-heat]{background:rgba(242,92,5,calc(var(--heat)*.22))}
  /* ===== 指名分析 再設計(2026-09-12): .an-* =====
     原則: 1px罫線と余白で区切る(影・角丸の主張なし)、8pxスケール、見出しは13px/600、補足は11.5pxミュート、
     数字は等幅(tabular)、アクセントは「選択中」と「1人目指名」だけ。カードは白・角丸10px */
  .an-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 16px}
  .an-meta{margin-left:auto;font-size:11.5px;color:var(--sub);font-variant-numeric:tabular-nums}
  .an-kpi{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:16px;overflow:hidden}
  .an-kpi>div{padding:14px 18px;border-left:1px solid var(--line);min-width:0}
  .an-kpi>div:first-child{border-left:0}
  .an-kpi .l{font-size:11px;color:var(--sub);letter-spacing:.02em;margin-bottom:6px;display:flex;align-items:center;gap:6px}
  .an-kpi .v{font-size:26px;font-weight:500;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .an-kpi .v small{font-size:12px;font-weight:500;color:var(--sub);margin-left:3px;letter-spacing:0}
  .an-kpi .s{font-size:11.5px;color:var(--sub);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  @media(max-width:900px){.an-kpi{grid-template-columns:repeat(2,1fr)}.an-kpi>div:nth-child(3){border-left:0}.an-kpi>div:nth-child(n+3){border-top:1px solid var(--line)}}
  .an-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
  .an-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;min-width:0}
  .cua-tbl th{vertical-align:bottom;line-height:1.25}.cua-tbl th small{display:block;font-size:9.5px;font-weight:400;color:var(--sub)}
  .cua-tbl td{padding:9px 8px}.cua-tbl tbody tr{cursor:pointer}.cua-tbl tbody tr.on td{box-shadow:inset 3px 0 0 #f25c05}.cua-tbl tbody tr.on .cua-stk{background:#fff4ec}
  .cua-tbl .cua-stk{position:sticky;left:0;background:#fff;z-index:1;min-width:64px}
  .cua-tbl td.cua-h b{font-variant-numeric:tabular-nums}.cua-tbl td.cua-h small{color:var(--sub);font-size:10.5px;margin-left:3px}
  .cua-tbl td.cua-bar{min-width:150px}.cua-tbl td.cua-bar div{height:6px;background:#eef0f3;border-radius:0 3px 3px 0;margin-bottom:3px}.cua-tbl td.cua-bar div span{display:block;height:100%;background:#4b5563;border-radius:0 3px 3px 0}.cua-tbl td.cua-bar b{font-size:12px;font-variant-numeric:tabular-nums}
  .cua-kpi{grid-template-columns:repeat(4,minmax(0,1fr))}.cua-kpi>div{min-width:0}.cua-kpi .v{overflow:visible;text-overflow:clip;white-space:nowrap}
  .cu-vl{grid-column:span 2}.cu-vlg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 8px}.cu-vlg .k{font-size:11px;color:var(--sub);white-space:nowrap}.cu-vlg .v{font-size:20px !important}.cu-vlg .s{white-space:normal}
  @media(max-width:900px){.cua-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.cua-kpi>div:nth-child(3){border-left:0}.cua-kpi>div:nth-child(n+3){border-top:1px solid var(--line)}.cua-kpi .v{font-size:22px}.cu-vl{grid-column:span 2}.cu-vlg .v{font-size:18px !important}}
  .cu-stack{display:flex;height:16px;border-radius:5px;overflow:hidden;background:#eef0f3}.cu-stack i{display:block;height:100%;min-width:0}.cu-stack i+i{border-left:2px solid #fff}
  .cu-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:11.5px;color:var(--sub)}.cu-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px}.cu-legend b{color:var(--txt);font-variant-numeric:tabular-nums;margin-left:2px}.cu-legend small{margin-left:2px;font-size:10px}
  .cu-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:0}
  .cu-mno{display:inline-block;font-family:var(--mono,ui-monospace,monospace);font-size:12px;padding:1px 8px;border-radius:999px;background:#eef6ee;color:#1f6b3a;border:1px solid #cfe6d4;letter-spacing:.04em}.cu-mno.wait{background:#fff4e5;color:#9a4b00;border-color:#f3d2a8}
.cu-vis{display:inline-block;min-width:34px;text-align:center;font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:999px;font-variant-numeric:tabular-nums}
  .cua-casts{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
  .cua-casts button{border:1px solid var(--line);background:#fff;color:var(--txt);border-radius:999px !important;padding:5px 12px !important;font-size:12px;font-weight:600;line-height:1.3;transform:none !important;box-shadow:none !important}
  .cua-casts button small{color:var(--sub);font-weight:500;font-size:10.5px;margin-left:2px}
  .cua-casts button.on{background:#f25c05;border-color:#f25c05;color:#fff}.cua-casts button.on small{color:rgba(255,255,255,.85)}
  .an-head h2{white-space:nowrap}.an-head .m{min-width:0}
  .an-4{grid-column:span 4}.an-5{grid-column:span 5}.an-7{grid-column:span 7}.an-6{grid-column:span 6}.an-12{grid-column:span 12}
  @media(max-width:1100px){.an-5,.an-7,.an-6{grid-column:span 12}.an-4{grid-column:span 6}}
  @media(max-width:700px){.an-4{grid-column:span 12}}
  .an-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
  .an-head h2{margin:0;font-size:13px;font-weight:600;letter-spacing:0;color:var(--txt)}
  .an-head .m{font-size:11.5px;color:var(--sub);margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
  .an-empty{font-size:12.5px;color:var(--sub);padding:18px 0;text-align:center}
  .an-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
  .an-tbl th{font-size:11px;font-weight:500;color:var(--sub);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap;position:static}
  .an-tbl td{padding:8px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}
  .an-tbl tr:last-child td{border-bottom:0}
  .an-tbl tbody tr:hover td{background:#fafaf8}
  .an-tbl th.n,.an-tbl td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
  .an-tbl td.mut{color:var(--sub);font-size:11.5px}
  .an-wrap{overflow-x:auto}
  /* 流入経路 構成比 */
  .an-share{display:grid;grid-template-columns:10px minmax(110px,160px) 1fr 36px 48px;align-items:center;gap:0 10px;font-size:12.5px}
  .an-share>*{padding:7px 0;border-bottom:1px solid var(--line2)}
  .an-share>.last{border-bottom:0}
  .an-sw{display:inline-block;width:10px;height:10px;border-radius:3px}
  .an-lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .an-bar2{display:block;height:6px;border-radius:3px;background:var(--line2);overflow:hidden}
  .an-bar2 i{display:block;height:100%;border-radius:3px}
  .an-n{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
  .an-p{text-align:right;font-variant-numeric:tabular-nums;color:var(--sub);font-size:11.5px}
  /* ランキング */
  .an-rank{display:grid;grid-template-columns:22px 30px minmax(90px,140px) 1fr 40px minmax(90px,auto);align-items:center;gap:0 10px;font-size:12.5px}
  .an-rank>*{padding:6px 0;border-bottom:1px solid var(--line2)}
  .an-rank>.last{border-bottom:0}
  .an-rank .r{font-variant-numeric:tabular-nums;color:var(--faint);text-align:right;font-size:12px}
  .an-rank .r.top{color:var(--txt);font-weight:600}
  .an-rank .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .an-rank .bar{display:block;position:relative;height:6px;border-radius:3px;background:var(--line2);overflow:hidden}
  .an-rank .bar i{position:absolute;top:0;bottom:0}
  .an-rank .t{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
  .an-rank .sub{font-size:11px;color:var(--sub);white-space:nowrap;font-variant-numeric:tabular-nums}
  .an-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--sub);margin-top:8px}
  .an-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:5px}
  .an-legend i.h{height:6px;border-radius:3px}
  /* ヒートマップ */
  .an-heat td.c{text-align:center;font-variant-numeric:tabular-nums;min-width:44px}
  .an-heat td.c[data-h]{background:rgba(42,120,214,calc(var(--h)*.28))}
  .an-heat td.c.z{color:var(--faint)}
  .an-heat th.rot{text-align:center}
  /* 提出明細 */
  .an-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
  .an-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
  .an-time{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--txt)}
  .an-time small{color:var(--sub);margin-right:4px}
  /* キャストバナー(2026-09-12オーナー指示: アイコンを名前の左の丸ではなく、エリア内で大きく使う。ランキング画像の流儀) */
  .cbn{--h:76px;--iw:calc(var(--h)*1.6);display:grid;grid-template-columns:44px minmax(0,1fr) var(--iw);align-items:stretch;min-height:var(--h);border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;margin:6px 0}
  .cbn .rk{display:flex;align-items:center;justify-content:center;font-weight:900;font-style:italic;font-size:19px;background:#f3f4f1;color:var(--sub);letter-spacing:-.02em}
  .cbn .rk small{font-size:10px;font-style:normal;margin-left:1px;align-self:center;margin-top:4px}
  .cbn.top1 .rk{background:var(--acc-fill);color:#fff}.cbn.top2 .rk{background:#17181a;color:#fff}.cbn.top3 .rk{background:#8a8f84;color:#fff}
  .cbn .bd{padding:6px 12px;display:flex;flex-direction:column;justify-content:center;min-width:0;gap:2px}
  .cbn .nm{font-weight:900;font-size:19px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15}
  .cbn .sub{font-size:11.5px;color:var(--sub);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cbn .bar{display:block;position:relative;height:5px;border-radius:3px;background:var(--line2);overflow:hidden;max-width:220px}
  .cbn .bar i{position:absolute;top:0;bottom:0}
  /* 画像: 右端に帯の高さと同じ正方形で原寸表示(切り取り・ぼかし・フェード無し。2026-09-12「ぼかしはださい」差し戻し) */
  .cbn .im{width:var(--iw);min-height:var(--h);align-self:stretch;background:#eceee6 center/cover no-repeat;clip-path:polygon(24% 0,100% 0,100% 100%,0 100%)}   /* 左端を斜めに切る(2026-09-12オーナー指示: ランキングバナー風) */
  .cbn .im.ph{display:flex;align-items:center;justify-content:center;font-weight:900;font-size:24px;color:var(--accent);background:var(--info-bg)}
  .cbn.sm{--h:60px;grid-template-columns:36px minmax(0,1fr) var(--iw)}.cbn.sm .nm{font-size:15px}.cbn.sm .rk{font-size:15px}.cbn.sm .sub{font-size:11px}
  .cbn .sub{line-height:1.35}
  .ktbl .kbimg{width:48px;height:48px;border-radius:6px;object-fit:cover;background:#f0f1f4;display:block}   /* 正方形=切り取りなし */
  .ktbl .kbimg-t{width:84px;height:48px;border-radius:6px;background:var(--info-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
  /* 予約カレンダー(2026-09-12): 1か月を縦2列(1〜15日 / 16日〜末日)。行は薄く、予約はキャスト名チップで並べる */
  .an-cal{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px 10px;margin-bottom:16px}
  .an-cal-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
  .an-cal-head h2{margin:0;font-size:13px;font-weight:600}
  .an-cal-head .ym{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;min-width:84px;text-align:center}
  .an-cal-head button.nav{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--sub);padding:2px 8px;font-size:12px;line-height:1.4;box-shadow:none}
  .an-cal-head button.nav:hover{color:var(--txt);border-color:var(--line2);background:#fafaf8}
  .an-cal-head .an-legend{margin:0 0 0 auto}
  .an-cal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
  @media(max-width:760px){.an-cal-grid{grid-template-columns:1fr}}
  .an-cal-day{display:grid;grid-template-columns:40px 1fr;align-items:start;gap:6px;min-height:21px;padding:1px 4px;border-bottom:1px solid var(--line2);border-radius:6px;cursor:pointer}
  .an-cal-day:hover{background:#fafaf8}
  .an-cal-day.sel{background:#fff4ec;outline:1px solid #f8c9a8}
  .an-cal-day.past{opacity:.55}
  .an-cal-day.today .d{color:#fff;background:var(--accent);border-radius:6px}
  .an-cal-day .d{font-size:11px;font-variant-numeric:tabular-nums;color:var(--txt);padding:1px 4px;line-height:1.3;white-space:nowrap;align-self:start;margin-top:2px}
  .an-cal-day .d small{color:var(--sub);margin-left:2px;font-size:10px}
  .an-cal-day.sat .d small{color:#2a78d6}.an-cal-day.sun .d small{color:#e34948}
  .an-cal-day.today .d small{color:rgba(255,255,255,.85)}
  .an-cal-day .chips{display:flex;flex-wrap:wrap;gap:2px 3px;padding:2px 0;min-height:17px}
  .an-cal-chip{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;line-height:1;padding:2px 6px 2px 4px;border-radius:999px;background:#f3f4f6;color:var(--txt);white-space:nowrap;max-width:120px}
  .an-cal-chip span{overflow:hidden;text-overflow:ellipsis}
  .an-cal-chip i{width:6px;height:6px;border-radius:50%;flex:none}
  .an-cal-chip.work{background:#eaf2fd}.an-cal-chip.req{background:#fdeee6}.an-cal-chip.guest{background:#f1f1ef}
  .an-cal-chip small{color:var(--sub);font-size:10px;font-variant-numeric:tabular-nums}
  .an-cal-chip.more{background:transparent;color:var(--sub);padding-left:2px}
  .an-cal-chip .f{font-size:9px;color:#3d4661;background:#eceff5;border-radius:4px;padding:0 3px;line-height:1.4}
  .kdot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#d3d7de;margin-right:5px;vertical-align:1px}
  .kdot.onn{background:#34c759}
  .ksw{flex:none;width:46px;height:28px;border-radius:999px;background:#e3e5ea;position:relative;cursor:pointer;transition:background .18s;border:none;padding:0}
  .ksw.on{background:#34c759}
  .ksw::after{content:'';position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .18s}
  .ksw.on::after{left:20px}
  .ksw:hover:not(:disabled){background:#d7dae0}
  .ksw.on:hover:not(:disabled){background:#2fb350}
  .ksw:disabled{opacity:.5;cursor:default}
  .kcm2{font-size:12.5px;line-height:1.45;min-height:24px;text-align:left;color:var(--sub)}
  .kcmview{display:flex;align-items:center;gap:6px;cursor:pointer;border-radius:8px;padding:3px 6px;margin-left:-6px}
  .kcmview:hover{background:#f3f4f6}
  .kcmtx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt)}
  .kcmedit{flex:none;background:none;border:none;padding:2px;font-size:12px;color:#c3c8d0;cursor:pointer;line-height:1}
  .kcmview:hover .kcmedit{color:var(--accent)}
  .kcmadd{background:none;border:1px dashed #d3d7de;border-radius:8px;color:var(--faint);font:inherit;font-size:12px;padding:4px 10px;cursor:pointer}
  .kcmadd:hover{border-color:var(--accent);color:var(--accent);background:var(--info-bg)}
  .kcmrow{display:flex;align-items:center;gap:6px}
  .kcmrow input{flex:1;min-width:0;font:inherit;font-size:12.5px;padding:6px 9px;border:1.5px solid var(--accent);border-radius:9px;box-sizing:border-box;box-shadow:0 0 0 3px rgba(59,91,253,.12)}
  .kcmok,.kcmng{flex:none;width:26px;height:26px;border-radius:50%;border:none;font-size:12px;font-weight:800;cursor:pointer;padding:0;line-height:1}
  .kcmok{background:var(--success-bg);color:var(--ok)}
  .kcmok:hover{background:#d3efe0}
  .kcmng{background:#f0f1f4;color:var(--sub)}
  .kcmng:hover{background:#e4e6eb}
  .kcmsaved{flex:none;font-size:11px;font-weight:700;color:var(--ok);animation:kcmfade 1.4s forwards}
  @keyframes kcmfade{0%,70%{opacity:1}100%{opacity:0}}
  .ktbl th:last-child{text-align:left}
  #roleTable input[type=checkbox],#empBody input[type=checkbox]{transform:scale(1.15);accent-color:var(--accent)}
  /* 権限マトリクス: ページ列は等幅(内容依存のauto layoutだと列幅が不揃いになる) */
  #roleTable{table-layout:fixed;width:100%;min-width:660px}
  #roleTable th:first-child,#roleTable td:first-child{width:118px}
  #roleTable th.gcell{white-space:normal;line-height:1.25;padding:6px 2px}
  #empBody select{min-width:84px;padding:6px 8px}
  #empBody select[data-none="1"]{color:var(--faint);border-color:var(--line2);background:#fafbfc}
  #empBody select[data-none="0"]{color:var(--txt);border-color:#c9d2f7}
  /* 社員給与メモ */
  .spn-store{margin:20px 0 8px;font-family:var(--mono);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
  .spn-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px 16px;margin-bottom:10px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
  .spn-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  .spn-name{font-weight:700;font-size:15px;color:var(--txt)}
  .spn-tag{font-size:12px;color:var(--sub)}
  .spn-card textarea{margin-top:10px;font-size:13px;line-height:1.7;min-height:72px;resize:vertical}
  .spn-foot{display:flex;align-items:center;gap:10px;margin-top:8px}
  .spn-foot button:disabled{opacity:.4;cursor:default}
  .spn-upd{font-size:12px;color:var(--sub)}
  .spn-addbar{display:flex;align-items:center;gap:8px;margin:4px 0 14px;flex-wrap:wrap}
  .spn-addbar select{width:auto;min-width:200px}
  .spn-del{margin-left:auto;font-size:12px;background:none;border:none;color:var(--faint);cursor:pointer;text-decoration:underline}
  .spn-del:hover{color:var(--danger);background:none}
  /* スタッフ報酬(2026-09-11) */
  .stp-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 14px}
  .stp-kpi .k{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
  .stp-kpi .k span{display:block;font-size:11px;color:var(--sub);margin-bottom:2px}
  .stp-kpi .k b{font-size:18px;font-weight:700;letter-spacing:-.01em}
  /* overflow-x:autoの内側容器では汎用th(sticky top:52px)が先頭行に被る(従業員テーブルと同じ事故)→固定を外す */
  .stp-tbl th{position:static !important;top:auto !important}
  .stp-tbl td.num,.stp-tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
  .stp-tbl tr.dim td{color:var(--faint)}
  .stp-tbl .stp-nm{font-weight:700}
  .stp-tbl .stp-pos{font-size:11px;color:var(--sub);display:block}
  .stp-tbl .stp-ops{white-space:nowrap}
  .stp-tbl .stp-ops button{padding:4px 9px;font-size:12px;margin-right:4px}
  .stp-pill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:#f3f4f6;color:var(--sub);white-space:nowrap}
  .stp-pill.warn{background:#fff4e5;color:#9a5b00}
  .stp-pill.auto{background:#eef6ff;color:#1d4ed8}
  .stp-pill.manual{background:#ecfdf5;color:#047857}
  .stp-noterow td{background:#fafafa}
  .stp-noterow textarea{width:100%;min-height:64px;font-size:13px;line-height:1.6;resize:vertical}
  .stp-noterow .foot{display:flex;gap:10px;align-items:center;margin-top:6px}
  .stp-map{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:4px}
  .stp-map select{width:auto;min-width:180px;font-size:12px;padding:4px 6px}
  .stp-box{max-width:520px;width:100%;text-align:left;max-height:92vh;overflow:auto}
  .stp-modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
  .ps-days{width:100%;border-collapse:collapse;font-size:11px;margin-top:6px}
  .ps-days th,.ps-days td{border-bottom:1px solid #eee;padding:3px 4px;text-align:right;white-space:nowrap}
  .ps-days th{color:var(--sub);font-weight:600;text-align:right}
  .ps-days th:first-child,.ps-days td:first-child,.ps-days th:nth-child(2),.ps-days td:nth-child(2){text-align:left}
  /* 出勤画像エディタ */
  .ap-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}
  .ap-bar select{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
  .ap-bar button{padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--txt);cursor:pointer}
  .ap-bar button:hover:not(:disabled){background:#f6f7f9}
  .ap-bar button:disabled{opacity:.45;cursor:default}
  .ap-warn{margin:8px 0;padding:8px 12px;border-radius:8px;background:var(--warning-bg);color:#92580a;font-size:13px}
  .ap-ed{display:flex;gap:14px;align-items:flex-start;margin-top:10px}
  .ap-stage-wrap{flex:1;min-width:0;background:#585460;border-radius:10px;padding:14px;overflow:auto;max-height:80vh}
  .ap-side{width:272px;flex:none;display:flex;flex-direction:column;gap:8px}
  .ap-props{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:8px;font-size:13px}
  .ap-props label{display:flex;align-items:center;gap:6px;justify-content:space-between;white-space:nowrap}
  .ap-props input[type=text]{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--line);border-radius:6px}
  .ap-props input[type=number]{width:74px;padding:5px;border:1px solid var(--line);border-radius:6px}
  .ap-props input[type=range]{flex:1}
  .ap-props select{flex:1;min-width:0;padding:5px;border:1px solid var(--line);border-radius:6px}
  .ap-props button{padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--txt);cursor:pointer}
  .ap-props button.on{background:var(--info-bg);border-color:var(--accent)}
  .ap-pt{font-weight:600}
  .ap-actrow{display:flex;gap:8px}
  .ap-lyh{display:flex;align-items:center;gap:4px;font-weight:600;font-size:13px}
  .ap-lyh .sp{flex:1}
  .ap-lyh button{padding:3px 7px;font-size:12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--txt);cursor:pointer}
  #apLayers{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:auto;max-height:38vh}
  .ap-lrow{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--line2);cursor:pointer;font-size:13px}
  .ap-lrow:last-child{border-bottom:none}
  .ap-lrow.sel{background:var(--info-bg)}
  .ap-lrow .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ap-lrow button{border:none;background:none;color:var(--sub);cursor:pointer;padding:2px;font-size:12px}
  .ap-ly{cursor:move}
  /* シフトボード */
  .sfb-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 14px}
  .sfb-pnav{display:flex;align-items:center;gap:8px}
  .sfb-pnav button{background:#fff;border:1px solid #d7dae0;color:var(--txt);
        width:34px;height:34px;padding:0;border-radius:9px;font-size:17px;line-height:1}
  .sfb-pnav button:hover:not(:disabled){background:#f6f7f9}
  .sfb-pnav select{width:auto;min-width:130px;font-weight:600;padding:8px 10px}
  .sfb-vtog{margin-left:auto;display:inline-flex;background:#eff1f4;border-radius:10px;padding:3px}
  .sfb-vtog button{background:transparent;border:0;border-radius:8px;color:var(--sub);font-weight:600;padding:7px 16px;font-size:13px}
  .sfb-vtog button.on{background:#fff;color:var(--txt);box-shadow:0 1px 3px rgba(16,24,40,.12);font-weight:700}
  .sfb-wrap{width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
  table.sfb-tbl{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}
  table.sfb-tbl th,table.sfb-tbl td{padding:2px 2px;border-bottom:1px solid var(--line2);border-right:1px solid #f6f7f9;
        text-align:center;white-space:normal;overflow:hidden;vertical-align:middle;line-height:1.2}
  table.sfb-tbl th{position:static;background:#fbfbfc;color:var(--faint);font-weight:600}
  .sfb-catc{width:54px} .sfb-nmc{width:15%;min-width:56px;text-align:left;padding-left:8px}
  .sfb-cntc{width:40px}
  .sfb-dh{font-size:11px;line-height:1.15} .sfb-dh .wd{display:block;font-size:9px;color:var(--faint)}
  .sfb-dh.sat{color:#2563eb} .sfb-dh.sun{color:#db2777}
  .sfb-cnt-row td{background:#fafbfc;font-size:11px;color:var(--sub)}
  .sfb-cnt-row .lbl{text-align:right;padding-right:8px;color:var(--faint)}
  .sfb-cnt-row .n{font-weight:700;color:var(--accent)}
  .sfb-nm{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sfb-tag{display:inline-block;font-size:9px;padding:1px 6px;border-radius:6px;white-space:nowrap}
  .sfb-tag.cast{background:var(--info-bg);color:var(--accent)}
  .sfb-tag.staff{background:var(--success-bg);color:var(--ok)}
  .hm-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.hm-head .muted{font-size:11.5px}.hm-head .status{margin-left:auto}
  .sfb-hm{display:block;font-size:8.5px;font-weight:800;letter-spacing:-.03em;line-height:1.1;white-space:nowrap}.sfb-hm.tbd{color:#c2570a}
  td.hm-cell{padding:3px 1px !important;line-height:1.25;vertical-align:middle}
  td.hm-cell.w{cursor:pointer}td.hm-cell.w:hover{outline:2px solid rgba(255,106,18,.45);outline-offset:-2px}
  td.hm-cell .t{display:block;font-size:10.5px;font-weight:700;color:var(--txt)}
  td.hm-cell .s{display:block;font-size:8.5px;font-weight:800;margin-top:1px;letter-spacing:-.03em;white-space:nowrap}
  td.hm-cell.free{background:#fff8f0;box-shadow:inset 0 0 0 1px #f3c79a}td.hm-cell.free .s{color:#c2570a}
  td.hm-cell.other{opacity:.55}
  td.hm-cell.mine{box-shadow:inset 0 -3px 0 var(--acc-fill)}
  .hm-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--sub);margin-top:8px}
  .hm-pick{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
  .hm-pick button{flex:1 1 110px}
  td.sfb-cell{cursor:pointer}
  td.sfb-cell.on{background:var(--info-bg);color:var(--accent);font-weight:700}
  td.sfb-cell:hover{outline:2px solid rgba(59,91,253,.4);outline-offset:-2px}
  tr.sfb-unsub td{background:#fef5f5!important}
  tr.sfb-unsub .sfb-nm{color:#b91c1c}
  .sfb-unsub-cell{text-align:center}
  .sfb-unsub-chip{display:inline-block;font-size:11px;font-weight:600;color:#b91c1c;line-height:1;
        background:var(--danger-bg);border:1px solid #f5c6c6;border-radius:999px;padding:4px 14px}
  .sfb-out{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}   /* 出力は8列固定(2026-09-12オーナー指示。旧auto-fillは6列になっていた) */
  @media(max-width:1100px){.sfb-out{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
  .sfb-day{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
  .sfb-day h4{margin:0 0 8px;font-size:13px;display:flex;justify-content:space-between;align-items:baseline}
  .sfb-day h4 .cnt{font-size:11px;color:var(--faint)}
  .sfb-day.sat h4{color:#2563eb} .sfb-day.sun h4{color:#db2777}
  .sfb-slot{display:flex;justify-content:space-between;gap:6px;font-size:12px;padding:4px 0;border-top:1px solid var(--line2)}
  .sfb-slot .who{font-weight:600} .sfb-slot .tm{color:var(--sub);font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:11px}
  .sfb-day .none{color:var(--faint);font-size:12px;padding:4px 0}
  dialog.sfb-modal{border:0;padding:0;background:transparent;color:var(--txt);max-inline-size:min(100% - 32px, 720px);
    opacity:0;transform:translateY(6px) scale(.98);
    transition:opacity .16s ease, transform .16s ease, overlay .16s allow-discrete, display .16s allow-discrete}
  dialog.sfb-modal[open]{opacity:1;transform:none}
  @starting-style{ dialog.sfb-modal[open]{opacity:0;transform:translateY(6px) scale(.98)} }
  dialog.sfb-modal::backdrop{background:rgba(22,24,29,.4)}
  @supports (backdrop-filter:blur(1px)){ dialog.sfb-modal::backdrop{backdrop-filter:blur(2px)} }
  .sfb-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;width:320px;max-width:100%;box-shadow:0 12px 40px rgba(16,24,40,.14)}
  .sfb-box h3{margin:0 0 4px;font-size:16px} .sfb-box .sub{color:var(--sub);font-size:12px;margin-bottom:14px}
  .sfb-box .row{display:flex;gap:8px;margin:10px 0}
  .sfb-box .row label{margin:0;align-self:center;min-width:52px}
  .sfb-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);z-index:9997;
        background:#16181d;color:#fff;border:none;padding:11px 20px;border-radius:12px;
        font-size:13px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;box-shadow:0 8px 24px rgba(16,24,40,.25)}
  .sfb-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .hide{display:none}
}
@layer base{
  :where(button,a,select,input,textarea,summary,[role=button],.sfb-cell){touch-action:manipulation}
  :where(button,a[href],select,input,textarea,[tabindex],.sfb-cell,.adjbtn,.sns-open,.sns-click,nav a):focus-visible{
    outline:2px solid var(--accent); outline-offset:2px}
  :where(button,.adjbtn,.sns-open,nav a,.seg button):active:not(:disabled){transform:translateY(1px)}
  h1{text-wrap:balance}
  .muted{text-wrap:pretty}
  .sidebar{padding-block-end:max(18px, env(safe-area-inset-bottom))}
  .content{padding-inline:clamp(16px, 3.4vw, 34px); padding-block-end:max(90px, env(safe-area-inset-bottom))}
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{transition-duration:.01ms !important; animation-duration:.01ms !important}
    ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
  }
}
@layer utilities{
  @media (max-width:760px){
    .app{flex-direction:column}
    .sidebar{position:static; inline-size:100%; block-size:auto; flex:none;
      overflow-x:auto; -webkit-overflow-scrolling:touch;
      border-inline-end:0; border-block-end:1px solid var(--line); padding-block:8px}
    nav{flex-direction:row; gap:6px}
    .navgrp{flex-direction:row}
    .navsec{display:none}
    .brand{display:none}
    .uchip{margin:0 0 8px;padding:7px 10px}
    .uchip .umeta small{display:none}
    .content{max-inline-size:100%}
  }
  th,td{font-variant-numeric:tabular-nums}
  .num,td.num{text-align:right}
  #resBody td:nth-child(n+3){text-align:right;font-family:var(--mono);font-size:12px}
  @supports selector(:has(a)){
    .issue:has(.sev.ERROR){background:var(--danger-bg)}
  }
  @supports (view-transition-name:none){
    ::view-transition-old(root),::view-transition-new(root){animation-duration:.16s}
  }
}
/* ===== YouTube 切り抜き(2026-10-01)。罫線区切り・NIGHT OPS の色はそのまま。10/1 オーナー指摘「どこに何があるか分かりづらい」→番号付き3ステップ+モバイルはカード表示 ===== */
.yt-step{display:flex;align-items:center;gap:10px;margin:18px 0 8px;flex-wrap:wrap}.yt-step:first-child{margin-top:4px}
.yt-step b{font-size:15px}.yt-no{width:24px;height:24px;border-radius:50%;background:var(--btn);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800;flex:none}
@media (max-width:760px){
  #view-youtube h1{font-size:22px}
  .yt-urlrow{flex-direction:column}.yt-urlrow input{font-size:16px}.yt-urlrow button{width:100%}
  .yt-presets{grid-template-columns:1fr}
  .yt-submitrow{flex-direction:column;align-items:stretch}#ytStart{width:100%;padding:14px;font-size:16px}
  .yt-sechead{gap:8px}
}
.yt-runner{margin:12px 0 0;padding:8px 12px;border:1px solid var(--line);border-left:4px solid var(--line2);font-size:12.5px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.yt-runner.on{border-left-color:#1b7f3b}.yt-runner.off{border-left-color:#c62828;background:#fff7f7}
.yt-runner .dot{width:9px;height:9px;border-radius:50%;background:#c62828;display:inline-block;margin-right:6px}.yt-runner.on .dot{background:#1b7f3b}
.yt-sec{margin-top:22px;border-top:1px solid var(--line);padding-top:12px}
.yt-sechead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}.yt-sechead b{font-size:15px}
.yt-compose{display:flex;flex-direction:column;gap:12px}
.yt-urlrow{display:flex;gap:8px}.yt-urlrow input{flex:1;padding:12px 14px;font-size:15px;border:1.5px solid var(--line2);border-radius:8px;background:#fff;color:var(--txt);font-family:var(--mono)}
.yt-urlrow input:focus{outline:none;border-color:var(--accent)}
.yt-preview{min-height:0}.yt-preview .pv{display:flex;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--line)}
.yt-preview .pv img{width:128px;height:72px;object-fit:cover;background:#eee;flex:none}
.yt-preview .pv .t{font-weight:800;font-size:14px;line-height:1.35}.yt-preview .pv .c{font-size:12px;color:var(--sub);margin-top:3px}
.yt-preview .pv.err{color:#c62828;border-color:#f3c9c9;background:#fff7f7}.yt-preview .pv.warn{border-color:#f0d9a6;background:#fffaf0}
.yt-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.yt-pcard{border:1.5px solid var(--line2) !important;border-radius:6px !important;padding:10px 12px !important;cursor:pointer;background:#fff !important;text-align:left;font-family:inherit;color:var(--txt) !important;box-shadow:none !important;font-weight:400 !important;letter-spacing:0 !important;height:auto !important;line-height:1.4 !important}
.yt-pcard.on{border-color:var(--accent) !important;box-shadow:inset 0 0 0 1px var(--accent) !important}.yt-pcard.na{opacity:.55;cursor:not-allowed}
.yt-pcard .n{font-weight:800;font-size:14px;display:flex;justify-content:space-between;align-items:center}.yt-pcard .n small{font-size:10px;color:var(--faint);letter-spacing:.1em}
.yt-pcard .f{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.yt-pcard .f span{font-size:11px;padding:2px 7px;border:1px solid var(--line);color:var(--sub)}.yt-pcard .f span.y{color:#1b7f3b;border-color:#bfe3c9;background:#f2fbf4}
.yt-pcard .d{font-size:11px;color:var(--faint);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yt-submitrow{display:flex;align-items:center;gap:12px}#ytStart{padding:10px 22px;font-size:14px;font-weight:800}
/* ---- YouTube 切り抜き: レイアウト再設計(2026-10-04 オーナー指示「どこがどの項目か分からない・ページ内スクロールが壊れている・レスポンシブ」)
   表(横スクロール)をやめ、項目名つきのグリッドにする。折り返しは「その欄の実幅」で決める(container query。サイドバーの開閉に左右されない) */
#view-youtube{min-width:0}#view-youtube *{min-width:0}
.yt-l{display:block;font-size:10px;letter-spacing:.14em;color:var(--faint);font-weight:800;margin-bottom:5px;white-space:nowrap}
.yt-f{display:flex;flex-direction:column;align-items:stretch}
.yt-f input[type=text],.yt-f input[type=number],.yt-f select{width:100%;box-sizing:border-box;padding:7px 10px;font-size:13px;height:36px}
.yt-ck{display:flex;align-items:center;gap:8px;font-size:13px;height:36px;cursor:pointer}.yt-ck input{width:18px;height:18px;flex:none;margin:0}
.yt-f :disabled,.yt-ck:has(:disabled){opacity:.4;cursor:not-allowed}
.yt-in{display:flex;align-items:center;gap:8px}.yt-in input{width:76px !important;flex:none}.yt-in .muted{font-size:11.5px;line-height:1.3}
.yt-hint{font-size:11.5px;margin-top:5px}
.yt-opts input[type=text]{width:100%;box-sizing:border-box;padding:9px 12px;font-size:13.5px}
.yt-stepbtn{margin-left:auto;white-space:nowrap}
.yt-pop *{min-width:0}.yt-pop code{overflow-wrap:anywhere;word-break:break-all}
.yt-pop{position:fixed;inset:0;z-index:1150;background:rgba(23,24,26,.38);align-items:flex-start;justify-content:center;overflow:auto;padding:36px 16px}
.yt-popbox{background:#fdfdfc;border:1px solid var(--line2);width:min(1040px,100%);padding:18px 22px 22px;box-shadow:0 18px 50px rgba(16,24,40,.22)}
.yt-pophead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}.yt-pophead b{font-size:16px}.yt-pophead .sp{flex:1}
@media (max-width:640px){.yt-pop{padding:0}.yt-popbox{min-height:100%;border:none;padding:14px 14px 20px}}
.yt-submitrow{margin-top:2px}
#ytJobs,#ytPresets,.yt-new{container-type:inline-size}
.yt-jl{border-top:1px solid var(--line)}
.yt-job{border-bottom:1px solid var(--line);padding:14px 2px}.yt-job.open{background:#fcfcf9}
.yt-jg{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,.9fr) minmax(0,.8fr) auto;gap:10px 18px;align-items:start}
.yt-jv{display:flex;gap:12px;align-items:flex-start}.yt-jv img{width:112px;aspect-ratio:16/9;object-fit:cover;background:#eee;flex:none}
.yt-jv .t{font-weight:800;font-size:13.5px;line-height:1.4;overflow-wrap:anywhere}.yt-jv .c{font-size:11.5px;color:var(--sub);margin-top:4px}
.yt-jc{font-size:12.5px;line-height:1.5;overflow-wrap:anywhere}.yt-jc .v{font-weight:700}.yt-jc .muted{font-size:11.5px}
.yt-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.yt-chips span{font-size:10.5px;padding:1px 6px;border:1px solid var(--line);color:var(--sub);white-space:nowrap}
.yt-ja{display:flex;flex-direction:column;gap:6px;align-items:stretch}.yt-ja button{white-space:nowrap}
.yt-jnote{margin-top:10px;padding:8px 12px;border-left:3px solid var(--line2);background:#f7f8f4;font-size:12px;color:var(--sub);overflow-wrap:anywhere}
.yt-jnote.err{border-left-color:#c62828;background:#fff7f7;color:#c62828}
.yt-job .yt-detail{margin-top:12px;border:1px solid var(--line)}
.yt-pl{border-top:1px solid var(--line)}
.yt-pre{border-bottom:1px solid var(--line);padding:16px 2px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;align-items:end}
.yt-pg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}
.yt-pg .s2{grid-column:span 2}.yt-pg .s3{grid-column:span 3}
.yt-pa{display:flex;gap:8px}.yt-pa button{white-space:nowrap}
#view-youtube code{overflow-wrap:anywhere;word-break:break-all}
#ytFilterSeg{flex-wrap:wrap;max-width:100%}#ytFilterSeg button{flex:0 1 auto}
.yt-sechead .status{white-space:nowrap}
@container (max-width:980px){
  .yt-jg{grid-template-columns:repeat(4,minmax(0,1fr))}
  .yt-jv{grid-column:1/-1}
  .yt-ja{grid-column:1/-1;flex-direction:row;justify-content:flex-end}
  .yt-pre{grid-template-columns:minmax(0,1fr)}.yt-pa{justify-content:flex-end}
}
@container (max-width:620px){
  .yt-jg{grid-template-columns:repeat(2,minmax(0,1fr))}
  .yt-jv img{width:96px}
  .yt-ja{justify-content:stretch}.yt-ja button{flex:1}
  .yt-pg{grid-template-columns:repeat(2,minmax(0,1fr))}.yt-pg .s3{grid-column:1/-1}
  .yt-pa button{flex:1}
  .yt-detail .cols{grid-template-columns:1fr}
}
@container (max-width:330px){
  .yt-pg{grid-template-columns:minmax(0,1fr)}.yt-pg .s2,.yt-pg .s3{grid-column:1/-1}
}
.yt-st{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.04em;padding:3px 9px;border:1px solid var(--line2);white-space:nowrap}
.yt-st.queued{color:var(--sub)}.yt-st.running,.yt-st.canceling{color:#b45309;border-color:#f0d9a6;background:#fffaf0}.yt-st.done{color:#1b7f3b;border-color:#bfe3c9;background:#f2fbf4}.yt-st.failed{color:#c62828;border-color:#f3c9c9;background:#fff7f7}.yt-st.canceled{color:var(--faint)}
.yt-prog{height:6px;background:var(--line2);margin-top:6px;width:100%;overflow:hidden}.yt-prog i{display:block;height:100%;background:var(--acc-fill);transition:width .6s}
.yt-steps{display:flex;gap:3px;margin-top:8px;max-width:220px}.yt-steps i{height:4px;flex:1;background:var(--line2)}.yt-steps i.d{background:#1b7f3b}.yt-steps i.c{background:var(--acc-fill);animation:ytblink 1.2s infinite alternate}@keyframes ytblink{to{opacity:.35}}
.yt-msg{font-size:11.5px;color:var(--sub);margin-top:5px}
.yt-detail{background:#fbfcf8;border-top:1px solid var(--line);padding:14px 16px}
.yt-detail .cols{display:grid;grid-template-columns:260px 1fr;gap:18px}
.yt-tl{font-size:12px}.yt-tl div{padding:4px 0;border-left:2px solid var(--line2);padding-left:10px;color:var(--sub)}.yt-tl div b{color:var(--txt);font-family:var(--mono);font-weight:600;margin-right:6px}
.yt-log{font-family:var(--mono);font-size:11px;white-space:pre-wrap;background:#1c1d21;color:#d8dbd0;padding:10px 12px;max-height:220px;overflow:auto;margin-top:10px}
.yt-outs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}.yt-out{border:1px solid var(--line);padding:8px 10px;font-size:12px;background:#fff}
.yt-out .h{font-weight:800;display:flex;justify-content:space-between;gap:8px}.yt-out .h a{font-weight:600}.yt-out .p{margin-top:6px;color:var(--sub);white-space:pre-wrap;line-height:1.45}
.yt-out .ab{display:flex;gap:6px;margin-top:6px}.yt-out .ab button{font-size:11px;padding:3px 8px}
.yt-ptbl td{vertical-align:middle}.yt-ok{color:#1b7f3b;font-weight:800}.yt-ng{color:#c62828;font-weight:800}

/* ===== SNS管理(2026-10-02) ===== */
.sm-form{border:1px solid var(--line);padding:12px 14px;margin:0 0 12px;background:#fff}
.sm-frow{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}.sm-frow label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--sub)}
.sm-frow input[type=text]{min-width:260px;padding:8px 10px;font-size:14px}.sm-frow select{padding:8px 10px;font-size:13px}
.sm-plat{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.04em;padding:3px 8px;border:1px solid var(--line2)}
.sm-plat.youtube{color:#c4302b}.sm-plat.tiktok{color:#111}.sm-plat.instagram{color:#c13584}.sm-plat.x{color:#000}
.xf-btn{all:unset;cursor:pointer;display:inline-block;text-align:right;line-height:1.35;padding:2px 4px;border-bottom:1px dotted var(--line2)}.xf-btn:hover{background:#f4f6ef}.xf-btn:focus-visible{outline:2px solid var(--accent)}
.sm-num{font-variant-numeric:tabular-nums;font-weight:800}.sm-d{font-size:11px;font-weight:700}.sm-d.up{color:#1b7f3b}.sm-d.down{color:#c62828}.sm-d.flat{color:var(--faint)}
.sm-spark{width:140px;height:34px;display:block}
.sm-detail{background:#fbfcf8;border-top:1px solid var(--line);padding:14px 16px}
/* SNS管理 再設計(2026-10-05): 広告運用と同じ文法(透かしヒーロー/英字小見出し/1px罫線)+アイコン付きの高密度な行リスト。1行=約54px */
.sm2-top{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap}.sm2-top h1{margin:0}
.sm2-run{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;color:var(--sub);white-space:nowrap;flex-wrap:wrap}
.sm2-run .dot{width:8px;height:8px;border-radius:50%;background:#c62828;display:inline-block}.sm2-run.on .dot{background:#1b7f3b}
.sm2-run b{color:var(--txt);font-weight:800}
.sm2-acts{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sm2-acts button{margin:0}
#smHero{margin-top:14px}
.dh-hero.sm2-hero::before{content:"SNS"}
.dh-hero.sm2-hero.dh-hero-wide{align-items:flex-start;height:auto}
.sm2-hero .cap{font-size:11.5px;color:var(--sub);margin-top:6px}
.sm2-hero.dh-hero-wide>div{padding:0 20px}.sm2-hero.dh-hero-wide>div:first-child{padding-left:0;padding-right:26px}
.sm2-hero .ads-stat .v{font-size:20px}
.sm2-pf .dh-en{display:flex;align-items:center;gap:6px}
.sm2-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.sm2-bar{margin:14px 0 10px}
.sm2-list{border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}
.sm2-list{--ops:150px}.sm2-list.ro{--ops:100px}
.sm2-row{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(92px,.9fr) minmax(150px,1.25fr) minmax(92px,.9fr) 116px 84px var(--ops);gap:4px 14px;align-items:center;padding:7px 14px;border-top:1px solid var(--line2);min-height:54px}
.sm2-list>.sm2-row:first-child{border-top:0}
.sm2-row.hd{min-height:0;padding:7px 14px;background:#fbfbf8}
.sm2-row.hd span{font-size:9.5px;font-weight:800;letter-spacing:.08em;color:var(--faint);text-align:right;white-space:nowrap}
.sm2-row.hd span:first-child,.sm2-row.hd span.c{text-align:left}
.sm2-row.open{background:linear-gradient(180deg,#fff6ef,#fff 85%)}
.sm2-acc{display:flex;align-items:center;gap:11px;min-width:0}
.sm2-av{position:relative;flex:none;width:40px;height:40px}
.sm2-av img,.sm2-av .ph{width:40px;height:40px;border-radius:50%;object-fit:cover;display:block;border:1px solid var(--line);background:#f1f1ee;box-sizing:border-box}
.sm2-av .ph{display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;color:#fff;border:0}
.sm2-av .ph[hidden]{display:none}
.sm2-av .pf{position:absolute;right:-4px;bottom:-3px;width:18px;height:18px;border-radius:50%;border:2px solid #fff;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:900;color:#fff;letter-spacing:0;line-height:1}
.sm2-pfc.youtube{background:#ff0033}.sm2-pfc.tiktok{background:#111}.sm2-pfc.instagram{background:linear-gradient(45deg,#f58529,#dd2a7b 55%,#8134af)}.sm2-pfc.x{background:#000}
.sm2-nm{min-width:0}.sm2-nm .t{font-weight:800;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm2-nm .c{font-size:11px;color:var(--sub);margin-top:2px;display:flex;gap:3px 8px;align-items:center;flex-wrap:wrap}
.sm2-nm .c a{color:var(--sub);text-decoration:none}.sm2-nm .c a:hover{text-decoration:underline}
.sm2-m{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.sm2-m b{display:block;font-size:15px;font-weight:900;letter-spacing:-.01em}
.sm2-m .d{display:block;font-size:10.5px;margin-top:1px}.sm2-m .d .sm-d{font-size:10.5px}
.sm2-m i{display:none;font-style:normal;font-size:9.5px;color:var(--faint);font-weight:800;letter-spacing:.06em}
.sm2-sp svg{width:116px;height:30px;display:block}
.sm2-when{font-size:11px;color:var(--sub);white-space:nowrap}
.sm2-ops{display:flex;gap:4px;justify-content:flex-end;white-space:nowrap}
.sm2-ops button{margin:0;padding:4px 9px;font-size:11.5px}
.sm2-tag{font-size:10px;font-weight:800;border:1px solid var(--line);border-radius:4px;padding:0 6px;color:var(--txt);background:#fff;white-space:nowrap}
.sm2-tag.err{color:#c62828;border-color:#efc4c4;background:#fff7f7;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.sm2-tag.wait{color:#b06a00;border-color:#f0d9b0;background:#fffaf0}
.sm2-det{border-top:1px solid var(--line2)}.sm2-det .sm-detail{border-top:0}
.sm2-det .sm-thumb{width:44px;height:44px}.sm2-det .sm-ptbl td{padding:5px 8px}.sm2-det .sm-ptbl th{padding:6px 8px}.sm2-det .sm-kpis{gap:0;border:1px solid var(--line);background:#fff;margin-bottom:12px}.sm2-det .sm-kpis div{border:0;border-left:1px solid var(--line);background:none}.sm2-det .sm-kpis div:first-child{border-left:0}
.sm2-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.sm2-sec .sm-form{margin-bottom:10px}
.sm2-sh{margin-top:30px;align-items:center}.sm2-sh .sm2-shr{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sm2-sh .sm2-shr button{margin:0;padding:5px 11px;font-size:12px}
.sm2-igs>.muted{margin-top:8px}
#igsSec{container-type:inline-size}
.sm2-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
@container (max-width:1240px){.sm2-two{grid-template-columns:1fr}}
.sm2-igs .pagetbl td,.sm2-igs .pagetbl th{padding:6px 8px}.sm2-igs .pagetbl button{margin:0;padding:4px 9px;font-size:11.5px}.sm2-igs .pagetbl{width:100%}
.sm2-two>div,.sm2-igs>div{min-width:0}
@media(max-width:1000px){.sm2-row{grid-template-columns:minmax(0,1fr) repeat(3,minmax(78px,auto));row-gap:8px}.sm2-row.hd{display:none}.sm2-sp,.sm2-when{display:none}.sm2-ops{grid-column:1/-1;justify-content:flex-start}.sm2-m i{display:block}.sm2-charts{grid-template-columns:1fr}}
@media(max-width:640px){.sm2-row{grid-template-columns:repeat(3,minmax(0,1fr))}.sm2-acc{grid-column:1/-1}.sm2-m{text-align:left}}
/* 広告運用(2026-10-05 再々設計): ダッシュボードと同じ文法=透かし入りヒーロー / 英字の小見出し / 太い数字 / 1px 罫線。箱の羅列と太線はやめる */
.ads-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin:16px 0 18px}
/* 店舗管理(コックピット 2026-10-06): 情報密度を上げたインフォグラフィック。3列の盤面+上段の数字帯。区切りは罫線 */
.so-datebar{display:flex;align-items:center;gap:6px}.so-datebar b{font-variant-numeric:tabular-nums;min-width:120px;text-align:center;font-size:14px}
.so-datebar button{padding:5px 10px;border-radius:8px;font-size:12px}
.so-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.9fr) minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden;margin-top:4px}
@media(max-width:1280px){.so-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.so-kpi.wide{grid-column:span 2}}
.so-kpi{padding:11px 14px 10px;border-left:1px solid var(--line);min-width:0;position:relative}
.so-kpi:first-child{border-left:0}
.so-kpi .l{font-size:9.5px;font-weight:800;letter-spacing:.14em;color:var(--faint);white-space:nowrap}
.so-kpi .v{font-size:clamp(17px,1.5vw,24px);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:3px;white-space:nowrap;line-height:1.1;overflow:hidden;text-overflow:ellipsis}
.so-kpi .v small{font-size:11px;font-weight:700;color:var(--sub);margin-left:3px;letter-spacing:0}
.so-kpi .d{font-size:11px;color:var(--sub);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:4px;align-items:center}
.so-kpi.acc .v{color:var(--accent)}
.so-spark{display:flex;align-items:flex-end;gap:3px;height:26px;margin-top:6px}
.so-spark i{flex:1;background:#e7e7e2;border-radius:2px 2px 0 0;min-height:2px;position:relative}
.so-spark i.last{background:var(--acc-fill)}
.so-spark i b{position:absolute;left:0;right:0;top:100%;margin-top:2px;font-size:8px;color:var(--faint);text-align:center;font-weight:700;line-height:1}
.so-kpi .spk{padding-bottom:12px}
.so-dots{display:flex;gap:4px;margin-top:6px;padding-bottom:10px}
.so-dots i{flex:1;height:9px;border-radius:3px;background:#e7e7e2;position:relative}
.so-dots i b{position:absolute;left:0;right:0;top:100%;margin-top:2px;font-size:8px;color:var(--faint);text-align:center;font-weight:700;line-height:1}
.so-dots i.na{background:repeating-linear-gradient(45deg,#ecece8 0 3px,#f7f7f3 3px 6px)}
.so-dots i.ok{background:#3b9a5a}.so-dots i.wait{background:#e0b23a}.so-dots i.ng{background:var(--danger)}
.so-board{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.95fr);gap:14px;margin-top:14px;align-items:start}
@media(max-width:1280px){.so-board{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.so-col3{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:860px){.so-board,.so-col3{grid-template-columns:1fr}}
.so-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.so-panel{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden;min-width:0}
.so-ph{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:#fbfbf8}
.so-ph b{font-size:13px;font-weight:900}.so-ph i{font-style:normal;font-size:9px;letter-spacing:.2em;color:var(--faint);font-weight:900}.so-ph span{margin-left:auto;font-size:11px;color:var(--sub);white-space:nowrap}
.so-ava{width:26px;height:26px;border-radius:50%;background:#eee center/cover no-repeat;display:inline-flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:800;color:#fff;overflow:hidden;flex:none}
.so-ava.lg{width:34px;height:34px;font-size:13px}
.so-tag{font-size:9px;font-weight:800;border-radius:20px;padding:1px 6px;background:#f1f1ee;color:var(--sub);white-space:nowrap;line-height:1.5}
.so-tag.hm{background:#eef3ff;color:#2d4f8a}.so-tag.help{background:#fff2e6;color:#b4520a}.so-tag.ng{background:#fde8ea;color:var(--danger)}.so-tag.late{background:#fff6d6;color:#8a6500}.so-tag.ok{background:#e8f6ec;color:#1f7a3a}
/* 出勤タイムライン(ガント) */
.so-gantt{padding:4px 0 6px}
.so-gh{display:grid;grid-template-columns:150px minmax(0,1fr);padding:2px 12px 4px}
.so-ticks{position:relative;height:14px;font-size:9px;color:var(--faint);font-variant-numeric:tabular-nums}
.so-ticks span{position:absolute;transform:translateX(-50%)}
.so-grow{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;padding:0 12px;height:30px;border-top:1px solid var(--line2)}
.so-grow.off .so-nm{opacity:.45;text-decoration:line-through}
.so-nm{display:flex;align-items:center;gap:7px;min-width:0;font-size:12.5px;font-weight:800}
.so-nm b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.so-lane{position:relative;height:20px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/9 - 1px),var(--line2) calc(100%/9 - 1px),var(--line2) calc(100%/9))}
.so-lane i{position:absolute;top:4px;bottom:4px;border-radius:3px;background:linear-gradient(90deg,#ffb27a,var(--acc-fill));display:flex;align-items:center;padding:0 7px;font-size:9.5px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.so-lane i.off{background:#cfcfca}.so-lane i.hm{background:linear-gradient(90deg,#9db6e6,#4f7bc7)}
.so-lane i.ng{background:repeating-linear-gradient(45deg,#f3b4bb 0 6px,#e68a95 6px 12px);color:#7a1e28}.so-lane i.late{background:linear-gradient(90deg,#f6d77a,#d9a600);color:#4a3600}
.so-lane em{position:absolute;top:-1px;bottom:-1px;width:0;border-left:1.5px dashed rgba(242,92,5,.55)}
.so-ticks em{position:absolute;top:-3px;transform:translateX(-50%);font-size:8.5px;font-style:normal;font-weight:900;color:var(--accent);letter-spacing:.04em;font-variant-numeric:tabular-nums;line-height:1.2}
.so-ticks em::after{content:"";display:block;width:0;height:0;margin:1px auto 0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid var(--accent)}
.so-gn{font-size:9px;color:var(--faint);padding:4px 12px 0;display:flex;gap:12px;flex-wrap:wrap}
.so-gn i{display:inline-block;width:12px;height:8px;border-radius:2px;vertical-align:-1px;margin-right:4px}
/* 来店予約カード */
.so-rv{display:grid;grid-template-columns:52px 34px minmax(0,1fr) auto;gap:0 10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line2)}
.so-panel .so-rv:first-of-type{border-top:0}
.so-rv.cancel>*{opacity:.4}.so-rv.cancel .t{text-decoration:line-through}
.so-rv .t{font-size:17px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.so-rv .who{min-width:0}.so-rv .who b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-rv .who small{display:block;font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-rv .pp{display:flex;align-items:center;gap:2px}.so-rv .pp i{width:8px;height:12px;border-radius:4px 4px 2px 2px;background:var(--acc-fill);display:inline-block}
.so-rv .pp small{font-size:10px;color:var(--sub);margin-left:4px;font-variant-numeric:tabular-nums}
.so-rv .memo{grid-column:3/5;font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
/* 写真指名 */
.so-roster{display:flex;flex-wrap:wrap;gap:4px;padding:8px 12px;border-bottom:1px solid var(--line2)}
.so-roster .so-ava{width:28px;height:28px;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line)}
.so-roster .so-ava.hot{box-shadow:0 0 0 2px #fff,0 0 0 3px var(--acc-fill)}
.so-vote{display:grid;grid-template-columns:30px 84px minmax(0,1fr) 72px;align-items:center;gap:8px;padding:5px 12px;border-top:1px solid var(--line2)}
.so-vote b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-vote .bar{height:12px;border-radius:3px;background:#f1f1ee;overflow:hidden;display:flex}
.so-vote .bar i{height:100%;background:var(--acc-fill)}.so-vote .bar i.b2{background:#ffc69c}
.so-vote .n{text-align:right;font-weight:900;font-variant-numeric:tabular-nums;font-size:13px}.so-vote .n small{font-weight:700;color:var(--faint);font-size:9px;margin-left:2px}
/* 内勤チェック(リング) */
.so-rings{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:4px;padding:10px 10px 6px}
.so-nk{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 10px;align-items:start;padding:8px 12px;border-top:1px solid var(--line2)}
.so-panel .so-nk:first-of-type{border-top:0}
.so-nk svg{width:44px;height:44px}
.so-nk .hd{display:flex;align-items:baseline;gap:8px;min-height:18px}.so-nk .hd b{font-size:12.5px}.so-nk .hd small{font-size:10.5px;color:var(--sub);font-variant-numeric:tabular-nums}.so-nk .hd .ok{margin-left:auto}
.so-nk .items{display:flex;flex-wrap:wrap;gap:3px 8px;margin-top:3px;font-size:11px;color:var(--sub)}
.so-nk .items span::before{content:"□ ";color:var(--faint)}.so-nk .items .more{color:var(--faint)}.so-nk .items .done{color:#1f7a3a}.so-nk .items .done::before{content:"✓ ";color:#1f7a3a}
.so-ring{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
.so-ring svg{width:50px;height:50px}.so-ring .lbl{font-size:10.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.so-ring .n{font-size:9.5px;color:var(--sub);font-variant-numeric:tabular-nums}
.so-open{padding:0 12px 10px;font-size:11px;color:var(--sub);display:flex;flex-wrap:wrap;gap:3px 9px}
.so-open span::before{content:"□ ";color:var(--faint)}.so-open .more{color:var(--faint)}
/* 終業報告・LINE・入金 */
.so-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.so-nums>div{padding:8px 12px;border-left:1px solid var(--line2);border-top:1px solid var(--line2)}
.so-nums>div:nth-child(3n+1){border-left:0}.so-nums>div:nth-child(-n+3){border-top:0}
.so-nums .l{font-size:9px;font-weight:800;letter-spacing:.12em;color:var(--faint)}.so-nums .v{font-size:17px;font-weight:900;font-variant-numeric:tabular-nums;margin-top:1px;white-space:nowrap}
.so-txt{padding:8px 12px;font-size:11.5px;line-height:1.6;border-top:1px solid var(--line2)}
.so-txt .k{display:inline-block;min-width:60px;font-size:9.5px;font-weight:800;letter-spacing:.08em;color:var(--faint)}
.so-bk{display:grid;grid-template-columns:62px minmax(0,1fr) 96px 20px;gap:8px;align-items:center;padding:6px 12px;border-top:1px solid var(--line2);font-size:12px}
.so-bk .amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}
.so-bk .d{font-weight:800;font-variant-numeric:tabular-nums}.so-bk .w{font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-bk .st{width:12px;height:12px;border-radius:50%;background:#3b9a5a;display:inline-block}.so-bk .st.wait{background:#e0b23a}.so-bk .st.ng{background:var(--danger)}.so-bk .st.na{background:#cfcfca}
.so-lr{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 12px;border-top:1px solid var(--line2);font-size:11.5px}
.so-lr .t{font-weight:800;font-variant-numeric:tabular-nums}.so-lr .x{color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-empty{padding:14px 12px;color:var(--faint);font-size:12px}
.so-warn{margin:8px 12px 0;padding:6px 10px;border-left:3px solid var(--danger);background:#fff7f7;color:var(--danger);font-size:11.5px}
.ads-ctl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ads-ctl .yt-l{margin:0}.ads-ctl.ads-r{margin-left:auto}
#adsBody{container-type:inline-size}
.dh-hero.ads-hero::before{content:"ADS"}
#adsBody .dh-gauge i{background:linear-gradient(90deg,#ff8a3d,var(--acc-fill))}
.dh-hero.ads-hero.dh-hero-wide{align-items:flex-start}
.ads-hero .cap{font-size:11.5px;color:var(--sub);margin-top:6px}
.ads-stat .v{font-size:22px;font-weight:900;font-variant-numeric:tabular-nums;margin-top:5px;white-space:nowrap;letter-spacing:-.01em}
.ads-stat .j{font-size:11px;color:var(--sub);margin-top:2px;white-space:nowrap}
.ads-sec{margin-top:32px}
.ads-sh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:0 2px 9px;border-bottom:1px solid var(--line)}
.ads-sh b{font-size:15px;font-weight:900}.ads-sh span{font-size:11.5px;color:var(--sub);margin-left:auto}
.ads-box{border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;background:#fff;overflow:hidden}
.ads-stores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.ads-store{padding:16px 18px 15px;border-left:1px solid var(--line);cursor:pointer;position:relative;min-width:0;transition:background .15s}
.ads-store:first-child{border-left:0}.ads-store:hover{background:#fdfcf9}
.ads-store::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:transparent}
.ads-store.sel{background:linear-gradient(180deg,#fff6ef,#fff 70%)}.ads-store.sel::before{background:var(--acc-fill)}
.ads-store.dim>*{opacity:.42}
.ads-store:focus-visible{outline:2px solid var(--acc-fill);outline-offset:-2px}
.ads-store .n{display:flex;align-items:center;gap:8px;min-height:22px}.ads-store .n b{font-size:17px;font-weight:900;letter-spacing:-.01em}
.ads-live{font-size:9.5px;font-weight:800;color:var(--accent);background:var(--accent-soft,#fdeee3);border-radius:20px;padding:2px 8px;white-space:nowrap}
.ads-live.off{color:var(--faint);background:#f1f1ee}
.ads-store .a{font-size:10.5px;color:var(--faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ads-store .v{font-size:27px;font-weight:900;font-variant-numeric:tabular-nums;margin-top:12px;letter-spacing:-.02em}
.ads-store .v.z,.ads-z{color:var(--faint)}
.ads-store .dh-gauge{margin-top:8px;height:5px}
.ads-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 10px;margin-top:13px}
.ads-mini span{display:block;font-size:9.5px;font-weight:800;letter-spacing:.06em;color:var(--faint);white-space:nowrap}
.ads-mini b{display:block;font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;margin-top:2px;white-space:nowrap}
.ads-chart{padding:16px 12px 6px}
.ads-empty{padding:28px 14px;text-align:center;color:var(--sub);font-size:12.5px;line-height:1.9}
.ads-cr{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(110px,1.2fr) repeat(4,minmax(58px,.7fr));gap:6px 16px;align-items:center;padding:13px 18px;border-top:1px solid var(--line2)}
.ads-cr:first-child{border-top:0}
.ads-cr.hd{padding:8px 18px;background:#fbfbf8}.ads-cr.hd span{font-size:9.5px;font-weight:800;letter-spacing:.08em;color:var(--faint);text-align:right;white-space:nowrap}.ads-cr.hd span:first-child{text-align:left}
.ads-cr .nm{min-width:0}.ads-cr .nm .t{font-weight:800;font-size:13.5px;overflow-wrap:anywhere}
.ads-cr .nm .c{font-size:11px;color:var(--sub);margin-top:5px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.ads-tag{font-size:10px;font-weight:800;border:1px solid var(--line);border-radius:4px;padding:0 6px;color:var(--txt);background:#fff}
.ads-cr .sp b{font-size:15px;font-weight:900;display:block;text-align:right;font-variant-numeric:tabular-nums}.ads-cr .sp .dh-gauge{margin-top:5px;height:4px}
.ads-cr .m{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;white-space:nowrap}
.ads-cr .m i{display:none;font-style:normal;font-size:9.5px;color:var(--faint);font-weight:800;letter-spacing:.06em;margin-bottom:2px}
/* AI 分析: キャンペーン行の下に全幅(2026-10-05 再設計: 幅を使い切る 2 段組+内訳表。左にアクセントの縦線) */
.ads-ai{grid-column:1/-1;margin-top:8px;padding:16px 0 4px 18px;border-top:1px solid var(--line2);border-left:3px solid var(--acc-fill);min-width:0}
.ads-ai .ah{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap}.ads-ai .ah b{font-size:15px;font-weight:900}.ads-ai .am{font-size:10.5px;color:var(--faint);margin-left:auto}
.ads-ai .as{margin:9px 0 0;font-size:13px;line-height:1.85;color:var(--txt)}.ads-ai .as.nr{margin-top:6px;font-size:12.5px}
.ads-ai .at{margin-top:18px;padding-bottom:6px;border-bottom:1px solid var(--line);font-size:10.5px;font-weight:900;letter-spacing:.1em;color:var(--sub)}
.ads-ai .adg{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0 22px}
.ads-ai .adg>div{padding:11px 0;border-bottom:1px solid var(--line2);min-width:0}
.ads-ai .adg .t{display:flex;align-items:center;gap:8px}.ads-ai .adg .t b{font-size:12.5px;font-weight:800}.ads-ai .adg p{margin:5px 0 0;font-size:12px;line-height:1.75}
.ads-ai .a2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0 30px;align-items:start}.ads-ai .a2.dt{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.ads-ai .a2>div{min-width:0}
.ads-ai ol.aa{list-style:none;margin:0;padding:0}
.ads-ai ol.aa li{padding:12px 0;border-bottom:1px solid var(--line2)}
.ads-ai .aa .t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ads-ai .aa .t b{font-size:13.5px;font-weight:800}
.ads-ai .ap{font-size:9.5px;font-weight:800;border-radius:20px;padding:2px 8px;white-space:nowrap}
.ads-ai .ap.hi{background:var(--acc-fill);color:#fff}.ads-ai .ap.md{background:var(--accent-soft,#fdeee3);color:var(--accent)}.ads-ai .ap.lo{background:#f1f1ee;color:var(--sub)}
.ads-ai .aa dl,.ads-ai dl.ad{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 12px;margin:8px 0 0;font-size:12px;line-height:1.75}
.ads-ai dt{font-size:10px;font-weight:800;color:var(--faint);letter-spacing:.06em;white-space:nowrap;padding-top:2px}.ads-ai dd{margin:0}.ads-ai dd.tx{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--sub)}
.ads-ai dl.ad{margin-top:10px}
.ads-ai ul.af{margin:0;padding:0;list-style:none;font-size:12px;line-height:1.75}.ads-ai ul.af li{padding:9px 0 9px 14px;border-bottom:1px solid var(--line2);position:relative}
.ads-ai ul.af li::before{content:"";position:absolute;left:0;top:17px;width:5px;height:5px;border-radius:50%;background:var(--acc-fill)}.ads-ai ul.af.cv{color:var(--sub)}.ads-ai ul.af.cv li::before{background:var(--line)}
.ads-ai .axr{display:grid;grid-template-columns:minmax(0,1.5fr) 62px minmax(60px,1fr) 52px 62px 54px 46px;gap:0 10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line2);font-size:12px;font-variant-numeric:tabular-nums}
.ads-ai .axr span{text-align:right;white-space:nowrap}.ads-ai .axr span.l{text-align:left;font-weight:700;overflow:hidden;text-overflow:ellipsis}
.ads-ai .axr.hd span{font-size:9.5px;font-weight:800;color:var(--faint);letter-spacing:.04em}.ads-ai .axr.hd span:first-child{text-align:left}
.ads-ai .axr .b{display:flex;align-items:center;gap:6px}.ads-ai .axr .b i{display:block;height:6px;border-radius:3px;background:var(--acc-fill);flex:none;max-width:calc(100% - 34px)}.ads-ai .axr .b em{font-style:normal;font-size:11px;color:var(--sub)}
@container (max-width:860px){.ads-ai .a2,.ads-ai .a2.dt{grid-template-columns:minmax(0,1fr)}}
@container (max-width:520px){.ads-ai{padding-left:12px}.ads-ai .axr{grid-template-columns:minmax(0,1.4fr) 58px minmax(50px,1fr) 58px 44px}.ads-ai .axr span:nth-child(4),.ads-ai .axr span:nth-child(6){display:none}}
@container (max-width:520px){
  .ads-stores{grid-template-columns:1fr}.ads-store{border-left:0;border-top:1px solid var(--line)}.ads-store:first-child{border-top:0}}
@container (max-width:700px){
  .ads-cr{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px}.ads-cr .nm,.ads-cr .sp{grid-column:1/-1}.ads-cr.hd{display:none}
  .ads-cr .m{text-align:left}.ads-cr .m i{display:block}.ads-cr .sp b{text-align:left}}
@media (max-width:640px){.ads-ctl.ads-r{margin-left:0}}
.sm-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:12px}.sm-kpis div{border:1px solid var(--line);background:#fff;padding:8px 10px}
.sm-kpis span{display:block;font-size:10.5px;color:var(--faint);letter-spacing:.08em}.sm-kpis b{font-size:18px;font-variant-numeric:tabular-nums}
.sm-chart{width:100%;height:120px;display:block;background:#fff;border:1px solid var(--line);margin-bottom:12px}
.sm-ptbl td{vertical-align:middle}.sm-ptbl .t{font-weight:700;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-post{display:flex;gap:10px;align-items:center}.sm-thumb{flex:none;width:64px;height:64px;background:#eef0ea;border:1px solid var(--line);overflow:hidden;display:block}.sm-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.sm-phead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:8px 0 4px;flex-wrap:wrap}.sm-sort{display:inline-flex;gap:0}.sm-sort button{margin:0;padding:4px 10px;font-size:11.5px}.sm-sort button.on{background:#1e2235;color:#fff;border-color:#1e2235}
.sm-err{color:#c62828;font-size:11px}
.igs-lbl{font-size:11px;letter-spacing:.14em;color:var(--sub);margin:14px 0 4px}
.igs-prev img,.igs-prev video{width:54px;height:96px;object-fit:cover;border:1px solid var(--line);background:#eef0ea;display:block}
.igs-thumb{width:40px;height:70px;object-fit:cover;border:1px solid var(--line);background:#eef0ea;display:block}
.igs-days{display:inline-flex;gap:4px;flex-wrap:wrap}.igs-days label{display:inline-flex;align-items:center;gap:3px;font-size:12px;padding:3px 8px;border:1px solid var(--line2);cursor:pointer}.igs-days label.on{background:#1e2235;color:#fff;border-color:#1e2235}
.igs-medialist{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:flex-end}.igs-medialist .m{position:relative}.igs-medialist .m img{width:40px;height:70px;object-fit:cover;border:1px solid var(--line);display:block}.igs-medialist .m b{position:absolute;top:-6px;right:-6px;background:#c62828;color:#fff;border-radius:50%;width:16px;height:16px;font-size:10px;line-height:16px;text-align:center;cursor:pointer}
.igs-st{font-size:11px;font-weight:800;padding:2px 7px;border:1px solid var(--line2)}.igs-st.done{color:#1b7f3b}.igs-st.failed{color:#c62828}.igs-st.scheduled{color:#3b4fd6}.igs-st.claimed{color:#b06a00}.igs-st.canceled{color:var(--faint)}
@media (max-width:760px){
  #smList{overflow:hidden}.sm-tbl thead{display:none}.sm-tbl tr.sm-row{display:block;border:1px solid var(--line);margin:0 0 10px;padding:6px 0;background:#fff}
  .sm-tbl tr.sm-row td{display:block;padding:5px 12px !important;border:none !important;background:transparent !important}.sm-tbl tr.sm-drow td{display:block;padding:0 !important}
  .sm-ptbl .t{max-width:none;white-space:normal}
  .sm-thumb{width:56px;height:56px}
}



/* ============================================================
   NIGHT OPS 本番テーマ v1 (2026-08-04適用)
   白基調 / アクセント=視認性オレンジ / 背景アクセントはグレーのみ /
   ステッカー型ナビ / 丸カード+ハードシャドウ / redesign-mock.html準拠
   ============================================================ */
:root{
  --bg:#fafaf8; --panel:#ffffff; --card:#ffffff; --line:#ecede8; --line2:#f2f3ee;
  --txt:#17181a; --sub:#73766d; --faint:#a4a79c;
  --accent:#f25c05;            /* 視認性オレンジ */
  --acc-fill:#ff6a12; --acc-ink:#1c0e00;
  --btn:#17181a;
  --nsh:3px 3px 0 rgba(23,24,26,.85),0 10px 22px rgba(23,24,26,.10);
  --csh:0 2px 4px rgba(23,24,26,.05),0 12px 30px rgba(23,24,26,.08);
}
html{background:#fdfdfc}
body{background:transparent}
/* 背景グラフィック(グレーのみ・トーンオントーン) */
#noBg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;background:#fdfdfc}
#noBg .word{position:absolute;font-weight:900;letter-spacing:-.02em;color:#f7f8f4;white-space:nowrap;user-select:none}
#noBg .blob{position:absolute;background:#f8f9f5;border-radius:120px;transform:rotate(-14deg)}
#noBg .film{position:absolute;top:-6%;bottom:-6%;left:198px;width:92px;background:#fff;
  box-shadow:0 0 20px rgba(23,24,26,.03);transform:rotate(7deg);display:flex;flex-direction:column;gap:12px;padding:14px 13px}
#noBg .film::before,#noBg .film::after{content:"";position:absolute;top:0;bottom:0;width:9px;
  background:radial-gradient(circle at 50% 8px,#f3f4ef 3px,transparent 3.6px);background-size:9px 22px}
#noBg .film::before{left:2px}#noBg .film::after{right:2px}
#noBg .film i{flex:none;height:92px;border-radius:14px;background:#f6f7f3;color:#eceee7;
  display:grid;place-items:center;font-size:34px;font-style:normal;font-weight:900}
#noBg .film i.w{background:#fff;box-shadow:inset 0 0 0 2px #f7f8f4}
.shell{position:relative;z-index:1;background:transparent}
/* ---- サイドバー=ステッカー型 ---- */
.sidebar{background:transparent;border-right:none;padding:14px 10px 14px 14px;position:relative}
.sidebar::before{content:"CONSOLE";position:absolute;left:0;top:130px;writing-mode:vertical-rl;
  font-size:60px;font-weight:900;letter-spacing:.06em;color:#f6f7f3;z-index:-1;user-select:none}
.sidebar .brand,.sidebar .login{background:#fff;border-radius:16px;box-shadow:var(--nsh);padding:12px 14px}
.navsec{color:#b6b9ac;font-weight:900;letter-spacing:.3em;padding:16px 8px 6px}
nav a.parent{background:#fff;border-radius:999px;box-shadow:var(--nsh);margin:10px 0;height:46px;
  padding:0 16px;font-weight:900;font-size:13.5px;position:relative;white-space:nowrap;
  display:flex;align-items:center;transition:transform .13s ease}
nav a.parent:hover{transform:translateX(4px);background:#fff}
nav a.parent.open,nav a.parent.active{background:var(--acc-fill);color:#fff;transform:rotate(-2deg) translateX(5px);
  box-shadow:4px 4px 0 rgba(23,24,26,.9),0 14px 26px rgba(255,106,18,.4)}
nav a.parent.open .caret{color:#fff}
.subwrap{margin:2px 0 6px 14px}
nav a.sub{background:#fff;border-radius:999px;box-shadow:2px 2px 0 rgba(23,24,26,.5),0 6px 14px rgba(23,24,26,.08);
  margin:7px 0;padding:8px 16px;font-weight:800;white-space:nowrap;width:max-content;min-width:80%}
nav a.sub.active{background:var(--acc-fill);color:#fff;box-shadow:3px 3px 0 rgba(23,24,26,.85)}
/* ---- カード/コンテンツ ---- */
.content{position:relative;z-index:1}
.card{border:none;border-radius:20px;box-shadow:var(--csh);padding:16px 18px}
h1{font-weight:900;letter-spacing:-.01em}
.card h2{letter-spacing:.1em}
button,.ghost{border-radius:999px !important;font-weight:800}
/* 既定ボタン=グレー(真っ黒チップは重い、とのオーナー指摘 2026-08-04) */
button:not(.ghost):not(.adjbtn):not(.swb){background:#eceee6;color:var(--txt)}
button:not(.ghost):not(.adjbtn):not(.swb):hover:not(:disabled){background:#e2e5da}
button.warn{background:var(--acc-fill) !important;border-color:var(--acc-fill) !important;color:#fff !important}
.seg{border-radius:999px;overflow:hidden}
.seg button{border-radius:999px !important}
.seg button.on,.seg button.active{background:var(--acc-fill) !important;color:#fff !important}
.tabs button.on{background:var(--acc-fill);color:#fff}
.pill{border-radius:999px}
.adjwrap{border:none;border-radius:16px;box-shadow:var(--csh)}
th{background:#f6f7f3}
dialog{border-radius:20px}
.banner{border-radius:14px}
a{color:var(--accent)}
input,select{border-radius:10px}
/* KPI/ダッシュボード専用 */
.dh-hero{background:linear-gradient(160deg,#fff 30%,#fff4ec);border-radius:22px;box-shadow:var(--csh);
  padding:20px 24px;position:relative;overflow:hidden}
.dh-hero::before{content:"SALES";position:absolute;right:-12px;bottom:-30px;font-size:104px;font-weight:900;
  color:rgba(242,92,5,.09);letter-spacing:-.03em}   /* 塗りつぶし(中抜きNG 2026-08-04) */
.dh-en{font-size:10px;letter-spacing:.32em;color:var(--sub);font-weight:900}
.dh-hero-wide{display:flex;align-items:center;flex-wrap:wrap;row-gap:18px}
.dh-hero-wide>div{padding:0 26px;min-width:0}
.dh-hero-wide>div:first-child{padding-left:0}
.dh-hero-wide>div+div{border-left:1px solid var(--line)}
@media(max-width:900px){.dh-hero-wide>div+div{border-left:none;padding-left:0}}
.dh-note-c{cursor:pointer}
.dh-note-c .t{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dh-note-c.open .t{display:block;-webkit-line-clamp:unset}
.dh-note-c .m{font-size:10px;font-weight:800;color:var(--faint)}
.dh-note-c.open .m .lbl::after{content:"たたむ ▴"}
.dh-note-c:not(.open) .m .lbl::after{content:"全文 ▾"}
.dh-v{font-size:clamp(30px,3vw,52px);font-weight:900;letter-spacing:-.02em;margin-top:6px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.dh-kpi{background:#fff;border-radius:20px;box-shadow:var(--csh);padding:16px 18px}
/* 推移チャート(2026-09-16 再設計): 店舗 | 棒 | 数値列 の3列グリッド。数値は棒に被らず右端で縦に揃う */
.gt{display:grid;grid-template-columns:36px minmax(0,1fr) auto;column-gap:9px;row-gap:5px;align-items:center}
.gt-mh{grid-column:1/-1;display:flex;align-items:center;gap:7px;margin-top:9px}
.gt-mh.first{margin-top:2px}
.gt-mon{font-size:10px;letter-spacing:.18em;font-weight:900;color:var(--sub)}
.gt-live{font-size:9px;font-weight:800;color:var(--accent);background:var(--accent-soft,#fdeee3);border-radius:20px;padding:1px 8px}
.gt-legend{font-size:8.5px;font-weight:700;color:#8a93a3;letter-spacing:.04em;margin-left:auto;display:flex;align-items:center;gap:4px;white-space:nowrap}
.gt-legend i{display:inline-block;width:12px;height:6px;border-radius:3px;background:#5b6068}
.gt-legend i.p{background:#5b6068;opacity:.22}
.gt-st{font-size:9.5px;font-weight:800;color:var(--faint);text-align:right;white-space:nowrap}
.gt-bar{position:relative;height:8px;min-width:0}
.gt-bar i{position:absolute;left:0;top:0;height:8px;border-radius:4px;display:block}
.gt-bar .gt-track{opacity:.2}
.gt-val{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;line-height:1;display:flex;align-items:baseline;justify-content:flex-end;gap:5px}
.gt-val b{font-weight:800;color:var(--ink,#17181a)}
.gt-val.past b{font-weight:700;color:#3d4249}
.gt-val .gt-proj{font-size:10px;font-weight:700;color:#8a93a3}
.dh-kpi .v{font-size:30px;font-weight:900;margin-top:5px;font-variant-numeric:tabular-nums}
.dh-store{border-radius:20px;overflow:hidden;box-shadow:var(--csh);background:#fff}
/* カードのホバー浮遊は廃止(2026-08-18オーナー指示: 動くのは不要。クリック可を示すのはボタン側) */
.dh-store .art{height:205px;position:relative}
.dh-store .logo{position:absolute;left:16px;top:12px;font-size:22px;font-weight:900;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.4)}
/* 写真カードの白抜き指標(2026-08-25): 下部スクリムの上に白タイポ。ラベルは白72%・値は白100%+シャドウ */
.dh-store .artmeta{position:absolute;left:16px;right:150px;bottom:12px;color:#fff;text-shadow:0 1px 10px rgba(8,10,14,.55)}
.dh-artbtn{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;font-size:11px;font-weight:800;
  padding:7px 13px;border-radius:99px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-shadow:0 1px 6px rgba(0,0,0,.4)}
.dh-artbtn:hover{background:rgba(255,255,255,.3)}
.dh-store .artmeta .dh-en{color:rgba(255,255,255,.72)}
.dh-gauge{height:7px;border-radius:99px;background:rgba(23,24,26,.08);overflow:hidden}
.dh-gauge i{display:block;height:100%;background:linear-gradient(90deg,#ff8a3d,var(--acc-fill));border-radius:99px}
/* ---- P0-1: フィルタ/セグの選択言語を統一(非選択=淡・選択=オレンジ) ---- */
.seg{background:transparent !important;border:none !important;display:flex;flex-wrap:wrap;gap:6px}
.seg button:not(.on):not(.active){background:#fff !important;color:var(--sub) !important;box-shadow:inset 0 0 0 1.5px var(--line) !important}
.seg button:not(.on):not(.active):hover{color:var(--txt) !important;box-shadow:inset 0 0 0 1.5px var(--line2) !important}
.tabs button:not(.on){background:#fff !important;color:var(--sub) !important;box-shadow:inset 0 0 0 1.5px var(--line)}
/* ---- P0-4: 「開いている」と「現在地」を分離 ---- */
nav a.parent.open:not(.active){background:#fff;color:var(--txt);transform:none;
  box-shadow:var(--nsh);outline:2.5px solid #ffcdae;outline-offset:-2.5px}
nav a.parent.open:not(.active) .caret{color:var(--accent)}
/* ---- P1-7: ネイティブ部品のテーマ化 ---- */
select,input[type=text],input[type=number],input[type=month],input[type=password],input[type=search]{
  appearance:none;-webkit-appearance:none;background:#fff;border:1.5px solid var(--line);border-radius:999px;
  padding:7px 14px;font-weight:700;color:var(--txt);font-family:inherit;font-size:12.5px}
select{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M1 1l4 4 4-4" stroke="%2373766d" stroke-width="1.8" fill="none" stroke-linecap="round"/></svg>');
  background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}
select:focus,input:focus{outline:none;border-color:var(--accent)}
/* P1-6: 一覧内セレクトは通常時テキスト風・ホバー/フォーカスで編集可視化 */
td select{border-color:transparent;background-color:transparent;background-image:none;padding:4px 10px;border-radius:8px}
td select:hover,td select:focus{border-color:var(--line2);background-color:#fff;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M1 1l4 4 4-4" stroke="%2373766d" stroke-width="1.8" fill="none" stroke-linecap="round"/></svg>');background-repeat:no-repeat;background-position:right 8px center;padding-right:24px}
input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}
input[type=file]{border:none;background:transparent;font-weight:700;color:var(--sub)}
input[type=file]::file-selector-button{border:none;border-radius:999px;background:#eceee6;color:var(--txt);
  font-weight:800;padding:8px 18px;margin-right:12px;cursor:pointer;font-family:inherit}
/* ---- P1-9: 区分/状態系の中立ピル(選択言語のオレンジと分離) ---- */
.pill.p-guar{background:var(--line2) !important;color:var(--sub) !important}
.pill.p-plan{background:#efe7f8 !important;color:#7a3bab !important}   /* 月給+歩合プラン */
/* ---- P1-10: 警告階層の色距離を確保 ---- */
:root{--danger:#cf1f2e;--err:#cf1f2e}
/* ---- P2-13: 明細カードをセンタリング ---- */
#psView{display:flex;flex-direction:column;align-items:center}
/* 明細の寸法統一(2026-08-04): flex中央寄せ下でmax-widthのみだと中身の文字量で幅が縮む→幅固定。
   備考の有無で高さが揺れないようbikoに最低高さも確保 */
.ps-sheet{width:440px;max-width:100%;box-sizing:border-box}
.ps-biko{min-height:44px}
/* ---- P2-17: ナビをコンテンツより前面に ---- */
.sidebar{z-index:5}
/* ---- モバイル拡大率の統一(2026-08-04) ----
   1) text-size-adjust: Android Chromeのフォントブースト(ブロック単位の自動文字拡大)を停止。
      これが画面ごとに倍率が違って見える主因
   2) overflow-x:clip: 幅広テーブルがレイアウトビューポートを押し広げて
      ページ全体が縮小表示されるのを禁止(横に広い表は各コンテナ内でスクロール) */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{overflow-x:clip;max-width:100%}
.shell{max-width:100vw}
/* 従業員テーブル(2026-08-26修正): overflow-x:autoの内側スクロール容器は、汎用thの
   sticky(top:52px)と衝突し「箱の中で52px下に吸着→1行目を覆う+ページ固定が効かない」
   実害を起こしていた。方針(2026-08-18: 内側スクロールを作らない=ページごと横スクロール)に
   統一。width:fit-contentでカード枠がテーブル幅を包む(列は潰さない) */
#empBasic,#empSns{overflow:visible;width:fit-content;min-width:100%;margin-top:16px;
  border:1px solid var(--line);border-radius:12px;background:#fff}
#empBasic .pagetbl{margin-top:0;white-space:nowrap;min-width:1080px}
/* ============================================================
   デザイン監査 第2弾 (2026-08-04) — ZZZベンチマーク準拠 A1〜D6
   ============================================================ */
/* ---- A2前提: ナビ文字は黒(汎用 a{color:accent} の波及を遮断。オレンジは現在地の背景のみ) ---- */
nav a{color:var(--txt)}
/* ---- A1: ナビアイコン=線画SVG(currentColor継承。現在地は文字色と同じ白になる) ---- */
nav a.parent .ic{position:static;display:inline-flex;align-items:center;justify-content:center;
  width:19px;height:19px;flex:0 0 19px;margin-right:10px;font-size:0;line-height:0;
  filter:none;opacity:1;transform:none}
nav a.parent .ic svg{width:100%;height:100%;display:block}
/* ---- A2: オレンジ=現在地とCTA限定。破壊的操作は赤 / 進捗は無彩色 ---- */
button.warn{background:var(--danger) !important;border-color:var(--danger) !important;color:#fff !important}
.dh-gauge i{background:linear-gradient(90deg,#4a4d44,#17181a)}
/* ---- B1: 見出し階層 = 大見出し + EN小ラベル ---- */
h1{font-size:27px;letter-spacing:-.02em;line-height:1.15}
h1::after{display:block;content:"";font-size:9.5px;letter-spacing:.34em;color:var(--faint);
  font-weight:900;margin-top:4px;-webkit-text-stroke:0}
#view-employees h1::after{content:"EMPLOYEES"}
#view-ads h1::after{content:"AD PERFORMANCE"}
#view-storeops h1::after{content:"STORE OPS"}
#view-shifts h1::after{content:"SHIFT"}
#view-adjustments h1::after{content:"ADJUSTMENTS"}
#view-payroll h1::after{content:"PAYROLL"}
#view-guarantees h1::after{content:"GUARANTEE"}
#view-specialpay h1::after{content:"SPECIAL PAY"}
#view-payslip h1::after{content:"PAYSLIP"}
#view-withholding h1::after{content:"WITHHOLDING"}
#view-bank h1::after{content:"BANK DATA"}
#view-payconfig h1::after{content:"CONFIG"}
#view-staffpay h1::after{content:"STAFF PAY"}
#view-settings h1::after{content:"SETTINGS"}
#view-kinicasts h1::after{content:"PHOTO PICK / CASTS"}
#view-kinivotes h1::after{content:"PHOTO PICK / VOTES"}
#view-kinirank h1::after{content:"PHOTO PICK / ANALYTICS"}
#view-kinisettings h1::after{content:"PHOTO PICK / FORM"}
#view-notify h1::after{content:"NOTIFY"}
/* ---- B4: 各ページ右上の背景タイポ透かし(ダッシュボードのSALES透かしを全ページへ展開) ---- */
.content section{position:relative}
.content section::before{position:absolute;right:-6px;top:-16px;font-weight:900;font-size:74px;
  letter-spacing:-.03em;color:rgba(23,24,26,.045);   /* 塗りつぶし(中抜きNG 2026-08-04) */
  pointer-events:none;user-select:none;z-index:-1;content:"";white-space:nowrap}
#view-employees::before{content:"EMPLOYEES"}
#view-shifts::before{content:"SHIFT"}
#view-adjustments::before{content:"ADJUST"}
#view-payroll::before{content:"PAYROLL"}
#view-guarantees::before{content:"GUARANTEE"}
#view-specialpay::before{content:"SPECIAL"}
#view-payslip::before{content:"PAYSLIP"}
#view-withholding::before{content:"TAX"}
#view-bank::before{content:"BANK"}
#view-payconfig::before{content:"CONFIG"}
#view-staffpay::before{content:"STAFF"}
#view-settings::before{content:"SETTINGS"}
#view-notify::before{content:"NOTIFY"}
#view-kinicasts::before,#view-kinivotes::before,#view-kinirank::before,#view-kinisettings::before{content:"PHOTO PICK"}
/* ---- B3: 補足文の可読サイズ ---- */
.muted{font-size:12.5px}
/* テーブル内のmutedは折返し禁止(.muted{text-wrap:pretty}が職種「キャスト」を縦1文字に折っていた) */
td .muted{text-wrap:nowrap;white-space:nowrap}
/* ---- C1: 余白リズムを8pxグリッドへ ---- */
.card{margin:16px 0;padding:16px 20px}
h1{margin-bottom:2px}
/* ---- C2: 一覧テーブルの行高・セル余白を統一 ---- */
.pagetbl th{padding:10px 12px}
.pagetbl td{padding:9px 12px}
/* ---- C3: KPIカードの高さを揃える ---- */
.dh-kpi{box-sizing:border-box;height:100%}
.dh-hero{box-sizing:border-box;height:100%}
/* ---- C4: 広い画面でコンテンツ幅に上限 ---- */
.content>section{max-width:1240px;margin-inline:auto}
/* ---- D1: 影の階層整理(立体は現在地だけ・非選択はフラット+極薄影) ---- */
nav a.parent{box-shadow:0 1px 2px rgba(23,24,26,.07),0 5px 14px rgba(23,24,26,.06);
  outline:1px solid var(--line);outline-offset:-1px;margin:8px 0}
nav a.parent.active{box-shadow:4px 4px 0 rgba(23,24,26,.9),0 14px 26px rgba(255,106,18,.4);outline:none}
nav a.parent.open:not(.active){box-shadow:0 1px 2px rgba(23,24,26,.07),0 5px 14px rgba(23,24,26,.06)}
nav a.sub{box-shadow:0 1px 2px rgba(23,24,26,.05),0 3px 10px rgba(23,24,26,.05);
  outline:1px solid var(--line);outline-offset:-1px}
nav a.sub.active{box-shadow:3px 3px 0 rgba(23,24,26,.85);outline:none}
.sidebar .brand,.sidebar .login{box-shadow:var(--csh)}
/* ---- D2: サブメニューのはみ出しを1段までに制限 ---- */
nav a.sub{max-width:calc(100% + 12px);overflow:hidden;text-overflow:ellipsis}
/* ---- D3: テーブルの行ハイライト統一(ゼブラ+ホバー) ---- */
.pagetbl tbody tr:nth-child(even) td{background:#fbfcf8}
.pagetbl tbody tr:hover td,.adjtbl tbody tr:hover td{background:#f4f6ef}
/* ---- D4: 背景フィルム帯をさらに淡く(コンテンツ背後のノイズ抑制) ---- */
#noBg .film{opacity:.5}
/* ---- D5(廃止 2026-08-12): 台形タブは全廃。セグメントの文法はRams v5.4-5.9(ファイル末尾)が正 ---- */
/* ==== 高密度一覧のメリハリ(デザイン見本準拠 2026-08-04) ====
   見出し=極小・広字間・薄グレー / 行=高く余白たっぷり・白地+ヘアライン(ゼブラ廃止) /
   名前と最終報酬=太く大きく / 店舗・状態=ピル */
.pagetbl th,#resWrap thead th{font-size:9.5px;letter-spacing:.16em;color:var(--faint);font-weight:800;padding:12px 10px}
.pagetbl td{padding:13px 12px;font-size:13px}
.pagetbl tbody tr:nth-child(even) td{background:transparent}
.pagetbl .cc-nm{font-size:14px}
th{background:#fbfbf8}
#resWrap thead th,#resWrap thead th:first-child,#resWrap thead th:last-child,
#resWrap tfoot td,#resWrap tfoot td:first-child{background:#fbfbf8}
#resBody td{padding:12px 10px}
#resBody td:nth-child(n+3){font-family:inherit;font-size:13px}
#resBody td.res-nm{font-weight:800;font-size:14px}
#resBody td:last-child{font-weight:900;font-size:15px}
#resBody td:nth-child(n+10):not(:last-child){color:#55584f}
.pill.p-store{background:#f1f2ec !important;color:var(--sub) !important;font-weight:800;letter-spacing:.02em}
.adjtbl td,.adjtbl th{padding:7px 8px;font-size:12px}
.adjtbl th{font-size:9.5px;letter-spacing:.14em;color:var(--faint);font-weight:800}
/* ==== キャストチップ(アイコン+名前+（staff_id）の統一表示 2026-08-04) ==== */
.cchip{display:inline-flex;align-items:center;gap:7px;max-width:100%}
.cchip .cc-ic,.cchip .sns-ic{width:22px;height:22px;border-radius:50%;object-fit:cover;flex:none}
/* 従業員ページのアイコンは写真指名キャスト管理(.ktbl .kbimg)と同じ 48px の角丸四角(2026-10-05 オーナー指示)。
   @layer 内に書くとこの非レイヤーの .cchip 規則に負ける(初回はそれで反映されなかった) */
#empBody .cchip .sns-ic,#empBody .cchip .cc-ic{width:30px;height:30px;border-radius:5px}
/* 従業員一覧は高密度(2026-10-05 オーナー指示「1ページあたりの情報量を増やす」): 行高 78px→42px。
   余白・入力欄・選択欄を詰めるだけで、列の並びと操作位置は変えない */
#empBasic .pagetbl{min-width:960px}
#empBasic .pagetbl th{padding:8px 8px}
#empBasic .pagetbl td{padding:4px 8px;font-size:12.5px}
#empBody .cchip{gap:8px}
#empBody .cc-nm{font-size:13px}
#empBody select{min-width:72px;padding:3px 6px;font-size:12.5px}
#empBody .sns-xid{padding:3px 7px;width:128px;font-size:12.5px}
/* 写真指名キャスト管理の表も同じ密度に(2026-10-05 オーナー指示): 行高 75px→39px。列の並び・操作位置は不変 */
.ktbl th{padding:8px 8px}
.ktbl td{padding:4px 8px;font-size:12.5px}
.ktbl .kbimg{width:30px;height:30px;border-radius:5px}
.ktbl .kbimg-t{width:30px;height:30px;border-radius:5px;font-size:13px}
.ktbl .kswwrap{min-height:22px;gap:8px}
.ktbl .ksw{width:36px;height:20px}
.ktbl .ksw::after{width:16px;height:16px}
.ktbl .ksw.on::after{left:18px}
.ktbl .kcm2{min-height:0;line-height:1.3}
.ktbl .kcmview{padding:1px 6px}
.ktbl .kcmadd{padding:2px 9px}
.ktbl .kauto{padding:2px 8px;font-size:11.5px}
/* シフト一覧も高密度に(2026-10-05 オーナー指示): 行高 33px→24px・見出し 67px→22px。
   出勤セルは ● の代わりに出勤時刻(title に 出勤–退勤)。狭い画面はセル幅が足りないので ● のまま */
table.sfb-tbl th,table.sfb-tbl td{padding:1px 2px}
table.sfb-tbl thead th{padding:4px 2px}
table.sfb-tbl tbody td{height:24px}
.sfb-cnt-row td{padding:2px 2px}
.sfb-dh .wd{display:inline;margin-left:2px}
.sfb-t{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sfb-dot{display:none}
.sfb-unsub-chip{padding:2px 12px;font-size:10.5px}
table.sfb-tbl .sfb-nmc .cc-id{display:inline;margin:0 0 0 2px}
@media(max-width:1000px){.sfb-t{display:none}.sfb-dot{display:inline}table.sfb-tbl .sfb-nmc .cc-id{display:none}}
.cc-ph{background:#eceee6;display:inline-flex;align-items:center;justify-content:center;
  font-size:10.5px;font-weight:800;color:var(--sub);font-style:normal}
.cc-nm{font-weight:700}
.cc-id{font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:0}
/* シフト表は超高密度なのでチップを縮小・IDは2行目 */
.sfb-nmc .cchip{gap:5px}
.sfb-nmc .cchip .cc-ic{width:16px;height:16px}
.sfb-nmc .cc-id{display:block;font-size:8.5px;line-height:1;margin:1px 0 0 21px}
.sfb-nmc .cc-wrap{display:inline-block;text-align:left}
/* 特別給カード */
.ppcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:6px}
.ppcard{background:#fff;border-radius:16px;box-shadow:var(--csh);padding:14px 16px;position:relative;
  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.ppcard:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(23,24,26,.12)}
.ppcard .pp-amt{font-size:21px;font-weight:900;font-variant-numeric:tabular-nums;margin:8px 0 2px}
.ppcard .pp-sub{font-size:11.5px;color:var(--sub)}
.ppcard .pp-act{display:flex;gap:8px;margin-top:10px}
.ppcard .pp-act button{font-size:11.5px;padding:6px 12px}
/* ==== Interaction FX(P5的リアクション。costume-portalのFX層をNIGHT OPSオレンジへ移植 2026-08-04) ==== */
.fxb{position:fixed;z-index:98;pointer-events:none;width:0;height:0}
.fxb .ring{position:absolute;left:-17px;top:-17px;width:34px;height:34px;
  border:2px solid var(--accent);border-radius:50%;opacity:.4;
  animation:fxring .4s cubic-bezier(.2,.7,.3,1) forwards}
.fxb .slash{position:absolute;left:-22px;top:-1px;width:44px;height:2px;
  background:linear-gradient(90deg,transparent,var(--acc-fill),transparent);
  transform:rotate(-24deg) scaleX(0);animation:fxslash .32s cubic-bezier(.2,.8,.3,1) forwards}
.fxb .sh{position:absolute;left:-3px;top:-3px;width:6px;height:6px;
  background:var(--acc-fill);opacity:.85;transform:rotate(45deg);
  animation:fxshard .38s cubic-bezier(.15,.7,.3,1) forwards}
@keyframes fxring{from{transform:scale(.25);opacity:.4}to{transform:scale(1.45);opacity:0}}
@keyframes fxslash{0%{transform:rotate(-24deg) scaleX(0);opacity:.85}
  55%{transform:rotate(-24deg) scaleX(1);opacity:.55}
  100%{transform:rotate(-24deg) scaleX(1.18);opacity:0}}
@keyframes fxshard{to{transform:translate(var(--dx),var(--dy)) rotate(185deg);opacity:0}}
/* ページ切替の斜めワイプ(画面は消さない) */
.fxwipe{position:fixed;inset:-10% -30%;z-index:96;pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(23,24,26,.05) 45%,
    rgba(242,92,5,.10) 50%,rgba(23,24,26,.05) 55%,transparent 70%);
  transform:translateX(-110%) skewX(-14deg)}
.fxwipe.go{animation:fxwipea .5s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes fxwipea{to{transform:translateX(110%) skewX(-14deg)}}
/* 押し込みスタンプ(P5的な「潰れて跳ねる」) */
button:not(:disabled):active,nav a:active,.seg button:active,.tabs button:active{
  transform:translateY(1px) scale(.96) skewX(-2deg) !important;transition:transform .06s ease !important}
nav a.parent.active:active{transform:rotate(-2deg) translateX(5px) scale(.96) !important}
/* 効果音トグル(サイドバー下部) */
#fxSnd,#gateKeep{margin-top:14px;width:100%;background:#fff !important;color:var(--sub) !important;
  box-shadow:inset 0 0 0 1.5px var(--line) !important;font-size:12px;padding:8px 12px}
#fxSnd.off,#gateKeep.off{opacity:.6}
#gateKeep{margin-top:6px}
@media(prefers-reduced-motion:reduce){.fxb,.fxwipe{display:none !important}}
/* ---- D6: スマホ=オフキャンバスドロワー(≤760px) ---- */
#navFab{display:none;position:fixed;left:14px;top:14px;z-index:70;width:44px;height:44px;
  border:none;border-radius:14px;place-items:center;background:var(--btn);color:#fff;
  font-size:19px;box-shadow:3px 3px 0 rgba(23,24,26,.3);cursor:pointer}
#navScrim{display:none;position:fixed;inset:0;background:rgba(23,24,26,.35);z-index:55}
body.navopen #navScrim{display:block}
@media (max-width:760px){
  .app{flex-direction:row}
  .sidebar{position:fixed;inset:0 auto 0 0;inline-size:min(78vw,300px);block-size:auto;flex:none;
    transform:translateX(-105%);transition:transform .22s ease;z-index:60;background:var(--bg);
    overflow-y:auto;overflow-x:hidden;border-inline-end:1px solid var(--line);
    padding:64px 14px 14px;box-shadow:0 0 60px rgba(23,24,26,.2)}
  body.navopen .sidebar{transform:none}
  .sidebar .brand{display:block}
  nav{flex-direction:column;gap:0}
  .navgrp{flex-direction:column}
  .navsec{display:block}
  #navFab{display:grid}
  .content{padding-top:64px}
  .content section::before{font-size:44px;top:-8px}
  #noBg .film{display:none}
}

/* ===== アプリバー(2026-08-11): 左=ブランド / 右=ログイン情報+ログアウト ===== */
#appbar{position:fixed;top:0;left:0;right:0;height:52px;z-index:60;
  background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;
  padding:0 14px 0 18px}
.ab-brand{font-weight:800;font-size:14px;letter-spacing:.02em;display:flex;align-items:center;gap:7px;color:var(--txt)}
.ab-brand .ab-mark{color:#f25c05;font-size:11px}
.ab-brand b{font-weight:800}
.ab-right{display:flex;align-items:center;gap:8px;min-width:0}
#appbar .uchip{margin:0;padding:4px 12px 4px 5px;background:#f6f7f9;border:1px solid var(--line);border-radius:999px;max-width:min(52vw,340px)}
#appbar .uchip .umeta{min-width:0}
#appbar .uchip .umeta b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.ab-logout{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:700;color:var(--sub);cursor:pointer;white-space:nowrap}
.ab-logout:hover{color:var(--txt);border-color:#c9ced6}
.app{padding-top:52px}
#gate{z-index:9999}
@media(max-width:760px){
  .ab-brand b{display:none}   /* モバイルは「◆collage」のみ */
  .sidebar{top:52px}
  #appbar{height:48px;padding:0 10px 0 14px}
  .app{padding-top:48px}
}

/* ===== SaaS仕上げ(2026-08-11): ②ナビ ③テーブル ①ページヘッダー ④空状態 ===== */
/* ② ナビ: 回転・ずらしの遊びを廃止(業務システムとしての直進性)。現在地=塗り+太字で明示 */
nav a.parent{transform:none!important;transition:background .15s,color .15s,box-shadow .15s}
nav a.parent.open,nav a.parent.active{transform:none!important}
nav a.parent:active{transform:scale(.985)!important}
.navsec{letter-spacing:.24em;font-size:9px;padding:14px 8px 5px}
nav a.sub{margin-left:8px;border-left:2px solid #ececec;border-radius:0 8px 8px 0}
nav a.sub.active{border-left-color:#f25c05;font-weight:800}
/* ③ テーブル: 全テーブルで数字の桁を揃える(金額・日付・件数の縦読み) */
table td{font-variant-numeric:tabular-nums}
tbody tr:hover td{background:#f6f8fa}
/* ① ページヘッダー: タイトル+説明文の定型(全ページ共通のリズム) */
.content h1{font-size:20px;font-weight:850;letter-spacing:-.015em;margin:2px 0 4px}
.content h1+.muted{font-size:12.5px;line-height:1.7;margin-bottom:14px;max-width:780px}
/* ④ 空状態: 「何もない」ではなく「次に何をするか」を示す部品 */
.empty{padding:34px 16px;text-align:center;color:var(--sub)}
.empty .ei{font-size:26px;margin-bottom:8px;opacity:.55}
.empty b{display:block;font-size:13.5px;color:var(--txt);margin-bottom:4px}
.empty small{font-size:11.5px;color:var(--faint);line-height:1.7}

/* ===== SaaS Refined v2 (2026-08-11): 装飾の沈静化と部品の矩形統一 =====
   従業員から「手作り感」の指摘。演出レイヤー(巨大タイポ透かし・フィルムストリップ・
   ページ英字透かし)を撤去し、カード/ボタン/ナビをStripe/Linear系の境界線ベースへ。
   機能・レイアウト位置は不変(見た目トークンのみの上書き)。 */
/* 背景演出 v3: エディトリアル・タイポ+設計図の目盛りレール+スタジオ光
   (回転タイポ・クリップアート帯を廃し、グリッドに整列した精密な演出へ) */
#noBg{background:#fafbfc}
#noBg .amb{position:absolute;inset:0;background:
  radial-gradient(60% 42% at 88% -6%, rgba(242,92,5,.05), transparent 62%),
  radial-gradient(46% 38% at -6% 106%, rgba(23,24,40,.04), transparent 60%)}
#noBg .word{position:absolute;right:-22px;bottom:-56px;font-weight:900;font-size:186px;
  letter-spacing:-.05em;line-height:1;color:rgba(23,24,40,.033);white-space:nowrap;
  user-select:none;transform:none}
#noBg .rail{position:absolute;left:226px;top:0;bottom:0;width:1px;
  background:linear-gradient(rgba(23,24,40,.09),rgba(23,24,40,.02))}
#noBg .rail::before{content:"";position:absolute;left:-3px;top:0;bottom:0;width:7px;
  background-image:repeating-linear-gradient(to bottom, rgba(23,24,40,.09) 0 1px, transparent 1px 28px)}
#noBg .rail::after{content:"";position:absolute;left:-6px;top:118px;width:13px;height:2px;background:#f25c05;opacity:.5}
#noBg .dots{position:absolute;left:-46px;bottom:-46px;width:360px;height:270px;opacity:.55;
  background-image:radial-gradient(rgba(23,24,40,.10) 1px, transparent 1.6px);background-size:14px 14px;
  -webkit-mask-image:radial-gradient(closest-side,#000,transparent);mask-image:radial-gradient(closest-side,#000,transparent)}
#noBg .reg{position:absolute;font-size:15px;font-weight:300;color:rgba(23,24,40,.15);user-select:none}
@media(max-width:900px){#noBg .rail,#noBg .reg{display:none}#noBg .word{font-size:104px;bottom:-30px}}
/* ページ透かし → 雑誌のページインデックス風(小さな等幅・字間広め・右上) */
.content section::before{font-family:var(--mono);font-size:10px;font-weight:700;
  letter-spacing:.34em;color:rgba(23,24,40,.20);right:2px;top:6px;transform:none}
.sidebar::before{content:none}
/* カード: 大R+浮遊影 → 10pxR+1px境界+微影 */
.card{border-radius:10px;border:1px solid #e6e8ee;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.adjwrap,.scroll,.scroll-tall{border-color:#e6e8ee}
/* ボタン: ピル(999px) → 8px矩形(円形・チップ類は各クラスの指定が優先されるので影響なし) */
button{border-radius:8px}
.adjbtn{border-radius:7px}
.ab-logout{border-radius:8px}
/* ナビ: 46pxピル → 40px矩形。ホバー=薄グレー、現在地=オレンジ塗りのまま */
nav a.parent{border-radius:9px;height:40px;margin:4px 0;box-shadow:none;border:1px solid transparent}
nav a.parent:hover:not(.active):not(.open){background:#f0f2f5}
nav a.parent.open,nav a.parent.active{border-radius:9px}
nav a.sub{border-radius:0 7px 7px 0}
.sidebar .brand,.sidebar .login{border-radius:10px;box-shadow:none;border:1px solid #e6e8ee}
/* 効果音トグル: ゲーム風の主張を控えめなユーティリティに */
#fxSnd,#gateKeep{border:1px solid #e6e8ee !important;border-radius:8px !important;box-shadow:none !important;
  font-size:11px !important;padding:6px 10px !important;opacity:.75}
/* テーブル: ヘッダーの浮き・境界を1段静かに */
th{background:#fafbfc;border-bottom:1px solid #e6e8ee}
.pagetbl th{background:#fafbfc}
/* セグメント: 影を弱めて境界で示す */
.seg{border:1px solid #e9ebf0;background:#f2f4f7}

/* ===== Rams Layer v4 (2026-08-11): Weniger, aber besser =====
   ディーター・ラムス監修想定。原則: 装飾は機能の表現のみ / マット面 / 温かいグレー /
   オレンジは「動作インジケータ」としてだけ使う / ヘアライン境界 / 過剰なウェイト・字間の排除。
   v3のエディトリアル演出(巨大タイポ・ハーフトーン・トンボ)は広告の美学のため撤去し、
   Braun製品の文法(目盛りスケール+指針+小さな刻印)へ置換。 */
/* 素材: 温かいペーパーグレーのマット面(光の演出なし) */
#noBg{background:#f4f3f0}
#noBg .amb,#noBg .dots,#noBg .reg{display:none}
/* 製品刻印: 巨大タイポ → 機器底面の小さなタイプ表記 */
#noBg .word{right:auto;left:240px;bottom:12px;top:auto;font-size:9.5px;font-weight:700;
  letter-spacing:.32em;color:rgba(29,29,27,.30);font-family:var(--mono)}
/* 目盛りレール → Braunチューナーのスケール(細目盛+主目盛+オレンジの指針) */
#noBg .rail{left:228px;background:rgba(29,29,27,.14);width:1px}
#noBg .rail::before{left:-4px;width:9px;
  background-image:
    repeating-linear-gradient(to bottom, rgba(29,29,27,.16) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(to bottom, rgba(29,29,27,.08) 0 1px, transparent 1px 8px)}
#noBg .rail::after{left:-7px;top:112px;width:15px;height:2px;background:#f25c05;opacity:.9}
/* 面: マットパネル+ヘアライン(影なし) */
.card{background:#fdfdfb;border:1px solid #e5e3dd;border-radius:8px;box-shadow:none}
.adjwrap,.scroll,.scroll-tall{border-color:#e5e3dd;background:#fdfdfb}
th{background:#f8f7f4;border-bottom:1px solid #e5e3dd}
#appbar{background:rgba(250,249,246,.95);border-bottom:1px solid #e5e3dd}
.sidebar .brand,.sidebar .login{border-color:#e5e3dd;background:#fdfdfb}
#fxSnd{border-color:#e5e3dd !important}
.seg{background:#edecf8;background:#ecebe6;border-color:#e0ded8}
.seg button.on,.seg button.active{background:#fdfdfb}
/* ブランドマーク: ◆ → 動作インジケータ(オレンジの点灯ドット) */
.ab-brand .ab-mark{color:transparent;width:9px;height:9px;background:#f25c05;border-radius:50%;
  display:inline-block;overflow:hidden;flex:0 0 9px}
/* タイポ: 過剰ウェイトを整える(見出し750・字間ニュートラル) */
.content h1{font-weight:750;letter-spacing:-.005em}
/* ナビ: 操作系はチャコール、現在地はオレンジの指針(inset needle) */
nav a.parent.open,nav a.parent.active{background:#26261f;background:#232320;color:#fff;
  box-shadow:inset 3px 0 0 #f25c05}
nav a.sub.active{border-left-color:#f25c05;color:#1d1d1b}
/* ボタン: プライマリ=チャコールのまま、角7px(操作部品の統一半径) */
button{border-radius:7px}
.ab-logout{border-radius:7px;border-color:#e0ded8}
/* ページインデックス(機器ラベル): そのまま活かすが色を刻印トーンへ */
.content section::before{color:rgba(29,29,27,.24)}

/* ===== Rams v4.1: コントロールプレートと書体 =====
   ①メニュー=独立した操作プレート(Braunの制御盤): 一段濃い温グレーの面+継ぎ目(ヘアライン)+
     既存のスケール指針が継ぎ目に沿う。項目は白ピルをやめプレート上のフラット操作列に。
   ②書体: Inter → Akzidenz-Grotesk系譜(Helvetica Neue)+ヒラギノ。Braunの銘板の声。 */
body, input, button, select, textarea{
  font-family:'Helvetica Neue',Helvetica,Arial,'Hiragino Kaku Gothic ProN','Hiragino Sans','Noto Sans JP','Yu Gothic UI',sans-serif}
/* サイドバー = コントロールプレート */
.sidebar{background:#eceae4;border-right:1px solid #dcd8cf;padding:12px 12px 14px}
#noBg .rail{left:227px}
#noBg .word{left:16px;bottom:10px}
nav a.parent{background:transparent;border:none;box-shadow:none;height:38px;margin:2px 0;border-radius:7px;font-weight:600}
nav a.parent:hover:not(.active):not(.open){background:rgba(29,29,27,.06)}
nav a.parent.open{background:rgba(29,29,27,.06);color:var(--txt);box-shadow:none}
nav a.parent.active{background:#232320;color:#fff;box-shadow:inset 3px 0 0 #f25c05}
nav a.sub{background:transparent;border-left:2px solid #d8d4cb;margin-left:14px;border-radius:0 7px 7px 0}
nav a.sub:hover{background:rgba(29,29,27,.05)}
nav a.sub.active{background:#232320;color:#fff;border-left-color:#f25c05}
nav a.sub.active .ic{background:#f25c05}
.navsec{color:#8b877d;letter-spacing:.26em}
.sidebar .brand,.sidebar .login{background:#f4f3ee;border-color:#dcd8cf}
#fxSnd{background:#f4f3ee !important;border-color:#dcd8cf !important}
/* コンテンツ側はチャシー(明るい面)のまま → 色調差+継ぎ目+指針で境界が読める */
@media(max-width:900px){#noBg .word{display:none}}

/* ===== Rams v4.2: 表の組版とスイス・タイポグラフィ =====
   ①スイス表組の基本: 文字=左揃え・数字=右揃え(全列センター揃えを廃止)。
     「言語化できない違和感」の正体は中央揃えによる視線の迷いと太字の乱用。
   ②セグメントの斜めノッチ(clip-path)を直角に(操作部は直角と円のみ=Braunの語彙)。
   ③和文をNoto Sans JP(Webフォント)で全端末統一。AkzidenzのJP対訳=均質で無表情なゴシック。 */
body, input, button, select, textarea{
  font-family:'Helvetica Neue',Helvetica,Arial,'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif}
/* 表: 左揃え基準+行に呼吸(数字セルは各ページの右揃え指定が優先される) */
th,td{text-align:left;padding:8px 12px}
th{font-weight:600}
td b{font-weight:600}
select{text-align:left;text-align-last:left}
#empBody select,#empBody span{text-align:left}
/* 中央が正しいものだけ戻す: 記号・アイコン・チェック列 */
td .sns-ic,td .pill,.gcell,#roleTable td,#roleTable th{text-align:center}
.eg-ck{margin:0 auto}
/* セグメント/タブ: 斜めノッチ → 直角(角7px) */
.tabs button.on,.seg button.on,.seg button.active{clip-path:none;border-radius:7px}
.store-seg button{clip-path:none !important;border-radius:7px !important}
/* 行のヘアライン(温グレー)と均一な行高 */
tbody td{border-bottom:1px solid #edebe5}

/* ===== Rams v4.3: 全ページの列揃え監査(数字=右/記号グリッド=中央の復元) ===== */
/* 報酬計算: 名前・店舗・保証以外は数値 → 右揃え */
table:has(#resHead) th:nth-child(n+4),table:has(#resHead) td:nth-child(n+4){text-align:right}
/* 源泉税管理: 日数以降は数値 → 右揃え */
table:has(#whBody) th:nth-child(n+3),table:has(#whBody) td:nth-child(n+3){text-align:right}
/* 調整事項: 金額列 → 右揃え */
table:has(#adjHead) th[data-k="amt"],table:has(#adjHead) td:nth-child(6){text-align:right}
/* 保証期間: 保証時給列 → 右揃え、対象セルは中央 */
#guarBox td:nth-child(5){text-align:right}
#guarBox .gcell{text-align:center}
/* 計算設定: 数値入力は右揃え */
#view-payconfig input{text-align:right}
.pc-from,.pc-rate{text-align:right}
/* 写真指名ランキング: 合計・1人目・2人目 → 右揃え */
#kiniRankRoot .pagetbl th:nth-child(n+3),#kiniRankRoot .pagetbl td:nth-child(n+3){text-align:right}
/* シフト表(日付グリッド): 記号セルは中央が正。名前列だけ左 */
table.sfb-tbl th,table.sfb-tbl td{text-align:center}
table.sfb-tbl th:first-child,table.sfb-tbl td:first-child{text-align:left}
/* 内勤チェック: 順・有効・曜日は中央、他は左のまま */
#view-naikin .pagetbl th:first-child,#view-naikin .pagetbl td:first-child{text-align:center}
/* 従業員: SNS状態・アイコン列は中央 */
#empBody td:last-child{text-align:center}
/* ホームのランキング等、金額を含む右端セルの取りこぼし防止(インライン指定優先のまま) */

/* ===== Rams v5: 物理キーの質感(Braun操作部の文法) =====
   参照: Braun ET66/TP1・OP-1系オマージュ。原則:
   「押せるもの=浮いたキーキャップ / 選択中=押し込まれたキー / 入力欄=凹んだウェル /
    オレンジ=録音キー的な動作インジケータのみ / 装飾=スピーカーグリルのドット引用」 */
/* キーキャップ(全ボタン基準): 上面ハイライト+下端の影で微かな厚み */
button{background:#fbfaf7;color:#1d1d1b;border:1px solid #d9d5cb;border-radius:10px;
  box-shadow:0 1px 0 rgba(29,29,27,.12), inset 0 1px 0 rgba(255,255,255,.9);font-weight:600}
button:hover{background:#f6f5f0}
button:active{transform:translateY(1px);box-shadow:inset 0 1px 2px rgba(29,29,27,.14)}
/* 押し込まれた(選択中の)キー = チャコール */
.seg button.on,.seg button.active,.tabs button.on{background:#232320;color:#fff;border-color:#232320;
  box-shadow:inset 0 2px 3px rgba(0,0,0,.35)}
/* キーグループ: 連結セグメント → 独立キーの列(キーボードの並び) */
.seg{background:transparent;border:none;gap:6px;padding:0}
.seg button{border-radius:9px}
/* 危険操作: 赤い刻印のキー(面は白のまま=Braunの停止キー) */
.adjbtn.end,button.danger{color:#c0392b}
/* ゲート(ログイン)ボタンは主電源: チャコールキー */
#gateBtn{background:#232320;color:#fff;border-color:#232320;border-radius:10px;
  box-shadow:0 1px 0 rgba(29,29,27,.25), inset 0 1px 0 rgba(255,255,255,.08)}
/* 入力欄 = 凹んだウェル(スクリーンの掘り込み) */
input[type=text],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=month],select,textarea{
  background:#fff;border:1px solid #d9d5cb;border-radius:9px;
  box-shadow:inset 0 1px 3px rgba(29,29,27,.08)}
/* ナビ = プレート上のキー列(現在地は押し込み+オレンジ針) */
nav a.parent{background:#f6f5f0;border:1px solid #ddd9d0;height:40px;margin:6px 0;border-radius:10px;
  box-shadow:0 1px 0 rgba(29,29,27,.10), inset 0 1px 0 rgba(255,255,255,.8)}
nav a.parent:hover:not(.active):not(.open){background:#f1efe9}
nav a.parent.open{background:#f1efe9;box-shadow:inset 0 1px 2px rgba(29,29,27,.10)}
nav a.parent.active{background:#232320;color:#fff;border-color:#232320;
  box-shadow:inset 0 2px 3px rgba(0,0,0,.4), inset 3px 0 0 #f25c05}
nav a.sub.active{background:#232320;border-left-color:#f25c05}
/* シャシー: カード角は機器の外周R */
.card{border-radius:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
/* チェック類のインジケータ色 */
input[type=checkbox],input[type=radio]{accent-color:#f25c05}
/* サイドバーのstickyをアプリバー(52px)に合わせて固定(v5のposition:relativeで
   stickyが死んでメニューがページと共に流れる実バグがあった 2026-08-11修正)。
   グリルドットはナビと重なるため廃止(装飾は銘板・ベント・空状態グリルの3点で確定) */
.sidebar{position:sticky;top:52px;height:calc(100vh - 52px);block-size:calc(100dvh - 52px)}
@media(max-width:760px){.sidebar{top:48px;height:auto;block-size:auto}}
/* アプリバーのユーザーチップ/ログアウトもキー質感を継承(buttonベース) */
#appbar .uchip{background:#fbfaf7;border-color:#d9d5cb}

/* ===== Rams v5.1: 細字のタイポグラフィ+ドット/目盛りの機能的展開 =====
   参照サイト(drams)の通り、ラムスの声は「細く・大きく・静かに」。
   太字の乱用をやめ、ウェイトは400(地)/500(見出し・操作)/600(強調)の3段のみ。 */
h1,h2,h3{font-weight:500;letter-spacing:0}
.content h1{font-weight:500;font-size:22px}
h2{font-weight:500}
th{font-weight:500}
b,strong,td b{font-weight:600}
button{font-weight:500}
nav a.parent{font-weight:500}
nav a.sub{font-weight:400}
.pill{font-weight:600;letter-spacing:.02em}
.navsec{font-weight:600}
#appbar .ab-brand{font-weight:500}
#appbar .ab-brand b{font-weight:600}
.umeta b{font-weight:500}
/* ページ銘板: 既存の英字ラベル(h1::afterのcontent)の下に計器スケール(目盛り+オレンジ針)を敷く */
.content h1::after{display:block;min-height:22px;margin-top:7px;padding-bottom:10px;width:auto;
  font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.34em;color:rgba(29,29,27,.38);
  background-image:
    linear-gradient(#f25c05,#f25c05),
    repeating-linear-gradient(to right, rgba(29,29,27,.30) 0 1px, transparent 1px 10px);
  background-repeat:no-repeat,no-repeat;
  background-size:2px 7px, 121px 4px;
  background-position:30px calc(100% - 1px), 0 calc(100% - 2px)}
/* アプリバー右の通気ベント(機器の放熱孔の引用) */
.ab-right::before{content:"";width:32px;height:13px;flex:0 0 32px;
  background-image:radial-gradient(rgba(29,29,27,.28) 1px, transparent 1.3px);
  background-size:5px 5px;background-position:center}
/* 空状態のアイコンをグリル円の上に置く */
.empty .ei{position:relative;display:inline-flex;width:58px;height:58px;align-items:center;justify-content:center;
  border-radius:50%;opacity:.75;
  background-image:radial-gradient(rgba(29,29,27,.14) 1px, transparent 1.35px);background-size:7px 7px}
@media(max-width:760px){.ab-right::before{display:none}}

/* ===== Rams v5.2: 明度補正 — アイボリー過多をホワイト基調へ =====
   Braunの筐体は「ほぼ白のウォームホワイト」。温色は1〜2%の囁きに留める。 */
#noBg{background:#f7f7f5}
.sidebar{background:#f1f1ee;border-right-color:#e3e2dd}
.card{background:#fff;border-color:#e8e7e3}
.adjwrap,.scroll,.scroll-tall{background:#fff;border-color:#e8e7e3}
button{background:#fff;border-color:#e0dfda}
button:hover{background:#f6f6f4}
nav a.parent{background:#fbfbf9;border-color:#e3e2dd}
nav a.parent:hover:not(.active):not(.open){background:#f4f4f1}
nav a.parent.open{background:#f4f4f1}
th{background:#fafaf8;border-bottom-color:#e8e7e3}
tbody td{border-bottom-color:#efeeea}
#appbar{background:rgba(255,255,255,.96);border-bottom-color:#e8e7e3}
#appbar .uchip{background:#fff;border-color:#e0dfda}
.sidebar .brand,.sidebar .login{background:#fbfbf9;border-color:#e3e2dd}
#fxSnd{background:#fbfbf9 !important;border-color:#e3e2dd !important}
.seg{background:transparent}
input[type=text],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=month],select,textarea{border-color:#e0dfda}

/* ===== Rams v5.3: 明度もう1段 — 背景・プレートの黄味を最終値へ ===== */
#noBg{background:#f8f8f7}
.sidebar{background:#f3f3f1;border-right-color:#e6e6e3}
nav a.parent{background:#fcfcfb;border-color:#e6e6e3}
nav a.parent:hover:not(.active):not(.open){background:#f5f5f3}
nav a.parent.open{background:#f5f5f3}
.sidebar .brand,.sidebar .login{background:#fcfcfb;border-color:#e6e6e3}
#fxSnd{background:#fcfcfb !important;border-color:#e6e6e3 !important}
th{background:#fbfbfa}

/* ===== Rams v5.4: Segmented Control(全ページ統一) =====
   文法: スライドスイッチの筐体=凹んだトラック / 選択中=押し込まれたチャコールキー+
   オレンジの動作ドット(録音インジケータ)。旧テーマの橙塗り大型ピルを全面置換。 */
.seg,.store-seg{background:#efeeec;border:1px solid #e4e3df;border-radius:11px;padding:3px;gap:3px;
  box-shadow:inset 0 1px 2px rgba(29,29,27,.07);display:flex;align-items:stretch}
.seg button,.store-seg button{background:transparent !important;border:none !important;box-shadow:none !important;
  border-radius:8px !important;color:#6f6d68 !important;font-weight:500 !important;
  padding:7px 16px !important;clip-path:none !important;transform:none !important}
.seg button:hover:not(.on):not(.active),.store-seg button:hover:not(.on):not(.active){background:rgba(255,255,255,.7) !important}
.seg button.on,.seg button.active,.store-seg button.on,.store-seg button.active,.tabs button.on{
  background:#232320 !important;color:#fff !important;border:none !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.38) !important}
.seg button.on::before,.seg button.active::before,.store-seg button.on::before,.store-seg button.active::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#f25c05;
  margin-right:7px;vertical-align:1px}

/* ===== Rams v5.5: 丸い操作部+オレンジの選択状態 =====
   Braun ET66/OP-1の再学習: キーは円・ピル(丸)、選択・作動中=オレンジのキー。
   チャコールは主電源など機能キー限定。面(カード・入力ウェル)は矩形のまま=
   「丸い操作部品 × 矩形の筐体」がBraunの構成。 */
/* 操作部品はピルへ */
button{border-radius:999px}
.adjbtn{border-radius:999px}
.ab-logout{border-radius:999px}
nav a.parent{border-radius:999px}
nav a.sub{border-radius:0 999px 999px 0}
.seg,.store-seg{border-radius:999px}
.seg button,.store-seg button{border-radius:999px !important}
.tabs button{border-radius:999px}
/* 選択中=オレンジのキー(押し込まれた録音キー)。ドットは不要=キー自体がインジケータ */
.seg button.on,.seg button.active,.store-seg button.on,.store-seg button.active,.tabs button.on{
  background:#f25c05 !important;color:#fff !important;
  box-shadow:inset 0 1px 2px rgba(110,38,0,.38) !important}
.seg button.on::before,.seg button.active::before,.store-seg button.on::before,.store-seg button.active::before{content:none}
/* ナビ現在地もオレンジのキー */
nav a.parent.active{background:#f25c05;border-color:#f25c05;color:#fff;
  box-shadow:inset 0 1px 2px rgba(110,38,0,.35)}
nav a.parent.open{background:#f5f5f3;color:var(--txt)}
nav a.sub.active{background:#f25c05;color:#fff;border-left-color:#c94a02}
nav a.sub.active .ic{background:#fff}
/* チャコールは機能キー限定(主電源=ログイン、主要CTAの既存クラスは維持) */
#gateBtn{border-radius:999px}

/* ===== Rams v5.6: 選択時の四角化バグ修正+残る直角の一掃 =====
   旧テーマ .store-seg button.on{border-radius:4px!important} が詳細度で勝ち
   「選択するとピル→四角に変形」していた。同詳細度以上で恒久上書き。 */
.seg button.on,.seg button.active,.store-seg button.on,.store-seg button.active,
.tabs button.on,#empSubTog button.on,#empSubTog button.active{border-radius:999px !important;padding-inline:16px !important}
/* 単一行の入力・選択はピル(複数行のみ14px)。ラムスの筐体に直角は無い */
input[type=text],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=month],select{
  border-radius:999px;padding-left:13px;padding-right:13px}
textarea{border-radius:14px}
.card{border-radius:14px}
.adjwrap,.scroll,.scroll-tall{border-radius:14px}
.empty{border-radius:14px}

/* ===== Rams v5.7: 選択状態の四角化・最終掃討 =====
   v4期の nav a.parent.open/.active{border-radius:9px} が詳細度で残存(シフト選択が角ばる)。
   選択・非選択で形が変わらないことを恒久保証する。 */
nav a.parent,nav a.parent.open,nav a.parent.active{border-radius:999px !important}
nav a.sub,nav a.sub.active{border-radius:0 999px 999px 0 !important}
.tabs button,.tabs button.on{border-radius:999px !important}

/* ===== Rams v5.8: ダッシュボード大数字の細字化(Braunの時計文字盤の文法) =====
   計器の数字は「大きく・細く」、ラベルは「小さく・締める」。大型数字の太字は
   圧を生むだけで判読性には寄与しない。ヒーロー(30-52px)=300、中型KPI(19-22px)=400
   (細字3段 400/500/600 の基準に合流)。桁ブレ防止に等幅数字を全数字へ。
   ※中型KPIのインライン font-weight:900 は renderHome 側の生成文字列を直接 400 に修正済み。 */
.dh-v{font-weight:300 !important;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.dh-kpi .v{font-weight:300 !important;font-variant-numeric:tabular-nums}
.kpi b{font-weight:400;font-variant-numeric:tabular-nums}
.ppcard .pp-amt{font-weight:400}

/* ===== Rams v6: スマホナビ=Discord式スライドドロワー(2026-08-14 オーナー承認) =====
   構造: サイドバーは常に左に居る下層。コンテンツ面(アプリバー+content)が上層で、
   開く=面ごと右へスライドし、今いた画面が右端に覗く(戻る先が常に見える)。
   判定は「幅760px以下 or 高さ520px以下(横持ちスマホ)」— 従来の幅だけの判定では
   横向きスマホ(幅850px前後)にデスクトップ用レイアウトが出てスクロール不能だった。
   transformは開時/ドラッグ中のみ付与(常時だとcontent内のposition:fixedの座標系が壊れる) */
.ab-menu{display:none;width:38px !important;height:38px !important;min-width:38px;padding:0 !important;box-sizing:border-box;line-height:0;border-radius:999px;border:1px solid #e0dfda;
  background:#fff;color:#17181a;place-items:center;flex:none;cursor:pointer;margin-right:2px;
  box-shadow:0 1px 0 rgba(29,29,27,.1), inset 0 1px 0 rgba(255,255,255,.9)}
@media (max-width:760px),(max-height:520px){
  :root{--dw:min(82vw,320px)}
  #noBg .rail,#noBg .reg,#noBg .film,#noBg .word{display:none}
  .ab-menu{display:grid}
  #navFab{display:none !important}
  #appbar{padding-left:8px}
  #appbar .ab-brand b{display:none}
  /* 下層=サイドバー(常設・スライドしない) */
  .sidebar{position:fixed !important;inset:0 auto 0 0;inline-size:var(--dw) !important;
    block-size:auto !important;height:auto !important;top:0 !important;transform:none !important;
    z-index:5;background:#f3f3f1;overflow-y:auto;overflow-x:hidden;display:block;
    border-inline-end:1px solid #e6e6e3;border-block-end:0;box-shadow:none !important;
    padding:calc(12px + env(safe-area-inset-top)) 12px calc(14px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}
  .sidebar::before{display:none}
  nav{flex-direction:column;gap:0}
  .navgrp{flex-direction:column}
  .navsec{display:block}
  /* 上層=コンテンツ面(アプリバーごとスライド) */
  .app{display:block;padding-top:0}
  .content{position:relative;z-index:10;background:#f8f8f7;min-height:100dvh;max-inline-size:100%;
    padding:calc(64px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));
    box-shadow:-20px 0 44px rgba(23,24,26,.16);
    transition:transform .26s cubic-bezier(.22,.9,.3,1)}
  #appbar{transition:transform .26s cubic-bezier(.22,.9,.3,1)}
  body.navopen{--navx:var(--dw)}
  body.navopen .content,body.navopen #appbar,
  html.navdrag .content,html.navdrag #appbar{transform:translateX(var(--navx,0))}
  html.navdrag .content,html.navdrag #appbar,html.navdrag #navScrim{transition:none !important}
  /* 開時: 覗いた面はうっすら暗く+タップで閉じる(スクリムも面と一緒にスライド) */
  #navScrim{display:none;position:fixed;inset:0;z-index:30;background:rgba(23,24,26,.28);
    transition:transform .26s cubic-bezier(.22,.9,.3,1)}
  body.navopen #navScrim,html.navdrag #navScrim{display:block;transform:translateX(var(--navx,0))}
  .content section::before{font-size:44px;top:-8px}
}
@media (max-height:520px){   /* 横持ちの詰め */
  .content{padding-top:calc(58px + env(safe-area-inset-top))}
  .content h1{font-size:20px}
}

/* ===== Rams v5.9: 台形タブの全廃+sfb-vtogのSegmented Control統一 =====
   旧D5「選択タブを台形に(clip-path)」が .tabs 選択時と .sfb-vtog(シフトの
   一覧/出力/出勤画像)に残存し、選択すると形と幅が変わっていた。台形は全廃し、
   v5.4-5.6の文法(凹んだトラック+丸いキー+選択=オレンジ・形状不変)へ合流。 */
.tabs button,.tabs button.on,.sfb-vtog button,.sfb-vtog button.on{
  clip-path:none !important;transform:none !important}
.sfb-vtog{background:#efeeec !important;border:1px solid #e4e3df !important;border-radius:999px !important;
  padding:3px !important;gap:3px !important;box-shadow:inset 0 1px 2px rgba(29,29,27,.07) !important;
  display:inline-flex;align-items:stretch}
.sfb-vtog button{background:transparent !important;border:none !important;box-shadow:none !important;
  border-radius:999px !important;color:#6f6d68 !important;font-weight:500 !important;
  padding:7px 16px !important}
.sfb-vtog button:hover:not(.on){background:rgba(255,255,255,.7) !important}
.sfb-vtog button.on{background:#f25c05 !important;color:#fff !important;
  box-shadow:inset 0 1px 2px rgba(110,38,0,.38) !important;padding:7px 16px !important;
  border-radius:999px !important}

/* X投稿管理 v2.1(2026-09-09) */
/* X投稿管理 v2.1(2026-09-09): 曜日チップは共通buttonの装飾(pill/影/押下変形)を外して等幅グリッドに固定 */
.xp-wdgrid{display:grid;grid-template-columns:repeat(7,44px) max-content;gap:6px;align-items:center;justify-content:start}
.xp-wdgrid .ghost{justify-self:start;width:auto}
.xp-wd{width:44px;height:36px;padding:0 !important;margin:0;border-radius:10px !important;border:1.5px solid #d5d9df;background:#fff !important;color:var(--txt) !important;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;transform:none !important;box-shadow:none !important;line-height:1}
.xp-wd.on{background:var(--acc-fill,#f25c05) !important;border-color:var(--acc-fill,#f25c05);color:#fff !important}
.xp-wd:active{transform:none !important}
.xp-tcard{border:1.5px solid #e3e6ea;border-left:6px solid #2e9e5b;border-radius:14px;padding:12px 16px;margin-bottom:10px;display:flex;gap:14px;align-items:flex-start;background:#fff}
.xp-tcard.off{border-left-color:#b8bec7;background:#f1f2f4;color:#8a93a3;filter:grayscale(1);opacity:.75}
.xp-tcard.off img{filter:grayscale(1);opacity:.6}
.xp-drop{border:2px dashed #cfd4da;border-radius:12px;padding:10px;background:#fafbfc;display:grid;grid-template-columns:repeat(4,96px);gap:10px;align-items:center;min-height:96px;cursor:pointer}
.xp-drop.over{border-color:var(--acc-fill,#f25c05);background:#fff7f2}
.xp-slot{width:96px;height:72px;border-radius:8px;border:1px solid #e3e6ea;background:#fff;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#b8bec7;font-size:22px}
.xp-slot img,.xp-slot video{max-width:100%;max-height:100%}
/* 人物タグ・メンション(2026-09-17) */
.xp-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.xp-tag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;background:#eef3fb;color:#1d5fb4;border:1px solid #cfdcf3;border-radius:20px;padding:2px 8px 2px 10px}
.xp-tag .x{border:none;background:none;color:#1d5fb4;font-size:12px;padding:0 2px;cursor:pointer}
.xp-tags input{font-size:12px;padding:5px 8px;width:170px;border:1px solid #d0d5dc;border-radius:8px}
.xp-pick{position:absolute;z-index:1400;background:#fff;border:1px solid #d0d5dc;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);max-height:260px;overflow:auto;min-width:240px}
.xp-pick .it{padding:7px 12px;font-size:12.5px;cursor:pointer;display:flex;gap:8px;align-items:center}
.xp-pick .it:hover{background:#f3f5f8}
.xp-pick .it small{color:#8a93a3}
.xp-slot .x{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50% !important;padding:0 !important;font-size:12px;line-height:20px;background:rgba(0,0,0,.6) !important;color:#fff !important;display:flex;align-items:center;justify-content:center}
.xp-foot{margin-top:14px;padding-top:12px;border-top:1px solid #eef0f3;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.xp-prev{max-width:560px;min-height:24px;white-space:pre-wrap;background:#fafbfc;border:1px solid #e3e6ea;border-radius:8px;padding:10px;font-size:12px;margin-top:8px}
/* 予約キュー(2026-09-11 再設計: 日付グループ×縦積みカード。北米SaaSの投稿キュー流儀) */
/* 日付セクション(2026-09-11 差し戻し: 余白・線だけでは境界が分からない→面と色で区切る) */
.xq-day{background:#eef0f4;border:1px solid #e1e5ea;border-radius:16px;padding:10px 12px 4px;margin-bottom:16px;max-width:880px}
.xq-day.today{background:#fff3ea;border-color:#f8c9a8}
.xq-daylabel{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:2px 4px}
.xq-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:58px;border-radius:12px;background:#fff;border:1.5px solid #d9dee5;box-shadow:0 1px 2px rgba(16,24,40,.06);flex:none}
.xq-date .m{font-size:10px;font-weight:800;color:#8a93a3;letter-spacing:.06em;line-height:1}
.xq-date .d{font-size:22px;font-weight:900;line-height:1.1;color:var(--txt)}
.xq-date .w{font-size:11px;font-weight:800;color:#5b6472;line-height:1}
.xq-day.today .xq-date{border-color:var(--acc-fill,#f25c05)}
.xq-day.today .xq-date .d{color:var(--acc-fill,#f25c05)}
.xq-daymeta{display:flex;flex-direction:column;gap:3px}
.xq-daymeta .t{font-size:14px;font-weight:800;color:var(--txt)}
.xq-daymeta .n{font-size:11.5px;font-weight:700;color:#5b6472}
.xq-daymeta .tag{font-size:10.5px;font-weight:800;border-radius:6px;padding:1px 7px;background:var(--acc-fill,#f25c05);color:#fff;margin-left:6px}
.xq-daymeta .tag.soft{background:#e8ecff;color:#3b4fd6}
/* 投稿カード: 状態色の左帯+ヘッダー帯で本文と分離 */
.xq-card{background:#fff;border:1.5px solid #dfe3e8;border-left:6px solid #1d5fb4;border-radius:14px;padding:0;margin-bottom:10px;box-shadow:0 1px 3px rgba(16,24,40,.08);overflow:hidden}
.xq-card.st-posting{border-left-color:#c2410c}
.xq-card.st-posted{border-left-color:#1b7f3b}
.xq-card.st-failed{border-left-color:#b91c1c}
.xq-card.st-canceled{border-left-color:#9aa3af}
.xq-card.off{opacity:.6}
.xq-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;min-height:30px;padding:9px 14px;background:#f7f8fa;border-bottom:1px solid #e9ecf0}
.xq-body{padding:12px 16px 12px}
.xq-when{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.xq-time{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.xq-badge{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 7px;background:#f1f3f6;color:#5b6472}
.xq-badge.src{background:#eef2ff;color:#3b4fd6}
.xq-badge.pin{background:#fff4e5;color:#b45309}
.xq-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.xq-pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 10px 3px 8px;line-height:1.4}
.xq-pill::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9}
.xq-pill.scheduled{background:#e8f1fd;color:#1d5fb4}
.xq-pill.posting{background:#fff1e6;color:#c2410c}
.xq-pill.posted{background:#e7f6ec;color:#1b7f3b}
.xq-pill.failed{background:#fdeaea;color:#b91c1c}
.xq-pill.canceled{background:#f1f3f6;color:#6b7280}
.xq-btn{font-size:11.5px !important;padding:5px 10px !important;background:#fff !important;border:1px solid #d7dae0 !important;color:var(--txt) !important;border-radius:8px !important;font-weight:700;box-shadow:none !important}
.xq-btn:hover{background:#f6f7f9 !important;border-color:#c6cbd4 !important}
.xq-btn.danger{color:#b91c1c !important;border-color:#f1c9c9 !important}
.xq-text{font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--txt)}
.xq-text.clamp{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.xq-more{font-size:11.5px !important;padding:2px 0 !important;background:none !important;color:#1d5fb4 !important;border:0 !important;margin-top:4px;box-shadow:none !important;font-weight:700}
.xq-quote{margin-top:10px;border:1px solid #e6e8ec;border-radius:12px;padding:9px 12px;display:flex;gap:10px;align-items:center;background:#fafbfc;max-width:640px}
.xq-quote .ic{width:22px;height:22px;border-radius:6px;background:#111;color:#fff;font-weight:900;font-size:12px;display:flex;align-items:center;justify-content:center;flex:none}
.xq-quote .lbl{font-size:11px;font-weight:800;color:#5b6472;white-space:nowrap}
.xq-quote a{font-size:12.5px;color:#1d5fb4;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.xq-media{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
/* 追加ポスト(スレッド 2026-09-16) */
.xq-reply{margin-top:10px;padding:8px 12px;border-left:3px solid #cfd4da;background:#fafbfc;border-radius:0 10px 10px 0}
.xq-reply .hd{font-size:11px;font-weight:800;color:var(--faint);margin-bottom:4px}
.xq-reply .xq-media .th{width:84px;height:84px}
.xp-reply{border:1px solid #e3e6ea;border-left:4px solid #1d5fb4;border-radius:0 10px 10px 0;padding:10px 12px;margin-top:10px;background:#fafbfc}
.xp-reply .hd{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;margin-bottom:6px}
.xp-reply .hd .del{margin-left:auto;font-size:11px;padding:3px 10px;color:var(--danger)}
.xp-reply textarea{width:100%;max-width:560px;padding:8px 10px}
.xq-media .th{position:relative;width:112px;height:112px;border-radius:10px;overflow:hidden;border:1px solid #e6e8ec;background:#fff}
.xq-media .th img,.xq-media .th video{width:100%;height:100%;object-fit:cover;display:block}
.xp-vtile{position:relative;display:block;width:100%;height:100%;background:#16181d;color:#fff}
.xp-vtile img{width:100%;height:100%;object-fit:cover;display:block}
.xp-vtile b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.xp-slot .xp-vtile{width:96px;height:72px}
.xq-media .th .x{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50% !important;padding:0 !important;font-size:12px;line-height:20px;background:rgba(0,0,0,.6) !important;color:#fff !important;display:flex;align-items:center;justify-content:center;box-shadow:none !important}
.xp-rowdrop{margin-top:8px;max-width:640px;min-height:46px;border:1.5px dashed #d5d9df;border-radius:10px;background:#fafbfc;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#8a93a3;cursor:pointer;padding:6px 10px}
.xp-rowdrop:hover{border-color:#b8bec7;color:#5b6472}
.xp-rowdrop.over{border-color:var(--acc-fill,#f25c05);background:#fff7f2;color:#c2410c}
.xq-foot{margin-top:8px;font-size:12px}
.xq-foot .err{color:#b91c1c;background:#fdeaea;border-radius:8px;padding:6px 10px;display:inline-block}
.xq-foot a{color:#1d5fb4;font-weight:700;text-decoration:none}
/* 月間カレンダー(2026-09-11 定期タブ・SocialDog風) */
.xc-head{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.xc-head .ym{font-size:16px;font-weight:900;min-width:110px;text-align:center}
.xc-nav{font-size:12px !important;padding:4px 10px !important;background:#fff !important;border:1px solid #d7dae0 !important;color:var(--txt) !important;border-radius:8px !important;box-shadow:none !important}
.xc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;max-width:1000px}   /* minmax(0,1fr): チップの文字幅で列が広がらない(2026-09-17) */
.xc-wd{font-size:11px;font-weight:800;color:#8a93a3;text-align:center;padding:4px 0}
.xc-wd.sun{color:#d14343}.xc-wd.sat{color:#1d5fb4}
.xc-cell{min-height:104px;min-width:0;background:#fff;border:1px solid #e3e6ea;border-radius:10px;padding:6px 6px 4px;display:flex;flex-direction:column;gap:3px}
.xc-cell.out{background:#f7f8fa;opacity:.55}
.xc-cell.today{border-color:var(--acc-fill,#f25c05);box-shadow:inset 0 0 0 1px var(--acc-fill,#f25c05)}
.xc-cell.past{background:#fafbfc}
.xc-d{font-size:12px;font-weight:800;color:#5b6472;display:flex;align-items:center;justify-content:space-between}
.xc-cell.today .xc-d{color:var(--acc-fill,#f25c05)}
.xc-d .add{width:18px;height:18px;border-radius:50% !important;padding:0 !important;font-size:13px;line-height:18px;background:#eef0f4 !important;color:#5b6472 !important;border:0 !important;visibility:hidden;box-shadow:none !important}
.xc-cell:hover .xc-d .add{visibility:visible}
.xc-chip{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.3;border-radius:6px;padding:3px 6px;background:#eef2ff;color:#1e2a5a;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-left:3px solid #1d5fb4}
.xc-chip:hover{filter:brightness(.96)}
.xc-chip .t{font-weight:800;flex:none}
.xc-chip .x{overflow:hidden;text-overflow:ellipsis}
.xc-chip.k-daily{border-left-color:#2e9e5b;background:#eaf7ee;color:#173f25}
.xc-chip.k-weekly{border-left-color:#7c3aed;background:#f1ebfd;color:#3b1d75}
.xc-chip.k-cal{border-left-color:#f25c05;background:#fff1e6;color:#6b2c08}
.xc-chip.k-spot{border-left-color:#1d5fb4;background:#eef2ff;color:#1e2a5a}
.xc-legend .k-spot::before{background:#1d5fb4}.xc-legend .k-cal::before{background:#f25c05}.xc-legend .k-daily::before{background:#2e9e5b}.xc-legend .k-weekly::before{background:#7c3aed}
.xc-chip.st-posted{background:#e7f6ec;color:#124d24;border-left-color:#1b7f3b}
.xc-chip.st-failed{background:#fdeaea;color:#7a1c1c;border-left-color:#b91c1c}
.xc-chip.st-posting{background:#fff1e6;color:#7a3410;border-left-color:#c2410c}
.xc-chip.st-canceled{background:#f1f3f6;color:#6b7280;border-left-color:#9aa3af;text-decoration:line-through}
.xc-more{font-size:10.5px;color:#5b6472;font-weight:700;cursor:pointer;padding:1px 6px}
.xc-legend{display:flex;gap:12px;font-size:11px;color:#5b6472;margin-top:8px;flex-wrap:wrap}
.xc-legend span::before{content:'';display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px;background:#1d5fb4}
.xc-legend .posted::before{background:#1b7f3b}.xc-legend .failed::before{background:#b91c1c}.xc-legend .canceled::before{background:#9aa3af}

/* ============================================================
   カード見直し(2026-09-12 オーナー指示「角丸カード区切りのAI感をやめる。ただしラムス風の統一(NIGHT OPS)は維持」)。
   対象は「区切りとしてのカード」だけ: 白+1px罫線の薄い境界にし、影と大きな角丸をやめ、区切りは余白と罫線で行う。
   背景グラフィック・透かし英字・ステッカー型ナビ・ピル型ボタン/セグメントは NIGHT OPS のまま(2026-09-12 差し戻しで復元)
   ============================================================ */
:root{--csh:none}
.card,.adjwrap,.dh-kpi,.dh-store,.spn-card,.stp-kpi .k,.an-card,.an-kpi,.an-cal,.sfb-day,.xp-tcard,.xq-card,.kk-card,#notifyBox .card{
  border:1px solid var(--line) !important;border-radius:6px !important;box-shadow:none !important;background:#fff}
/* ダッシュボードのヒーロー(MTD SALES)も同じ境界表現(2026-09-12)。グラデーションと透かしは維持 */
.dh-hero{border:1px solid var(--line);border-radius:6px !important;box-shadow:none !important}
/* 情報の整理(2026-09-12 参考画像の原則。色・装飾は不変): 入れ子カードは罫線区切りの節に、見出し直下に罫線、導入文は読める幅に */
.card .card,.card .card .card{border:0 !important;border-top:1px solid var(--line) !important;border-radius:0 !important;padding:14px 0 0 !important;margin:14px 0 0 !important;background:transparent}
.card>h2{margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
section>.muted:first-of-type,h1+.muted{max-width:72ch}
/* インライン指定のカード角丸・影(旧マークアップ)も同じ境界表現へ */
[style*="border-radius:12px"],[style*="border-radius:14px"],[style*="border-radius:16px"],[style*="border-radius:20px"],[style*="border-radius:22px"],[style*="border-radius: 12px"],[style*="border-radius: 16px"]{border-radius:6px !important}
[style*="box-shadow:0 1px 2px"],[style*="box-shadow: 0 1px 2px"],[style*="box-shadow:0 2px"],[style*="box-shadow:0 6px"],[style*="box-shadow:0 8px"],[style*="box-shadow:0 10px"],[style*="box-shadow:0 12px"]{box-shadow:none !important}
