
  :root{
    --accent:#007aff; --accent-dark:#0062cc; --accent-soft:#e7f1ff; --accent-on:#0062cc;   /* --accent-on＝白い文字を乗せる青（白との対比5.8） */
    --bg:#e7eaf1; --canvas:#eef0f5; --card:#ffffff; --nav:#fbfcfe;
    --line:#d7dbe5; --line2:#c4c9d6;
    --text:#1b1c20; --sub:#565c6b; --hover:#edf0f7; --sel:#e7f1ff;
    --red:#ff3b30; --orange:#ff9500; --green:#34c759;
    --radius:16px;
    --shadow:0 1px 2px rgba(23,31,56,.05),0 6px 18px rgba(23,31,56,.07);
    --shadow-sm:0 1px 2px rgba(23,31,56,.06),0 2px 6px rgba(23,31,56,.05);
  }
  /* ===== ダークモード ===== */
  body.dark{
    --accent:#4aa3ff; --accent-dark:#2f86e6; --accent-soft:#1e2c3e; --accent-on:#0a5bd6;   /* 白との対比6.0 */
    --bg:#14161b; --canvas:#14161b; --card:#1e2128; --nav:#191c22;
    --line:#323741; --line2:#3c4250;
    --text:#e7e9ee; --sub:#9aa1ad; --hover:#262a32; --sel:#22344a;
    --shadow:0 1px 2px rgba(0,0,0,.5),0 6px 18px rgba(0,0,0,.55);
    --shadow-sm:0 1px 2px rgba(0,0,0,.5);
    color-scheme:dark;
  }
  body.dark .modal input,body.dark .modal select,body.dark .modal textarea,body.dark .richedit,
  body.dark .sec input.txt,body.dark .sec textarea,body.dark .cmtadd textarea,body.dark #login input,
  body.dark .arow-link input,body.dark .me-row input,body.dark .meta select,body.dark .meta input[type=date],
  body.dark .chkadd input,body.dark .ml-name,body.dark .ml-url,body.dark .acbox input{ background:#2a2f38; color:var(--text); border-color:var(--line); }
  body.dark input::placeholder,body.dark textarea::placeholder,body.dark .richedit:empty:before{ color:#7c8390; }
  body.dark .mb-field,body.dark #evModal input:not([type=checkbox]):not([type=radio]),
  body.dark #evModal select,body.dark #evModal #evNote{ background:#332f1d; color:var(--text); }
  body.dark #evModal input:not([type=checkbox]):not([type=radio]):focus,body.dark #evModal select:focus,body.dark #evModal #evNote:focus{ background:#3b3722; }
  body.dark .steps{ background:#2a2e36; }
  body.dark .steps .step.cur{ background:#3a4150; }
  body.dark .calcell.other{ background:#191c22; }
  body.dark .topbar .me button{ background:#2a2f38; color:#dbe6f7; }
  body.dark .chip{ background:#1e2128; color:var(--text); border-color:var(--line2); }
  body.dark .ststt.未着手{ background:#2c2f37; color:#aeb4c0; }
  body.dark .navadd,body.dark .chkadd button{ background:var(--accent-soft); color:var(--accent); }
  body.dark .cancel,body.dark .modal .mbtns .cancel{ background:#2a2f38; color:var(--text); }
  body.dark .mstatus button{ color:var(--sub); }
  body.dark .listhead{ background:rgba(26,29,35,.88); }
  body.dark .modal input.mb-field{ background:#332f1d; }
  body.dark .modal input.mb-field:focus{ background:#3b3722; }
  *{ box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
  html,body{ height:100%; }
  body{ font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI",Meiryo,sans-serif;
        color:var(--text); background:var(--bg); font-size:15px; -webkit-font-smoothing:antialiased; }
  button{ font-family:inherit; cursor:pointer; }
  input,textarea,select{ font-family:inherit; }
  .hidden{ display:none !important; }
  @keyframes fadeUp{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:translateY(0);} }
  @keyframes sheetUp{ from{ transform:translateY(100%);} to{ transform:translateY(0);} }
  @keyframes pop{ from{ opacity:0; transform:scale(.96);} to{ opacity:1; transform:scale(1);} }

  /* ===== ログイン ===== */
  #login{ display:none; height:100%; align-items:center; justify-content:center; position:relative; overflow:hidden;
          background:#bdbdbf url('/login-bg.png') center center / cover no-repeat; }
  #login.show{ display:flex; }
  #login .title{ position:absolute; top:10%; left:0; right:0; text-align:center; color:#fff; font-size:36px; font-weight:800; letter-spacing:1px; text-shadow:0 2px 10px rgba(0,0,0,.5); z-index:2; padding:0 12px; }
  #login .footer{ position:absolute; bottom:18px; left:0; right:0; text-align:center; color:#fff; font-size:18px; font-weight:600; letter-spacing:.5px; text-shadow:0 1px 4px rgba(0,0,0,.5); z-index:2; }
  #login .box{ position:relative; z-index:3; background:rgba(255,255,255,.92); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-radius:20px; padding:24px 22px 20px; width:390px; max-width:92vw; box-shadow:0 18px 50px rgba(0,0,0,.32); animation:pop .3s ease; }
  #login .domain{ font-size:13px; color:var(--sub); margin-bottom:14px; font-weight:600; }
  #login .nameField{ display:none; }
  #login input[type=text],#login input[type=email],#login input[type=password]{ width:100%; border:none; background:#f0f0f3; border-radius:12px; padding:13px 14px; font-size:16px; margin-bottom:11px; transition:box-shadow .15s; }
  #login input:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
  #login .pwwrap{ position:relative; margin-bottom:11px; }
  #login .pwwrap input{ margin-bottom:0!important; padding-right:46px!important; }
  #login .pweye{ position:absolute; right:6px; top:0; height:100%; display:flex; align-items:center; border:none; background:none; cursor:pointer; font-size:18px; opacity:.45; padding:0 8px; }
  #login .pweye.on{ opacity:.95; }
  #login .cardrow{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:4px; }
  #login .cardrow .left{ font-size:12px; }
  #login .toggle{ color:var(--accent); cursor:pointer; }
  #login .keep{ display:flex; align-items:center; gap:6px; margin-top:8px; color:#444; cursor:pointer; }
  #login .keep input{ width:16px; height:16px; accent-color:var(--accent); }
  #login .primary{ flex:0 0 auto; border:none; background:var(--accent); color:#fff; border-radius:12px; padding:12px 30px; font-size:16px; font-weight:700; transition:transform .1s, background .15s; }
  #login .primary:active{ transform:scale(.95); background:var(--accent-dark); }
  #login .msg{ margin-top:12px; font-size:13px; padding:10px 12px; border-radius:10px; display:none; }
  #login .msg.err{ display:block; background:#ffeceb; color:#c0271d; }
  #login .msg.ok{ display:block; background:#e3f9e9; color:#1f8f3b; }
  @media (max-width:600px){ #login .title{ font-size:24px; } }

  /* ===== レイアウト ===== */
  #app{ display:none; height:100%; }
  #app.show{ display:flex; flex-direction:column; }
  .topbar{ height:66px; display:flex; align-items:center; padding:0 16px; gap:12px; flex:0 0 auto;
    background:linear-gradient(120deg, #6d89a9 0%, #56749a 55%, #476687 100%);
    border-bottom:1px solid #3d5471; position:relative; z-index:20; box-shadow:0 2px 8px rgba(23,31,56,.2); }
  .brandlogo{ height:58px; width:auto; flex:0 0 auto; object-fit:contain; filter:drop-shadow(0 1px 3px rgba(23,31,56,.32)); }
  .topbar .brand{ font-weight:800; font-size:24px; flex:0 0 auto; letter-spacing:.2px; color:#fff; text-shadow:0 1px 2px rgba(20,30,55,.25); white-space:nowrap; }
  .topsearch{ flex:1; max-width:520px; display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.94); border:1px solid rgba(255,255,255,.6); border-radius:11px; padding:0 12px; height:40px; box-shadow:0 1px 3px rgba(23,31,56,.12); }
  .topsearch .tsi{ font-size:14px; color:#5a6270; flex:0 0 auto; }
  .topsearch input{ flex:1; min-width:0; border:none; background:none; outline:none; font-size:14px; color:#1f2a44; }
  .topsearch input::placeholder{ color:#7a8296; }
  .topbar .me{ font-size:13px; color:rgba(255,255,255,.88); display:flex; align-items:center; gap:8px; flex:0 0 auto; margin-left:auto; }
  .topbar .me button{ border:none; background:#fff; color:var(--accent); border-radius:999px; padding:6px 14px; font-size:13px; font-weight:700; box-shadow:0 1px 3px rgba(23,31,56,.14); transition:transform .1s; }
  .topbar .me button:active{ transform:scale(.94); }

  .layout{ flex:1; display:flex; min-height:0; }

  /* 左：ビュー */
  .nav{ width:228px; flex:0 0 auto; background:var(--nav); border-right:1px solid var(--line); overflow-y:auto; padding:12px 10px; box-shadow:1px 0 0 rgba(23,31,56,.02); }
  /* 左メニューの折りたたみ(パソコン・2026年10月 上村さん依頼)。☰で切替＝細い帯にしてアイコンだけ出す。端末ごとに覚える */
  @media(min-width:901px){
    .navtoggle{ display:inline-flex !important; align-items:center; justify-content:center; color:inherit; border-radius:8px; }
    .navtoggle:hover{ background:rgba(255,255,255,.15); }
    body.nav-mini .nav{ width:64px; padding:12px 6px; overflow-x:hidden; }
    body.nav-mini .nav .newbtn,body.nav-mini .nav .fbnav{ font-size:0; padding:10px 0; text-align:center; justify-content:center; }
    body.nav-mini .nav .newbtn::before{ content:"＋"; font-size:20px; }
    body.nav-mini .nav .fbnav::before{ content:"💬"; font-size:17px; }
    body.nav-mini .nav .fbnav .fbnavcnt{ display:none; }
    body.nav-mini .nav .v{ position:relative; justify-content:center; padding:10px 0; gap:0; }
    body.nav-mini .nav .v.subv{ margin-left:0; border-left:none; border-radius:11px; }
    body.nav-mini .nav .v .lbl,body.nav-mini .nav .v .navnew{ display:none; }
    body.nav-mini .nav .v .cnt{ position:absolute; top:1px; right:1px; font-size:10px; padding:0 4px; min-width:0; line-height:1.5; }
    body.nav-mini .nav .vgroup,body.nav-mini .nav .navhead{ display:none; }
    body.nav-mini .nav .navsep.labeled{ font-size:0; padding:0; margin:8px 4px; }
    body.nav-mini .nav .navsep.labeled *{ display:none; }
  }
  .navtoggle{ display:none; border:none; background:transparent; font-size:24px; line-height:1; color:var(--text); cursor:pointer; padding:4px 6px; flex:0 0 auto; }
  .navbackdrop{ display:none; }
  .fab{ display:none; }
  .fab:active{ transform:scale(.92); }
  .nav .newbtn{ width:100%; border:none; background:var(--accent); color:#fff; border-radius:13px; padding:12px; font-size:15px; font-weight:700; margin-bottom:12px; box-shadow:0 4px 12px rgba(0,122,255,.3); transition:transform .1s; }
  .nav .newbtn:active{ transform:scale(.97); }
  .nav .vgroup{ font-size:12px; font-weight:700; color:var(--sub); margin:14px 8px 6px; text-transform:uppercase; letter-spacing:.4px; }
  /* 「ビュー」見出しを廃止したぶん、新規ボタンとメニュー1件目の間隔を確保する */
  .nav .newbtn{ margin-bottom:16px; }
  .nav .fbnav{ display:flex; align-items:center; gap:10px; width:100%; margin-top:16px; border:1px dashed var(--border); background:transparent; color:var(--sub); border-radius:11px; padding:10px 12px; font-size:15px; font-weight:700; cursor:pointer; transition:all .12s; text-align:left; }
  .nav .fbnav:hover{ background:var(--hover); color:var(--accent); border-color:var(--accent); }
  .nav .fbnav.active{ background:var(--accent); color:#fff; border-style:solid; border-color:var(--accent); }
  .nav .fbnav .fbnavcnt{ margin-left:auto; min-width:20px; text-align:center; background:var(--red); color:#fff; border-radius:999px; padding:1px 7px; font-size:12px; font-weight:800; }
  .nav .fbnav.active .fbnavcnt{ background:rgba(255,255,255,.25); }
  .nav .v{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:11px; font-size:15px; font-weight:700; color:var(--text); transition:background .12s; }
  .nav .v:hover{ background:var(--hover); }
  .nav .v.active{ background:var(--accent); color:#fff; font-weight:700; }
  .nav .v.subv{ margin-left:16px; padding:7px 10px; font-size:13px; font-weight:600; color:var(--sub); border-left:2px solid var(--line2); border-radius:0 9px 9px 0; }
  .nav .v.subv .ico{ font-size:14px; }
  .nav .v.subv.active{ background:#0f766e; color:#fff; border-left-color:#0f766e; }
  .nav .v.subv.active .cnt{ background:rgba(255,255,255,.25); color:#fff; border:none; }
  .nav .v.active .cnt{ background:rgba(255,255,255,.25); color:#fff; border:none; }
  .nav .v .ico{ width:20px; text-align:center; font-size:16px; }
  .nav .v .lbl{ flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }   /* 改行しない（2026年10月 上村さん指示） */
  .nav .v .cnt{ font-size:12px; color:var(--sub); background:#e9e9ee; border-radius:999px; padding:1px 8px; min-width:22px; text-align:center; font-weight:600; }
  .nav .v.alert .cnt{ background:#ffe5e3; color:var(--red); }
  /* 左メニューの新着明示(インボックス=自分宛コメント未読/メール=未対応): 🆕点滅＋赤地白文字バッジ */
  .nav .v .navnew{ font-size:13px; line-height:1; animation:fbnewblink 2.2s ease-in-out infinite; }
  .nav .v.newmark .cnt{ background:var(--red); color:#fff; font-weight:800; }
  .nav .v.active.alert .cnt{ background:rgba(255,255,255,.25); color:#fff; }
  .nav .navhead{ display:flex; align-items:center; justify-content:space-between; font-size:12px; font-weight:700; color:var(--sub); padding:14px 12px 4px; letter-spacing:.04em; }
  .nav .navsep.line{ height:0; border-top:1px solid var(--line2); margin:10px 10px; }
  .nav .navsep.labeled{ font-size:14px; font-weight:800; color:var(--accent); letter-spacing:.05em; margin:12px 4px 4px; padding:10px 10px 4px; border-top:1px solid var(--line2); }
  /* グループ見出しの折りたたみ(クリックで開閉・▾/▸) */
  .nav .navsep.labeled.grp{ display:flex; align-items:center; gap:6px; cursor:pointer; user-select:none; border-radius:8px; }
  .nav .navsep.labeled.grp:hover{ background:var(--hover); }
  .nav .navsep.labeled.grp .gl{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .nav .navsep.labeled.grp .navcaret{ flex:0 0 auto; font-size:11px; color:var(--sub); }
  .nav .navsep.labeled.grp .navgnew{ flex:0 0 auto; font-size:10px; }
  .nav .navgrphide{ display:none; }
  .nav .navadd{ border:none; background:var(--accent-soft); color:var(--accent); border-radius:999px; width:22px; height:22px; font-size:15px; line-height:1; font-weight:700; cursor:pointer; }
  .nav .navadd:active{ transform:scale(.9); }

  /* 中：一覧 */
  .listpane{ width:360px; flex:0 0 auto; border-right:.5px solid var(--line); overflow-y:auto; background:var(--bg); }
  .listhead{ position:sticky; top:0; background:rgba(231,234,241,.86); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--line); padding:14px 16px 10px; z-index:1; }
  .listhead h3{ font-size:22px; font-weight:800; letter-spacing:.2px; }
  .listhead .sub{ font-size:13px; color:var(--sub); margin-top:1px; }
  .chips{ display:none; }
  #list{ padding:10px 12px; }
  .item{ background:var(--card); border-radius:14px; padding:13px 14px; margin-bottom:9px; cursor:pointer; box-shadow:var(--shadow); transition:transform .1s, background .12s; animation:fadeUp .25s ease both; }
  .item:active{ transform:scale(.985); }
  .item.sel{ background:var(--accent-soft); box-shadow:0 0 0 2px var(--accent) inset; }
  .item.unread{ background:#fff; box-shadow:0 0 0 2px var(--accent) inset, var(--shadow); }
  .cwcard{ background:var(--card); border-radius:14px; padding:14px 15px; margin-bottom:11px; box-shadow:var(--shadow); animation:fadeUp .25s ease both; }
  .cwcard .cwttl{ width:100%; box-sizing:border-box; font-size:15px; font-weight:700; color:var(--text); border:1px solid var(--line); border-radius:9px; padding:8px 11px; background:#fffdf5; }
  .cwcard .cwttl:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); border-color:var(--accent); }
  .cwcard .cwapprove{ border:none; background:var(--accent); color:#fff; border-radius:10px; padding:8px 16px; font-size:13px; font-weight:700; cursor:pointer; box-shadow:0 2px 6px rgba(0,122,255,.28); transition:transform .1s, filter .15s; }
  .cwcard .cwapprove:hover{ filter:brightness(1.05); } .cwcard .cwapprove:active{ transform:scale(.96); }
  .cwcard .cwreject{ border:1px solid #f3c9c4; background:#fff; color:var(--red); border-radius:10px; padding:8px 14px; font-size:13px; font-weight:700; cursor:pointer; transition:transform .1s, background .15s; }
  .cwcard .cwreject:hover{ background:#ffe5e3; } .cwcard .cwreject:active{ transform:scale(.96); }
  .item.unread .it-ttl{ font-weight:800; }
  .item .l1{ display:flex; align-items:center; gap:9px; }
  .item .dot{ width:10px; height:10px; border-radius:50%; flex:0 0 auto; }
  .item .it-ttl{ font-weight:600; font-size:15.5px; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .item.done{ opacity:.6; }
  .item.done .it-ttl{ text-decoration:line-through; color:var(--sub); }
  .item .l2{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; font-size:12px; color:var(--sub); padding-left:19px; }
  .item .tag{ background:#f0f0f3; border-radius:7px; padding:2px 8px; font-weight:600; }
  .item .tag.over{ background:#ffe5e3; color:var(--red); }
  .item .tag.today{ background:#fff1dd; color:#b25b00; }
  .item .tag.stag{ background:#ffe5e3; color:var(--red); font-weight:700; }
  .dot.未着手{ background:#c7c7cc; } .dot.着手中{ background:var(--accent); }
  .dot.確認待ち{ background:var(--orange); } .dot.完了{ background:var(--green); }

  /* ステータスラベル */
  .ststt{ font-size:11px; font-weight:700; padding:2px 8px; border-radius:7px; flex:0 0 auto; }
  .ststt.未着手{ background:#f0f0f3; color:#8a8a8e; }
  .ststt.着手中{ background:#e1efff; color:var(--accent-dark); }
  .ststt.確認待ち{ background:#fff1dd; color:#b25b00; }
  .ststt.完了{ background:#e3f9e9; color:#1f8f3b; }

  /* 右：詳細 */
  .detail{ flex:1; min-width:0; overflow-y:auto; background:var(--bg); }
  .detail .empty{ height:100%; display:flex; align-items:center; justify-content:center; color:var(--sub); font-size:15px; padding:20px; text-align:center; }
  .dwrap{ padding:18px 20px 80px; max-width:700px; margin:0 auto; animation:fadeUp .25s ease; }
  .dback{ display:none; background:none; border:none; color:var(--accent); font-size:16px; font-weight:600; margin-bottom:10px; padding:4px 0; }
  .dttl{ width:100%; box-sizing:border-box; border:none; background:transparent; font-size:24px; font-weight:800; padding:6px 2px; border-radius:8px; }
  .dttl:focus{ outline:none; background:var(--card); box-shadow:0 0 0 3px var(--accent-soft); padding:6px 10px; }
  /* iOS風セグメント（ステータス） */
  .stepcap{ font-size:13px; color:var(--sub); font-weight:600; margin:18px 0 7px; }
  .steps{ display:flex; background:#e7e7ec; border-radius:11px; padding:3px; gap:3px; }
  .steps .step{ flex:1; text-align:center; padding:8px 3px; font-size:13px; font-weight:600; cursor:pointer; color:var(--sub); border-radius:8px; transition:all .18s; }
  .steps .step.past{ color:var(--accent); }
  .steps .step.cur{ background:#fff; color:var(--accent); box-shadow:0 1px 4px rgba(0,0,0,.14); font-weight:700; }
  .steps .step:active{ transform:scale(.96); }
  .steps .step .mk{ display:block; font-size:9px; font-weight:600; opacity:.85; margin-top:1px; }
  /* カードセクション */
  .card-sec{ background:var(--card); border-radius:var(--radius); padding:14px 16px; margin-top:14px; box-shadow:var(--shadow); }
  .meta{ display:grid; grid-template-columns:84px 1fr; gap:12px; align-items:center; font-size:14px; }
  .meta label{ color:var(--sub); font-weight:600; }
  .meta select,.meta input[type=date]{ padding:9px 11px; border:none; background:#f0f0f3; border-radius:10px; font-size:14px; }
  .meta select:focus,.meta input:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
  .sec{ margin-top:14px; }
  .sec h4{ font-size:13px; color:var(--sub); font-weight:600; margin:0 4px 6px; }
  .sec textarea,.sec input.txt{ width:100%; border:none; background:var(--card); border-radius:12px; padding:12px; font-size:15px; resize:vertical; box-shadow:var(--shadow); }
  .sec textarea:focus,.sec input.txt:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
  .sec textarea{ min-height:64px; }
  /* チェックリスト */
  .chk{ display:flex; align-items:center; gap:10px; padding:9px 14px; background:var(--card); box-shadow:var(--shadow); border-radius:0; }
  .chk:first-of-type{ border-radius:12px 12px 0 0; }
  .chk:last-of-type{ border-radius:0 0 12px 12px; }
  .chk+.chk{ box-shadow:var(--shadow); border-top:.5px solid var(--line); }
  .chk input[type=checkbox]{ width:22px; height:22px; accent-color:var(--accent); flex:0 0 auto; }
  .chk .ct{ flex:1; font-size:15px; }
  .chk.done .ct{ text-decoration:line-through; color:var(--sub); }
  .chk .x{ border:none; background:none; color:#c7c7cc; font-size:18px; }
  .chkadd{ display:flex; gap:8px; margin-top:8px; }
  .chkadd input{ flex:1; border:none; background:var(--card); box-shadow:var(--shadow); border-radius:11px; padding:11px; font-size:14px; }
  .chkadd input:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
  .chkadd button{ border:none; background:var(--accent-soft); color:var(--accent); border-radius:11px; padding:11px 16px; font-weight:700; }
  /* コメント */
  .cmt{ background:var(--card); box-shadow:var(--shadow); border-radius:12px; padding:11px 13px; margin-bottom:8px; }
  .cmt .who{ font-size:12px; color:var(--sub); }
  .cmt .who b{ color:var(--text); }
  .cmt .body{ font-size:15px; white-space:pre-wrap; margin-top:3px; }
  .cmtadd{ display:flex; gap:8px; margin-top:10px; }
  .cmtadd textarea{ flex:1; min-height:44px; border:none; background:var(--card); box-shadow:var(--shadow); border-radius:12px; padding:11px; font-size:15px; }
  .cmtadd textarea:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
  .cmtadd button{ border:none; background:var(--accent); color:#fff; border-radius:12px; padding:0 18px; font-weight:700; transition:transform .1s; }
  .cmtadd button:active{ transform:scale(.95); }
  .delwrap{ margin-top:28px; text-align:center; }
  .delwrap button{ border:none; background:none; color:var(--red); border-radius:10px; padding:10px 16px; font-size:15px; font-weight:600; }

  /* 新規モーダル / ボトムシート */
  .modal{ position:fixed; inset:0; background:rgba(0,0,0,.4); display:none; align-items:center; justify-content:center; z-index:60; }
  .modal.show{ display:flex; animation:pop .2s ease; }
  .modal .mbox{ background:var(--card); border-radius:20px; padding:22px; width:430px; max-width:92vw; box-shadow:0 20px 60px rgba(0,0,0,.3); max-height:92vh; overflow-y:auto; }   /* 画面より縦長になったら内部スクロール(ボタンが画面外に出て閉じられなくなるのを防ぐ) */
  .modal h3{ font-size:19px; font-weight:800; margin-bottom:14px; }
  #evModal .mbox{ width:620px; max-width:94vw; max-height:90vh; overflow:auto; resize:both; }
  /* フォルダ権限は5列の表を出すので幅を広げる(.mboxのwidth:430pxだと「削除」列が見切れる) */
  #folderAclModal .mbox{ width:720px; max-width:94vw; }
  /* 予定ダイアログのヘッダー(タイトル＋×)を上部に固定=長い入力フォームをスクロールしても常に見える */
  #evModal .ev-head{ position:sticky; top:-22px; z-index:5; background:var(--accent); color:#fff; margin:-22px -22px 14px; padding:14px 22px; border-bottom:none; border-radius:20px 20px 0 0; box-shadow:0 2px 8px rgba(0,0,0,.12); }
  body.dark #evModal .ev-head{ background:var(--accent-dark); }
  #evModal .mbox.dlgmax > .ev-head{ border-radius:0; }
  #mailComposeModal .mbox{ width:860px; max-width:94vw; max-height:92vh; overflow:auto; resize:both; }
  #evModal h3{ cursor:move; user-select:none; -webkit-user-select:none; margin-bottom:0; flex:1; }
  #evModal h3:before{ content:"⠿ "; color:var(--sub); font-weight:400; }
  .ev-head{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
  .ev-head h3{ flex:1; min-width:0; margin:0; }
  #mailComposeModal .ev-head{ cursor:move; user-select:none; }
  .mcwbs{ display:flex; gap:2px; flex:0 0 auto; }
  .mcwb{ background:transparent; border:none; color:var(--sub); font-size:13px; width:30px; height:26px; border-radius:6px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
  .mcwb:hover{ background:var(--hover); }
  #mcClose.mcwb:hover{ background:#e5484d; color:#fff; }
  #mailComposeModal .mbox.min{ height:auto !important; min-height:0 !important; resize:none !important; }
  #mailComposeModal .mbox.min > *:not(.ev-head){ display:none !important; }
  #mailComposeModal .mbox.min .ev-head{ margin-bottom:0; }
  #mailComposeModal .mbox.max{ width:100vw !important; height:100dvh !important; max-width:100vw !important; max-height:100dvh !important; border-radius:0 !important; resize:none !important; }
  /* 全モーダル共通: ドラッグ移動＋最小化/最大化 */
  .dlg-head{ cursor:move; user-select:none; }
  h3.dlg-head{ display:flex; align-items:center; }
  .dlg-title{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dlg-wbtns{ display:inline-flex; gap:2px; margin-left:auto; flex:0 0 auto; }
  .dlg-wb{ background:transparent; border:none; color:var(--sub); font-size:13px; width:28px; height:24px; border-radius:6px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
  .dlg-wb:hover{ background:var(--hover); }
  .dlg-wb.dlg-close:hover{ background:#e5484d; color:#fff; }
  .modal .mbox.dlgmax{ width:100vw !important; height:100dvh !important; max-width:100vw !important; max-height:100dvh !important; border-radius:0 !important; resize:none !important; overflow:auto !important; }
  /* 最小化＝画面を完全に隠し、下部の復元ピルから戻す */
  .modal.dlgmin{ background:transparent !important; pointer-events:none !important; }
  .modal.dlgmin > .mbox{ display:none !important; }
  #dlgMinBar{ position:fixed; left:12px; bottom:12px; display:flex; gap:8px; flex-wrap:wrap; z-index:250; }
  .dlgmin-pill{ display:inline-flex; align-items:center; gap:10px; background:#2e3440; color:#fff; border-radius:10px; padding:8px 13px; font-size:13px; font-weight:700; box-shadow:0 6px 18px rgba(0,0,0,.28); cursor:pointer; max-width:280px; }
  .dlgmin-pill:hover{ background:#3a4250; }
  .dlgmin-pill .dp-t{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dlgmin-pill .dp-x{ opacity:.75; padding:0 2px; flex:0 0 auto; }
  .dlgmin-pill .dp-x:hover{ opacity:1; }
  .modal-x{ flex:0 0 auto; border:none; background:var(--hover); color:var(--sub); width:32px; height:32px; border-radius:50%; font-size:22px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.12s; }
  .modal-x:hover{ background:#ffe5e3; color:var(--red); }
  /* 2026年09月: ダイアログのヘッダーは全部青の帯にそろえる(稟議の.rgmheadと同じ見た目・上部に固定) */
  .modal .mbox > .dlg-head, .modal .mbox > #mcHead, #forcePwModal .mbox > h3{ margin:-22px -22px 14px; padding:14px 22px; position:sticky; top:-22px; z-index:5; background:var(--accent); color:#fff; border-bottom:none; border-radius:20px 20px 0 0; box-shadow:0 2px 8px rgba(0,0,0,.12); }
  body.dark .modal .mbox > .dlg-head, body.dark .modal .mbox > #mcHead, body.dark #forcePwModal .mbox > h3, body.dark .rgmhead, body.dark .mailread-head{ background:var(--accent-dark); }
  .modal .mbox > .dlg-head h3, .modal .mbox > #mcHead h3{ color:#fff; }
  #evModal .dlg-head h3:before{ color:rgba(255,255,255,.7); }
  .modal .dlg-head .dlg-wb, #mcHead .mcwb{ color:rgba(255,255,255,.9); }
  .modal .dlg-head .dlg-wb:hover, #mcHead .mcwb:hover{ background:rgba(255,255,255,.2); }
  .modal .dlg-head .dlg-wb.dlg-close:hover, #mcHead #mcClose.mcwb:hover{ background:#e5484d; color:#fff; }
  .modal .mbox.dlgmax > .dlg-head, #mailComposeModal .mbox.max > #mcHead{ border-radius:0; }
  #mailComposeModal .mbox.min > #mcHead{ margin-bottom:-22px; }
  /* 年間イベント登録: 見出し行だけを青の帯にする(絞り込み欄は帯の下に固定したまま) */
  #yearEvModal .ye-head{ margin:-22px -22px 10px; padding:14px 22px; padding-right:58px; background:var(--accent); color:#fff; border-radius:20px 20px 0 0; }
  body.dark #yearEvModal .ye-head{ background:var(--accent-dark); }
  #yearEvModal .ye-x{ background:rgba(255,255,255,.22) !important; color:#fff !important; border:none !important; }
  #yearEvModal .ye-x:hover{ background:#e5484d !important; }
  .modal label{ display:block; font-size:12px; font-weight:600; color:var(--sub); margin:11px 0 4px; }
  .modal input,.modal select{ width:100%; border:none; background:#f0f0f3; border-radius:11px; padding:12px; font-size:15px; }
  .modal textarea{ width:100%; box-sizing:border-box; }
  .modal input[type=checkbox],.modal input[type=radio]{ width:18px; height:18px; flex:0 0 auto; padding:0; margin:0; background:none; border-radius:4px; accent-color:var(--accent); cursor:pointer; }
  .modal input:focus,.modal select:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
  .modal input.inerr{ box-shadow:0 0 0 3px rgba(255,59,48,.25); background:#fff0ef; }
  .acwrap{ position:relative; }
  .acsug{ display:none; position:absolute; left:0; right:0; top:100%; margin-top:2px; background:var(--card,#fff); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(23,31,56,.18); z-index:30; max-height:230px; overflow-y:auto; }
  .acopt{ padding:9px 12px; font-size:13px; cursor:pointer; }
  .acopt:hover{ background:var(--accent-soft); }
  .modal input.mb-field{ background:#fffbe6; }
  .modal input.mb-field:focus{ background:#fffdf2; }
  /* 予定の登録・編集画面の入力欄/リスト/メモを薄い黄色に */
  #evModal input:not([type=checkbox]):not([type=radio]),#evModal select,#evModal #evNote{ background:#fffbe6; }
  #evModal input:not([type=checkbox]):not([type=radio]):focus,#evModal select:focus,#evModal #evNote:focus{ background:#fffdf2; }
  /* 2026年10月 予定の追加・編集: Outlook クラシック風（案B・上村さん選定）。見出し・タブ・リボンは止めて、中身だけスクロールする */
  #evModal .mbox{ width:1000px; max-width:96vw; max-height:92vh; padding:0; display:flex; flex-direction:column; overflow:hidden; resize:both; }
  #evModal .mbox > .ev-head{ position:static; margin:0; border-radius:20px 20px 0 0; flex:0 0 auto; }
  .evb-tabs{ display:flex; flex:0 0 auto; background:var(--bg); border-bottom:1px solid var(--line); padding:0 10px; overflow-x:auto; }
  .evb-tabs button{ min-height:44px; padding:0 16px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--sub); cursor:pointer; font-size:14px; font-weight:600; white-space:nowrap; }
  .evb-tabs button.on{ border-bottom-color:var(--accent); color:var(--accent-dark); font-weight:800; background:var(--card); }
  .evb-ribbon{ display:flex; flex:0 0 auto; align-items:stretch; background:var(--card); border-bottom:1px solid var(--line); padding:6px 6px 0; overflow-x:auto; }
  .evb-grp{ display:flex; flex-direction:column; flex:0 0 auto; border-right:1px solid var(--line); padding:0 6px; }
  .evb-grp:last-child{ border-right:0; }
  .evb-items{ display:flex; gap:4px; align-items:flex-start; flex:1; }
  #evModal .evb-ribbon .mbtns{ position:static; margin:0; padding:0; border:0; background:none; display:flex; gap:4px; }
  .evb-gname{ font-size:11.5px; color:var(--sub); text-align:center; padding:2px 0 4px; }
  #evModal .evb-ribbon .rb{ flex:0 0 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-width:72px; min-height:66px; padding:4px 6px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--text); cursor:pointer; font-size:13px; font-weight:600; line-height:1.25; text-align:center; }
  #evModal .evb-ribbon .rb .ic{ font-size:22px; line-height:1; }
  #evModal .evb-ribbon .rb:hover{ background:var(--hover); border-color:var(--line); }
  #evModal .evb-ribbon .rb.on{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-dark); font-weight:800; }
  #evModal .evb-ribbon .rb.ok{ background:var(--accent); color:#fff; min-width:84px; font-weight:800; }
  #evModal .evb-ribbon .rb.ok:hover{ background:var(--accent-dark); }
  #evModal .evb-ribbon .rb.danger{ color:var(--red); }
  .evb-rsmall{ display:flex; flex-direction:column; gap:3px; justify-content:center; min-height:66px; }
  #evModal .evb-rsmall label{ display:flex; align-items:center; gap:6px; margin:0; font-size:13px; font-weight:600; color:var(--text); white-space:nowrap; }
  #evModal .evb-rsmall select{ width:auto; min-height:36px; padding:3px 8px; font-size:13.5px; border-radius:8px; }
  .evb-cdot{ display:inline-block; width:20px; height:20px; border-radius:50%; background:#007aff; box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--line2); }
  .evb-colorpanel{ flex:0 0 auto; padding:10px 16px; border-bottom:1px solid var(--line); background:var(--card); }
  .evb-info{ flex:0 0 auto; background:#fff8d6; color:#5c4a00; border-bottom:1px solid #eadf9c; padding:8px 16px; font-size:13.5px; line-height:1.6; }
  body.dark .evb-info{ background:#3a3418; color:#f1e7b8; border-color:#5a5226; }
  .evb-body{ flex:1 1 auto; min-height:0; overflow:auto; }
  .evb-form,.evb-sa{ padding:14px 18px 18px; }
  .evb-grid{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:8px 12px; align-items:center; }
  .evb-grid .lb{ display:flex; align-items:center; justify-content:flex-end; gap:4px; min-height:44px; font-size:14px; font-weight:700; color:var(--text); text-align:right; }
  .evb-grid .lb .req{ color:var(--red); font-size:12px; }
  .evb-grid .lb.btn button{ width:100%; min-height:44px; border:1px solid var(--line2); background:var(--bg); color:var(--text); border-radius:8px; cursor:pointer; font-size:14px; font-weight:700; white-space:nowrap; }
  .evb-grid .lb.btn button:hover{ background:var(--hover); }
  #evModal .evb-grid input[type=text]:not(.tokeninput){ padding:10px 12px; }
  .evb-row{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; min-width:0; }
  #evModal .evb-row input[type=text]{ flex:1 1 200px; width:auto; min-width:0; }
  #evModal .evb-row input[type=date]{ width:auto; flex:0 1 170px; min-width:140px; padding:10px; }
  #evModal .evb-row input[type=time]{ width:auto; flex:0 1 120px; min-width:104px; padding:10px; }
  .evb-state{ display:inline-flex; align-items:center; gap:4px; font-size:13px; border-radius:12px; padding:2px 10px; background:var(--hover); color:var(--sub); }
  .evb-state.on{ background:#e3f4e8; color:#1e7a3a; font-weight:700; }
  body.dark .evb-state.on{ background:#1f3a29; color:#8fe0a9; }
  #evModal label.evb-sw{ position:relative; display:inline-flex; align-items:center; gap:8px; margin:0; min-height:44px; font-size:14px; font-weight:700; color:var(--text); cursor:pointer; user-select:none; }
  #evModal .evb-sw input{ position:absolute; opacity:0; width:1px; height:1px; }
  .evb-sw .tr{ width:46px; height:26px; border-radius:13px; background:#c4c9d0; position:relative; transition:.15s; flex:none; }
  .evb-sw .tr:after{ content:""; position:absolute; left:3px; top:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:.15s; }
  .evb-sw input:checked+.tr{ background:var(--accent); }
  .evb-sw input:checked+.tr:after{ left:23px; }
  .evb-sw input:focus-visible+.tr{ outline:2px solid var(--accent); outline-offset:2px; }
  #evModal .evb-tok{ background:#fffbe6; min-height:46px; }
  body.dark #evModal .evb-tok{ background:#332f1d; }
  #evModal .evb-tok .token{ font-size:14px; padding:2px 3px 2px 12px; }
  #evModal .evb-tok .token button{ width:34px; height:34px; font-size:18px; }
  #evModal .retoolbar button{ min-width:40px; min-height:36px; font-size:15px; }
  #evModal .evb-tok .tokeninput{ min-height:34px; }
  #evModal .evb-tok .tokeninput:disabled{ cursor:not-allowed; }
  #evModal .evb-tok .tokensug{ z-index:20; }
  #evModal .tokopt{ min-height:44px; display:flex; align-items:center; gap:8px; font-size:14px; }
  .evb-sub{ margin:10px 0 0 162px; }
  .evzoom{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--card,#fff); }
  .evzoom-tx{ flex:1 1 260px; font-size:14px; line-height:1.6; }
  .evzoom-note{ font-size:12.5px; color:var(--sub); }
  .evzoom-who{ flex:1 1 100%; font-size:14px; font-weight:700; color:var(--text); }
  .evzoom-btn{ min-height:44px; padding:8px 16px; border:none; border-radius:10px; background:#007aff; color:#fff; font-size:15px; font-weight:700; cursor:pointer; }
  .evb-memo{ margin-top:14px; border-top:1px solid var(--line); padding-top:12px; }
  #evModal .evb-memo #evNote{ min-height:150px; }
  .evb-foot{ display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); font-size:14px; }
  .evb-foot .cat{ display:inline-flex; align-items:center; gap:6px; }
  .evb-foot .dot{ width:16px; height:16px; border-radius:4px; display:inline-block; background:#007aff; }
  /* 空き時間を見る（スケジュールアシスタント）: 出席者×30分のマスの表 */
  .evb-sactl{ display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; margin-bottom:10px; font-size:15px; }
  .evb-sactl button{ min-height:44px; padding:0 14px; border:1px solid var(--line2); border-radius:8px; background:var(--card); color:var(--text); cursor:pointer; font-size:14px; font-weight:600; }
  .evb-hint{ font-size:13px; color:var(--sub); }
  .evb-legend{ display:flex; gap:14px; flex-wrap:wrap; font-size:13px; color:var(--sub); margin-bottom:8px; }
  .evb-legend i{ display:inline-block; width:14px; height:14px; border-radius:3px; vertical-align:-2px; margin-right:4px; }
  .evb-sawrap{ overflow-x:auto; border:1px solid var(--line); border-radius:8px; }
  .evb-satbl{ border-collapse:collapse; width:100%; font-size:13px; }
  .evb-satbl th,.evb-satbl td{ border:1px solid var(--line); height:42px; padding:0; }
  .evb-satbl th{ background:var(--bg); font-weight:600; font-size:12px; min-width:44px; }
  .evb-satbl td.nm,.evb-satbl th.nm{ padding:0 10px; white-space:nowrap; background:var(--card); position:sticky; left:0; z-index:1; min-width:110px; text-align:left; }
  .evb-satbl td.nm small{ color:var(--sub); margin-left:6px; }
  .evb-satbl td.slot{ min-width:22px; cursor:pointer; }
  .evb-satbl td.slot:hover{ outline:2px solid var(--accent); outline-offset:-2px; }
  .evb-satbl td.slot.b{ background:#5b8def; }
  .evb-satbl td.slot.sel{ box-shadow:inset 0 0 0 9999px rgba(30,142,62,.25); }
  .evb-satbl td.slot.sel.b{ box-shadow:inset 0 0 0 9999px rgba(215,0,21,.55); }
  .evb-satbl td.st{ padding:0 10px; white-space:nowrap; font-weight:700; font-size:12.5px; }
  .evb-satbl td.st.ok{ color:#1e7a3a; }
  .evb-satbl td.st.ng{ color:var(--red); }
  .evb-sug{ display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 12px; }
  .evb-sug .findslot{ min-height:44px; padding:0 14px; font-size:14px; font-weight:700; border-radius:8px; }
  #evModal .evb-sa .findtgl{ min-height:44px; font-size:14px; }
  #evRepeatModal .evmem label{ min-height:40px; font-size:15px; }
  @media (max-width:900px){
    #evModal .mbox{ max-height:92vh; border-radius:22px 22px 0 0; }
    #evModal .mbox > .ev-head{ border-radius:22px 22px 0 0; }
    .evb-gname,.evb-long{ display:none; }
    #evModal .evb-ribbon .rb{ min-width:62px; min-height:58px; font-size:12px; }
    .evb-rsmall{ min-height:58px; }
    .evb-grid{ grid-template-columns:minmax(0,1fr); gap:4px; }
    .evb-grid .lb{ justify-content:flex-start; min-height:0; padding-top:8px; text-align:left; }
    .evb-grid .lb.btn button{ width:auto; padding:0 14px; }
    .evb-sub{ margin-left:0; }
    .evb-form,.evb-sa{ padding:12px 14px 18px; }
    .evb-tabs button{ padding:0 12px; font-size:13.5px; }
    .evb-ribbon{ flex-wrap:wrap; row-gap:4px; padding-bottom:6px; }   /* スマホ縦: リボンを2段にして「予定を登録」が隠れないようにする */
    .evb-grp{ border-right:0; padding:0 2px; }
  }
  /* 細いスマホ: 見出しの✕・空き時間のタブと同じ働きのボタンは隠して、リボンを2段に収める */
  @media (max-width:600px){ #evModal .evb-ribbon .rb.evb-dup{ display:none; } #evModal .evb-grp, #evModal .evb-ribbon .evb-items{ display:contents; } .evb-ribbon{ gap:4px; } }
  /* 横向きのスマホなど高さが足りない画面: 見出し・リボンも一緒にスクロールさせて、入れる欄の高さを確保する */
  @media (max-height:520px){
    #evModal .mbox{ display:block; overflow:auto; }
    .evb-body{ overflow:visible; }
    .evb-ribbon{ flex-wrap:nowrap; }
  }
  .matest{ margin-top:10px; padding:9px 12px; border-radius:9px; font-size:13px; font-weight:600; line-height:1.5; }
  .matest:empty{ display:none; }
  .matest{ background:#eef1f7; color:var(--sub); }
  .matest.ok{ background:#e3f9e9; color:#1f8f3b; }
  .matest.ng{ background:#ffe5e3; color:var(--red); }
  .modal label.cbrow{ display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--text); margin:12px 0 2px; cursor:pointer; }
  .evcolors{ display:flex; flex-wrap:wrap; gap:7px; }
  .evcolor{ display:inline-flex; align-items:center; gap:6px; border:1.5px solid var(--line); background:var(--card,#fff); border-radius:999px; padding:5px 11px 5px 8px; font-size:12.5px; font-weight:600; color:var(--text); cursor:pointer; }
  .evcolor .evcolor-dot{ width:14px; height:14px; border-radius:50%; flex:0 0 auto; box-shadow:0 0 0 1px rgba(0,0,0,.08) inset; }
  .evcolor:hover{ background:var(--hover); }
  .evcolor.on{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft); }
  .evcolor.whole{ border-color:#334155; }
  .evpal-lb{ font-size:11.5px; color:var(--sub); margin:9px 0 5px; }
  .evpal{ display:flex; flex-wrap:wrap; gap:6px; }
  .evpal-sw{ width:26px; height:26px; border-radius:7px; cursor:pointer; border:2px solid transparent; box-shadow:0 0 0 1px rgba(0,0,0,.12) inset; padding:0; }
  .evpal-sw.on{ border-color:var(--text); box-shadow:0 0 0 2px var(--accent-soft),0 0 0 1px rgba(0,0,0,.12) inset; }
  /* 管理: 色設定 */
  .ecrow{ display:flex; align-items:center; gap:8px; margin-bottom:6px; }
  .ecrow input[type=color]{ width:40px; height:34px; padding:0; border:1px solid var(--line); border-radius:8px; background:none; cursor:pointer; }
  .ecrow input[type=text]{ flex:1; padding:7px 10px; border:.5px solid var(--line); border-radius:8px; font-size:13px; }
  .modal .mrow{ display:flex; gap:10px; }
  .modal .mrow>div{ flex:1; min-width:0; }
  .modal .mrow input,.modal .mrow select{ width:100%; min-width:0; box-sizing:border-box; }
  /* 予定の時間は「開始 〜 終了」を1行で入れる */
  .evtimerow{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .evtimerow input[type=time]{ flex:1 1 118px; min-width:110px; box-sizing:border-box; }
  .evtilde{ color:var(--sub); font-weight:800; font-size:15px; flex:0 0 auto; }
  .evdur{ font-size:12px; color:var(--sub); flex:0 0 auto; }
  .evdur.bad{ color:var(--red,#e5484d); font-weight:700; }
  .modal .mbtns{ display:flex; gap:10px; margin-top:20px; }
  .modal .mbtns button{ flex:1; border:none; border-radius:12px; padding:13px; font-size:15px; font-weight:700; transition:transform .1s; }
  .modal .mbtns button:active{ transform:scale(.97); }
  .modal .mbtns .ok{ background:var(--accent); color:#fff; }
  .modal .mbtns .cancel{ background:#e9e9ee; color:var(--text); }

  #toast{ position:fixed; bottom:80px; left:50%; transform:translateX(-50%) translateY(10px); background:rgba(40,40,42,.95); color:#fff; padding:11px 18px; border-radius:14px; font-size:14px; font-weight:600; opacity:0; transition:opacity .25s, transform .25s; pointer-events:none; z-index:99; backdrop-filter:blur(10px); max-width:calc(100vw - 24px); }
  #updateBar{ display:none; position:fixed; top:0; left:0; right:0; z-index:200; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; background:linear-gradient(90deg,#0d5bd8,#0a84ff); color:#fff; padding:10px 16px calc(10px + env(safe-area-inset-top)); font-size:14px; font-weight:700; box-shadow:0 3px 12px rgba(0,0,0,.2); }
  #updateBar button{ border:none; background:#fff; color:#0a5bd8; border-radius:10px; padding:7px 16px; font-size:14px; font-weight:800; cursor:pointer; }
  #updateBar button:active{ transform:scale(.97); }
  #toast.withbtn{ display:flex; align-items:center; gap:14px; pointer-events:auto; }
  #toast .tundo{ border:none; background:#fff; color:#111; border-radius:9px; padding:7px 14px; font-weight:800; font-size:13.5px; cursor:pointer; flex:0 0 auto; }
  #toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

  /* ホーム(My Day) */
  .mobilenav{ display:none !important; }
  #home{ display:none; flex:1; overflow-y:auto; background:var(--bg); }
  body.view-home #home{ display:block; }
  body.view-home .listpane, body.view-home .detail{ display:none; }
  #board{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:22px 26px; }
  body.view-board #board{ display:block; }
  body.view-board .listpane, body.view-board .detail{ display:none; }
  #calendar{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:18px 22px; }
  body.view-calendar #calendar{ display:block; }
  body.view-calendar .listpane, body.view-calendar .detail{ display:none; }
  #mail{ display:none; flex:1; overflow:hidden; background:var(--bg); padding:16px 20px; flex-direction:column; }
  body.view-mail #mail{ display:flex; }
  body.view-mail .listpane, body.view-mail .detail{ display:none; }
  .mailtop{ display:flex; align-items:center; gap:10px; margin-bottom:8px; flex-wrap:wrap; flex:0 0 auto; }
  .mailtop .chip{ background:#1f406b; color:#fff; border:1px solid #1f406b; border-radius:999px; padding:7px 14px; font-size:13px; font-weight:700; cursor:pointer; white-space:nowrap; transition:background .12s; }
  .mailtop .chip:hover{ background:#2a5487; }
  .mailtop .chip.active{ background:#0a84ff; border-color:#0a84ff; box-shadow:0 0 0 2px rgba(10,132,255,.3); }
  .mailtop .chip .cc{ margin-left:5px; font-size:11px; opacity:.85; font-weight:600; }
  /* メールのステータス小タブ: 目立つシックな非青色(深いティールグリーン) */
  .mailsubtabs{ display:flex; gap:7px; flex-wrap:wrap; margin-bottom:6px; }
  .mailsubtabs .chip{ background:#eef3f1; color:#2f4a44; border:1px solid #d3e2dd; border-radius:999px; padding:7px 15px; font-size:13px; font-weight:700; cursor:pointer; white-space:nowrap; transition:background .12s, box-shadow .12s; }
  .mailsubtabs .chip:hover{ background:#dfeae6; }
  .mailsubtabs .chip.active{ background:#0f766e; color:#fff; border-color:#0f766e; box-shadow:0 2px 8px rgba(15,118,110,.35); }
  .mailsubtabs .chip .cc{ margin-left:6px; font-size:11px; opacity:.85; font-weight:700; }
  body.dark .mailsubtabs .chip{ background:#1e2a27; color:var(--text); border-color:#2c3d38; }
  body.dark .mailsubtabs .chip.active{ background:#0f766e; color:#fff; border-color:#0f766e; }
  .mailfolders{ display:flex; gap:8px; flex-wrap:wrap; width:100%; margin-top:2px; }
  .mailfolders .folder{ background:#eef1f6; color:#2e3440; border:1px solid #d3d9e3; border-radius:10px; padding:8px 18px; font-size:14px; font-weight:800; cursor:pointer; white-space:nowrap; transition:background .12s; }
  .mailfolders .folder:hover{ background:#e2e7f0; }
  .mailfolders .folder.active{ background:#0a84ff; color:#fff; border-color:#0a84ff; box-shadow:0 0 0 2px rgba(10,132,255,.28); }
  .mailfolders .folder .cc{ margin-left:7px; font-size:12px; opacity:.85; font-weight:700; }
  body.dark .mailfolders .folder{ background:#1e2128; color:var(--text); border-color:var(--line2); }
  body.dark .mailfolders .folder.active{ background:#0a84ff; color:#fff; border-color:#0a84ff; }
  .mailsearch{ display:flex; align-items:center; gap:6px; background:var(--card,#fff); border:1px solid var(--line); border-radius:10px; padding:5px 10px; min-width:240px; flex:1 1 240px; max-width:420px; }
  .mailsearch .msi{ font-size:13px; color:var(--sub); }
  .mailsearch input{ flex:1; border:none!important; background:none!important; padding:2px 0!important; font-size:13.5px!important; box-shadow:none!important; }
  .mailsearch .msx{ border:none; background:var(--hover); color:var(--sub); border-radius:50%; width:20px; height:20px; cursor:pointer; font-size:11px; flex:0 0 auto; }
  .maillayout{ display:flex; flex:1; min-height:0; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-sm); background:var(--card,#fff); }
  .maillist{ width:380px; flex:0 0 auto; border-right:1px solid var(--line); overflow-y:auto; }
  /* 単票表示（プレビュー廃止）: 一覧は全幅、本文は全幅の単票 */
  .maillistfull{ flex:1; min-height:0; overflow-y:auto; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-sm); background:var(--card,#fff); }
  .mailsingle{ flex:1; min-height:0; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-sm); background:var(--card,#fff); }
  .mailsingle .mread-back{ display:inline-block; border:none; background:none; color:var(--accent); font-size:15px; font-weight:700; margin-bottom:10px; cursor:pointer; padding:2px 0; }
  /* メール本文を別ウインドウ(アプリ内モーダル)で開く */
  /* メール本文モーダル: 幅を大きめの既定にし、マウスでリサイズ可能に(ID指定で .modal .mbox の430pxに勝たせる) */
  #mailReadModal .mbox{ width:1040px; max-width:94vw; height:80vh; max-height:90vh; padding:0; overflow:hidden; resize:both; min-width:460px; min-height:340px; display:flex; flex-direction:column; position:relative; }
  .mailread-head{ flex:0 0 auto; height:34px; display:flex; align-items:center; gap:8px; padding:0 6px 0 14px; background:var(--accent); color:#fff; font-size:13px; font-weight:700; cursor:move; user-select:none; border-radius:20px 20px 0 0; } /* 2026年09月: 灰色→青にそろえた */
  .mailread-head .mrh-title{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mailread-head .mrh-hint{ font-size:11px; font-weight:400; color:rgba(255,255,255,.7); }
  .mailread-head .mrh-btns{ display:flex; gap:2px; flex:0 0 auto; }
  .mailread-head .mrh-b{ background:transparent; border:none; color:rgba(255,255,255,.9); font-size:13px; width:30px; height:26px; border-radius:6px; cursor:pointer; line-height:1; display:flex; align-items:center; justify-content:center; }
  .mailread-head .mrh-b:hover{ background:rgba(255,255,255,.2); }
  .mailread-head #mailReadClose:hover{ background:#e5484d; }
  .mailreadbox .mread{ flex:1; overflow-y:auto; padding-top:10px; }
  .mailreadbox.min{ height:auto !important; min-height:0 !important; resize:none !important; }
  .mailreadbox.min .mread{ display:none; }
  .mailreadbox.max{ width:100vw !important; height:100dvh !important; max-width:100vw !important; max-height:100dvh !important; border-radius:0 !important; resize:none !important; }
  .mailreadbox.max .mailread-head{ border-radius:0; }
  .mailreadbox .mread .rsub{ padding-right:40px; }
  /* モバイル: 全画面固定＋ヘッダー常時表示。height:autoだと縦中央配置でヘッダー(✕)が画面外に出てしまう */
  @media(max-width:900px){
    #mailReadModal{ align-items:stretch; }
    #mailReadModal .mbox{ width:100vw; max-width:100vw; min-width:0; height:100dvh; max-height:100dvh; border-radius:0; resize:none; }
    .mailread-head{ height:46px; border-radius:0; cursor:default; }
    .mailread-head .mrh-hint{ display:none; }
    #mailReadMin,#mailReadMax{ display:none; }   /* モバイルでは最小化/最大化は不要 */
    .mailread-head #mailReadClose{ width:auto; height:34px; padding:0 14px; background:rgba(229,72,77,.92); font-weight:700; font-size:13px; }
    .mailread-head #mailReadClose::after{ content:"　閉じる"; }
  }
  .mailresizer{ flex:0 0 auto; width:7px; cursor:col-resize; background:var(--line); position:relative; transition:background .15s; }
  .mailresizer::before{ content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:2px; height:28px; border-radius:2px; background:var(--sub); opacity:.55; }
  .mailresizer:hover{ background:var(--accent-soft); }
  .mailresizer:hover::before{ background:var(--accent); opacity:1; }
  .mlrow{ padding:8px 14px; border-bottom:1px solid var(--line); cursor:pointer; border-left:3px solid transparent; transition:background .1s; }
  .mlrow:hover{ background:var(--hover); }
  .mlrow.sel{ background:#fff; border-left-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent-soft); }
  .mlrow .l1{ display:flex; align-items:baseline; gap:8px; }
  .mlrow .mfrom{ font-weight:600; font-size:14px; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mlrow.unread{ background:#fff8d4; }        /* 未開封=薄い黄色（既読は白のまま）*/
  .mlrow.unread.sel{ background:#fff3bf; }
  body.dark .mlrow.unread,body.dark .mlrow.unread.sel{ background:#3a3420; }
  .mlrow .mdot{ width:9px; height:9px; border-radius:50%; background:var(--accent); flex:0 0 auto; box-shadow:0 0 0 2px rgba(0,122,255,.18); }
  .mlrow .mfrom{ font-weight:500; }
  .mlrow.unread .mfrom{ font-weight:800; color:var(--text); }
  .mlrow .mdate{ font-size:11px; color:var(--sub); flex:0 0 auto; }
  .mlrow .msub2{ font-size:13.5px; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--sub); }
  .mlrow.unread .msub2{ font-weight:700; color:var(--text); }
  .mlrow .mprev2{ font-size:12px; color:var(--sub); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mlrow .mbline{ margin-top:5px; display:flex; gap:5px; }
  .mbadge{ font-size:10px; font-weight:700; border-radius:999px; padding:1px 9px; }
  .mbadge.unh{ background:#ffe5e3; color:var(--red); } .mbadge.prog{ background:#fff1dd; color:#b25b00; } .mbadge.done{ background:#e3f9e9; color:#1f8f3b; } .mbadge.task{ background:var(--accent-soft); color:var(--accent); }
  .mbadge.nr{ background:var(--accent); color:#fff; } .mbadge.rd{ background:#eef1f7; color:var(--sub); }
  .mlrow .l1{ display:flex; align-items:center; gap:7px; }
  .mlrow .mlchk{ flex:0 0 auto; width:16px; height:16px; cursor:pointer; }
  .mlrow.checked,.mlrow.unread.checked,.mlrow.checked.sel,.mlrow.unread.checked.sel{ background:#d6e8ff; }
  .mlrow.kcur{ outline:2px solid var(--accent); outline-offset:-2px; }  /* キーボードで選んでいる行(↑↓で移動・Enterで開く) */  /* チェック時=薄い青（未読の黄より優先）*/
  /* Cybozu風: 左フォルダーレール＋右列型リスト */
  .mailwrap{ flex:1; min-height:0; display:flex; gap:12px; }
  .mailrail{ width:198px; flex:0 0 auto; overflow-y:auto; border:1px solid var(--line); border-radius:12px; background:var(--card,#fff); box-shadow:var(--shadow-sm); padding:8px 6px; }
  .mailrail .mfolder{ display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:none; border:none; border-radius:8px; padding:9px 10px; font-size:14px; font-weight:700; color:var(--text); cursor:pointer; }
  .mailrail .mfolder:hover{ background:var(--hover); }
  .mailrail .mfolder.active{ background:var(--accent-soft); color:var(--accent); }
  .mailrail .mfolder .fi{ flex:0 0 auto; font-size:15px; }
  .mailrail .mfolder .fl{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mailrail .mfolder .cc{ flex:0 0 auto; font-size:12px; font-weight:800; background:#e5484d; color:#fff; border-radius:999px; padding:1px 8px; min-width:20px; text-align:center; }
  .mailrail .mfolder .cc.muted{ background:var(--hover); color:var(--sub); }
  .mailrail .railgrp{ display:flex; align-items:center; gap:5px; font-size:11.5px; font-weight:800; color:var(--sub); padding:8px 8px 3px; margin-top:6px; border-top:1px solid var(--line); white-space:nowrap; cursor:pointer; border-radius:6px; }
  .mailrail .railgrp:hover{ background:var(--hover); }
  .mailrail .railgrp:first-child{ border-top:none; margin-top:0; }
  .mailrail .railgrp .rgcaret{ flex:0 0 auto; font-size:9px; color:var(--sub); width:11px; }
  .mailrail .railgrp .rgl{ flex:1; overflow:hidden; text-overflow:ellipsis; }
  .mailrail .mfolder .fl{ font-weight:600; }
  .mailmain{ flex:1; min-width:0; display:flex; flex-direction:column; min-height:0; }
  /* メール一覧の列幅(ドラッグ調整・この端末に記憶)。既定=差出人190/作成日時120 */
  .maillistfull{ --mlw-from:190px; --mlw-date:120px; }
  .mlhead{ display:flex; align-items:center; gap:8px; padding:7px 14px; font-size:11px; font-weight:700; color:var(--sub); border-bottom:1px solid var(--line); background:var(--hover); position:sticky; top:0; z-index:1; }
  .xhl{ color:#e11d48; font-weight:800; }  /* 横断検索で探した言葉 */
  body.dark .xhl{ color:#fb7185; }
  .mlhead .hsort{ cursor:pointer; user-select:none; padding:2px 4px; border-radius:4px; } .mlhead .hsort:hover{ background:var(--line); color:var(--text); } .mlhead .hsort.on{ color:var(--accent); }  /* 押すと並べ替え(もう一度押すと逆順) */
  .mlhead .hchk{ width:50px; flex:0 0 auto; } .mlhead .hsub{ flex:1; min-width:0; } .mlhead .hfrom{ width:var(--mlw-from); flex:0 0 auto; position:relative; } .mlhead .hdate{ width:var(--mlw-date); flex:0 0 auto; text-align:right; position:relative; }
  /* 列の境界をドラッグして幅を変えるつまみ(ヘッダーセル左端に絶対配置=行とズレない) */
  .mlresz{ position:absolute; left:-6px; top:0; bottom:0; width:11px; cursor:col-resize; z-index:3; }
  .mlresz::before{ content:''; position:absolute; left:5px; top:-4px; bottom:-4px; width:1px; background:var(--line); }
  .mlresz:hover::before,.mlresz.dragging::before{ background:var(--accent); width:2px; }
  body.mlresizing{ cursor:col-resize!important; user-select:none; }
  .mlrow.col{ display:flex; align-items:center; gap:8px; padding:9px 14px; }
  .mlrow.col .cchk{ width:50px; flex:0 0 auto; display:flex; align-items:center; gap:5px; }
  .mlrow.col .csub{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13.5px; color:var(--text); display:flex; align-items:center; gap:6px; }
  .mlrow.col.unread .csub{ font-weight:800; }
  .mlrow.col .cfrom{ width:var(--mlw-from); flex:0 0 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12.5px; color:var(--sub); }
  .mlrow.col .cdate{ width:var(--mlw-date); flex:0 0 auto; text-align:right; font-size:11.5px; color:var(--sub); }
  .mlrow.col .csub .subtxt{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  /* モバイル専用要素(アバター/差出人行/プレビュー)はデスクトップでは出さない */
  .mlrow .mava,.mlrow .cmfrom,.mlrow .cprev{ display:none; }
  @media(max-width:760px){
    .mailwrap{ flex-direction:column; gap:8px; }
    .mailrail{ width:100%; flex:0 0 auto; display:flex; flex-direction:row; overflow-x:auto; gap:4px; padding:6px; }
    .mailrail .mfolder{ width:auto; white-space:nowrap; flex:0 0 auto; }
    .mailrail .railgrp{ border-top:none; margin-top:0; padding:0 6px; align-self:center; flex:0 0 auto; border-left:1px solid var(--line); }
    .mailrail .railgrp:first-child{ border-left:none; }
    .mlhead .hfrom,.mlrow.col .cfrom,.mlhead .hdate{ display:none; }
    /* ===== モバイルはOutlook風カード(アバター/差出人+時刻/件名/プレビュー2行) ===== */
    .mlrow.col{
      display:grid; grid-template-columns:46px minmax(0,1fr) auto;
      grid-template-areas:"ava from date" "ava sub flag" "ava prev prev";
      align-items:center; row-gap:2px; column-gap:4px; padding:11px 12px 11px 10px !important;
    }
    .mlrow.col .cchk{ display:contents; }
    .mlrow.col .mlchk{ display:none; }                      /* 選択はアバターのタップで行う */
    .mlrow.col .cfrom{ display:none; }
    .mlrow.col .mava{
      grid-area:ava; display:flex; align-items:center; justify-content:center; align-self:start; margin-top:2px;
      width:38px; height:38px; border-radius:50%; color:#fff; font-size:14px; font-weight:800; line-height:1;
      user-select:none; cursor:pointer; letter-spacing:.5px;
    }
    .mlrow.col .mava.on{ background:var(--accent) !important; font-size:17px; }
    .mlrow.col .cmfrom{
      grid-area:from; display:block; min-width:0;
      font-size:14.5px; font-weight:600; color:var(--text);
      overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    }
    .mlrow.col .cmfrom .mdot{ display:inline-block; margin-right:2px; vertical-align:middle; }
    .mlrow.col.unread .cmfrom{ font-weight:800; }
    .mlrow.col .cdate{ grid-area:date; width:auto; font-size:11px; white-space:nowrap; align-self:start; margin-top:3px; }
    .mlrow.col.unread .cdate{ color:var(--accent); font-weight:700; }
    .mlrow.col .csub{ grid-area:sub; font-size:13.5px; white-space:nowrap; }
    .mlrow.col .csub .mdot-pc{ display:none; }              /* 未読ドットはモバイルでは差出人行に出す */
    .mlrow.col .mflag{ grid-area:flag; justify-self:end; font-size:16px; padding:0 2px; }
    .mlrow.col .cprev{
      grid-area:prev; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
      overflow:hidden; font-size:12.5px; color:var(--sub); line-height:1.5; word-break:break-all;
    }
    /* 未読は黄色背景ではなく太字＋青ドット＋青時刻で示す(Outlook流) */
    .mlrow.col.unread:not(.checked),.mlrow.col.unread.sel:not(.checked){ background:transparent; }
    body.dark .mlrow.col.unread:not(.checked),body.dark .mlrow.col.unread.sel:not(.checked){ background:transparent; }
  }
  body.dark .mlrow.checked,body.dark .mlrow.unread.checked,body.dark .mlrow.checked.sel{ background:#1f3350; }
  .mlrow .mflag{ flex:0 0 auto; font-size:15px; color:#c9ccd4; cursor:pointer; line-height:1; }
  .mlrow .mflag.on{ color:#e5484d; }
  .mailbulk{ display:flex; align-items:center; gap:10px; padding:7px 12px; margin-bottom:6px; background:#eef3fb; border:1px solid var(--accent-soft); border-radius:11px; font-size:13px; flex-wrap:wrap; }
  .mailbulk>span{ white-space:nowrap; }
  .mailbulk button[disabled]{ opacity:.4; cursor:not-allowed; pointer-events:none; }
  /* 選択中の一括操作ボタン=塗りつぶしで目立たせる(解除=グレー/未読=青/ごみ箱=赤/迷惑解除=緑) */
  .mailbulk .bb{ border:none; border-radius:9px; padding:6px 14px; font-size:12.5px; font-weight:700; color:#fff; cursor:pointer; box-shadow:0 1px 3px rgba(23,31,56,.22); transition:filter .12s, transform .1s; white-space:nowrap; }
  .mailbulk .bb:hover{ filter:brightness(1.08); } .mailbulk .bb:active{ transform:scale(.97); }
  .mailbulk .bb.clear{ background:#64748b; }
  .mailbulk .bb.unrd{ background:var(--accent); }
  .mailbulk .bb.trash{ background:#e5484d; }
  .mailbulk .bb.unspam{ background:#0f766e; }
  /* ホーム: 業務アプリ バナー */
  .hbnrsec{ margin:2px 0 6px; }
  .hbnr-h{ display:flex; align-items:center; gap:10px; font-size:15px; font-weight:800; margin-bottom:9px; }
  .hbnr-edit{ border:1px solid transparent; background:var(--accent-soft); color:var(--accent);   /* 2026年10月: ✏️編集は青系にそろえる（v588） */ border-radius:8px; padding:3px 11px; font-size:12px; font-weight:700; cursor:pointer; transition:all .12s; }
  .hbnr-edit:hover{ background:var(--hover); color:var(--accent); border-color:var(--accent); }
  .hbnr-empty{ border:1px dashed var(--border); border-radius:13px; padding:16px; text-align:center; color:var(--sub); font-size:13px; font-weight:600; cursor:pointer; transition:all .12s; }
  .hbnr-empty:hover{ background:var(--hover); color:var(--accent); border-color:var(--accent); }
  .hbnr-grid{ display:flex; flex-wrap:wrap; gap:11px; }
  .bnr{ display:inline-flex; flex:0 0 auto; align-items:center; gap:13px; padding:15px 17px; border-radius:15px; text-decoration:none; box-shadow:var(--shadow-sm); transition:transform .1s, box-shadow .15s; min-height:66px; max-width:100%; }
  /* よく使う機能(アプリ内画面へのショートカット)=ボタン版のbnr */
  .bnr.featbnr{ border:none; cursor:pointer; font:inherit; text-align:left; background:var(--card,#fff); color:var(--text); border:1px solid var(--line); }
  .bnr.featbnr:hover{ background:var(--hover); }
  .bnr.featbnr .bnr-t{ color:var(--text); }
  .bnr:hover{ transform:translateY(-2px); box-shadow:0 7px 20px rgba(23,31,56,.24); }
  .bnr-ic{ font-size:31px; flex:0 0 auto; line-height:1; }
  .bnr-tx{ display:flex; flex-direction:column; min-width:0; gap:2px; }
  .bnr-t{ font-size:15.5px; font-weight:800; line-height:1.3; white-space:nowrap; }
  .bnr-s{ font-size:12px; opacity:.9; line-height:1.35; white-space:nowrap; }
  /* 管理: バナー編集行 */
  .bnredit{ display:flex; align-items:center; gap:7px; margin-bottom:7px; flex-wrap:wrap; }
  .bnredit input[type=text],.bnredit input:not([type]){ padding:6px 9px; border:.5px solid var(--line); border-radius:8px; font-size:13px; min-width:0; }
  .bnredit .be-title{ flex:1 1 150px; } .bnredit .be-sub{ flex:1 1 130px; } .bnredit .be-url{ flex:2 1 200px; }
  .bnredit .be-ic{ width:46px; text-align:center; font-size:16px; }
  .bnredit input[type=color]{ width:38px; height:32px; padding:0; border:.5px solid var(--line); border-radius:8px; cursor:pointer; flex:0 0 auto; }
  .bnredit button{ flex:0 0 auto; border:none; background:var(--hover); color:var(--text); border-radius:8px; padding:6px 10px; font-size:12px; cursor:pointer; }
  .bnredit button:disabled{ opacity:.4; cursor:not-allowed; }
  /* 新着メールのポップアップアラート */
  .mailalert{ position:fixed; top:78px; right:18px; z-index:9000; width:330px; max-width:calc(100vw - 24px); background:var(--card,#fff); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:13px; box-shadow:0 12px 34px rgba(23,31,56,.3); padding:13px 15px; animation:maslide .25s ease; }
  @keyframes maslide{ from{ transform:translateX(24px); opacity:0; } to{ transform:none; opacity:1; } }
  .mailalert .ma-h{ display:flex; align-items:center; gap:8px; font-weight:800; font-size:14.5px; margin-bottom:7px; }
  .mailalert .ma-x{ margin-left:auto; border:none; background:var(--hover); color:var(--sub); border-radius:50%; width:23px; height:23px; cursor:pointer; font-size:12px; line-height:1; flex:0 0 auto; }
  .mailalert .ma-item{ font-size:12.5px; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.7; }
  .mailalert .ma-click{ cursor:pointer; border-radius:7px; padding:3px 6px; margin:0 -6px; }
  .mailalert .ma-click:hover{ background:var(--hover); }
  .mailalert .ma-btn{ margin-top:10px; width:100%; border:none; background:var(--accent); color:#fff; border-radius:9px; padding:9px; font-size:13px; font-weight:700; cursor:pointer; }
  .mailalert .ma-btn:hover{ filter:brightness(1.05); }
  body.dark .mailalert{ background:#1a1d24; }
  @media(max-width:560px){ .mailalert{ top:auto; bottom:80px; right:10px; left:10px; width:auto; } }
  /* 新着メールの窓：お問い合わせ箱と同じキービジュアル風(案A＝紺〜紫〜ピンクの帯にいいねエマと揺れるベル・1件ずつ白いカード・2026年10月 上村さん依頼) */
  @keyframes kvIn{from{opacity:0;transform:translateY(-14px) scale(.97)}to{opacity:1;transform:none}}
  @keyframes kvRing{0%,100%{transform:rotate(0)}10%{transform:rotate(16deg)}20%{transform:rotate(-14deg)}30%{transform:rotate(10deg)}40%{transform:rotate(-6deg)}50%{transform:rotate(0)}}
  .mailalert.kvA,body.dark .mailalert.kvA{ width:380px; padding:0; overflow:hidden; background:#fff; color:#1e293b; border:none; border-radius:18px; box-shadow:0 18px 48px rgba(15,23,42,.35),0 0 0 1px rgba(236,72,153,.25); animation:kvIn .35s ease-out; }
  .mailalert.kvA .kvTop{ position:relative; display:flex; align-items:center; gap:10px; padding:14px 16px; background:linear-gradient(120deg,#1e3a8a 0%,#7c3aed 55%,#ec4899 100%); color:#fff; overflow:hidden; }
  .mailalert.kvA .kvTop::after{ content:""; position:absolute; right:-30px; top:-40px; width:140px; height:140px; border-radius:50%; background:rgba(255,255,255,.12); pointer-events:none; }
  .mailalert.kvA .kvEmma{ height:54px; width:auto; flex:none; filter:drop-shadow(0 3px 6px rgba(0,0,0,.25)); }
  .mailalert.kvA .kvBell{ position:absolute; left:52px; top:8px; font-size:20px; animation:kvRing 1.6s ease-in-out 2; transform-origin:50% 0; }
  .mailalert.kvA .kvTitle{ display:flex; flex-direction:column; line-height:1.25; }
  .mailalert.kvA .kvEn{ font-size:10.5px; letter-spacing:.28em; font-weight:800; opacity:.85; }
  .mailalert.kvA .kvJa{ font-size:19px; font-weight:900; letter-spacing:.04em; }
  .mailalert.kvA .kvSub{ font-size:12.5px; font-weight:bold; margin-top:2px; background:rgba(255,255,255,.22); border-radius:999px; padding:1px 10px; align-self:flex-start; }
  .mailalert.kvA .ma-x{ position:absolute; right:10px; top:10px; z-index:1; background:rgba(255,255,255,.25); color:#fff; }
  .mailalert.kvA .kvList{ display:flex; flex-direction:column; gap:8px; padding:12px 14px 4px; max-height:52vh; overflow:auto; }
  .mailalert.kvA .kvCard{ display:flex; align-items:center; gap:10px; min-height:56px; text-align:left; border-radius:12px; padding:8px 10px; cursor:pointer; background:#fff; color:#1e293b; border:1px solid #e2e8f0; box-shadow:inset 4px 0 0 #7c3aed,0 2px 8px rgba(15,23,42,.06); font:inherit; width:100%; }
  .mailalert.kvA .kvCard:hover{ background:#fdf2f8; border-color:#f9a8d4; }
  .mailalert.kvA .kvAva{ flex:none; width:32px; height:32px; border-radius:50%; color:#fff; font-weight:800; font-size:14px; display:flex; align-items:center; justify-content:center; }
  .mailalert.kvA .kvBody{ display:flex; flex-direction:column; min-width:0; flex:1; font-size:13px; }
  .mailalert.kvA .kvBody>*{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mailalert.kvA .kvCh{ font-size:11px; font-weight:bold; color:#7c3aed; }
  .mailalert.kvA .kvTx{ color:#64748b; font-size:12px; }
  .mailalert.kvA .kvGo{ flex:none; font-size:12px; font-weight:bold; color:#db2777; }
  .mailalert.kvA .kvMore{ color:#64748b; font-size:12px; padding:0 2px; }
  .mailalert.kvA .ma-btn{ display:block; width:calc(100% - 28px); margin:8px 14px 14px; background:linear-gradient(120deg,#1e3a8a,#ec4899); color:#fff; border:none; border-radius:999px; font-weight:800; min-height:44px; }
  .mailhtml{ width:100%; border:1px solid var(--line); background:#fff; border-radius:8px; min-height:220px; display:block; }
  .rflag{ cursor:pointer; color:#c9ccd4; margin-right:8px; }
  .rflag.on{ color:#e5484d; }
  .mread{ flex:1; min-width:0; overflow-y:auto; padding:22px 28px; }
  .mread-empty{ display:flex; align-items:center; justify-content:center; height:100%; color:var(--sub); font-size:15px; }
  .mread-back{ display:none; }
  /* メール詳細の上の部分(件名・差出人・ボタン)は、本文をスクロールしても上に残す(2026年10月 上村さん依頼) */
  @media(min-width:901px){ .mailreadbox .mread .mrhead{ position:sticky; top:-10px; margin-top:-10px; padding-top:10px; z-index:6; background:var(--card,#fff); box-shadow:0 6px 8px -6px rgba(23,31,56,.18); }
  body.dark .mailreadbox .mread .mrhead{ background:#1a1d24; } }   /* スマホは画面が狭く本文が見えなくなるため固定しない */
  .mread .rsub{ font-size:21px; font-weight:800; line-height:1.4; word-break:break-word; }
  .mread .rmeta{ margin-top:12px; padding-bottom:14px; border-bottom:1px solid var(--line); font-size:13px; color:var(--text); line-height:1.9; word-break:break-word; }
  .mread .rmeta .rl{ display:inline-block; min-width:48px; color:var(--sub); font-weight:700; }
  .mread .ractions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:14px 0; }
  .mread .mstatus button{ border:.5px solid var(--line); background:var(--card,#fff); padding:5px 12px; font-size:12px; cursor:pointer; }
  .mread .mstatus button:first-child{ border-radius:8px 0 0 8px; } .mread .mstatus button:last-child{ border-radius:0 8px 8px 0; }
  .mread .mstatus button.on{ background:var(--accent); color:#fff; border-color:var(--accent); font-weight:700; }
  .mread .ractions .totask{ display:inline-flex; align-items:center; gap:5px; background:var(--accent-soft); color:var(--accent); border:1px solid var(--accent); border-radius:8px; padding:5px 13px; font-size:12px; font-weight:700; cursor:pointer; transition:transform .1s, background .15s; }
  .mread .ractions .totask:hover{ background:#d8e8ff; }
  .mread .ractions .totask:active{ transform:scale(.95); }
  .mread .ractions .taskdone{ display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--accent); font-weight:700; }
  .mread .rbody{ white-space:pre-wrap; line-height:1.85; margin-top:8px; font-size:14px; word-break:break-word; }
  .mailactbar{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:16px 0 4px; }
  .mailbtn{ display:inline-flex; align-items:center; gap:7px; border:none; border-radius:12px; padding:10px 20px; font-size:13.5px; font-weight:700; cursor:pointer; box-shadow:0 1px 3px rgba(23,31,56,.16); transition:transform .1s, box-shadow .15s, filter .15s; line-height:1; }
  .mailbtn:hover{ transform:translateY(-1px); box-shadow:0 5px 14px rgba(23,31,56,.22); filter:brightness(1.03); }
  .mailbtn:active{ transform:translateY(0) scale(.96); }
  .mailbtn .ic{ font-size:16px; }
  .mailbtn.reply{ background:linear-gradient(180deg,#1f86ff,#0a6ce0); color:#fff; }
  .mailbtn.fwd{ background:#eaf1fb; color:#0a5cc0; }
  .mailbtn.flag{ background:#ffeceb; color:#c0392b; }
  .mailbtn.flag.on{ background:#e5484d; color:#fff; }
  .mailbtn.task{ background:#e4f8ea; color:#1f8f3b; }
  .mailbtn.del{ background:#e5484d; color:#fff; margin-left:auto; }   /* 2026年10月: 🗑削除は赤にそろえる（v585） */
  .mailbtn.done{ background:#eef1f7; color:var(--accent); cursor:default; box-shadow:none; }
  .mailbtn.done:hover{ transform:none; box-shadow:none; filter:none; }
  .mailatts{ margin:14px 0 4px; border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:var(--hover); }
  .mailatts-h{ font-size:12.5px; font-weight:700; color:var(--sub); margin-bottom:8px; }
  .mailatt{ display:inline-flex; align-items:center; gap:8px; max-width:100%; margin:0 8px 8px 0; padding:8px 12px; background:var(--card,#fff); border:1px solid var(--line); border-radius:10px; text-decoration:none; color:var(--text); box-shadow:0 1px 2px rgba(23,31,56,.08); vertical-align:top; }
  .mailatt:hover{ background:var(--accent-soft); }
  .mailatt-ic{ font-size:20px; flex:0 0 auto; }
  .mailatt-n{ font-size:13.5px; font-weight:600; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mailatt-s{ font-size:11px; color:var(--sub); flex:0 0 auto; }
  /* 添付の一括・選択ダウンロード（2026年09月） */
  .mailatts-hd{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
  .mailatts-hd .mailatts-h{ margin-bottom:0; margin-right:auto; }
  .mailatts-btn{ font-size:12.5px; font-weight:700; padding:6px 12px; border-radius:9px; border:1px solid var(--line); background:var(--card,#fff); color:var(--accent); cursor:pointer; white-space:nowrap; }
  .mailatts-btn:hover{ background:var(--accent-soft); }
  .mailatts-btn:disabled{ opacity:.45; cursor:default; background:var(--card,#fff); }
  .mailatts-all{ font-size:12.5px; color:var(--sub); display:inline-flex; align-items:center; gap:4px; cursor:pointer; user-select:none; }
  .mailatt-w{ display:inline-flex; align-items:center; gap:6px; max-width:100%; margin:0 8px 8px 0; vertical-align:top; }
  .mailatt-w .mailatt{ margin:0; }
  .mailatt-ck{ width:18px; height:18px; flex:0 0 auto; cursor:pointer; accent-color:var(--accent); }
  @media(max-width:760px){
    .maillist{ width:100% !important; }
    .mailresizer{ display:none; }
    .mread-back{ display:inline-block; border:none; background:none; color:var(--accent); font-size:15px; font-weight:700; margin-bottom:10px; cursor:pointer; padding:2px 0; }
  }
  #admin{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:20px 24px; }
  body.view-admin #admin{ display:block; }
  body.view-admin .listpane, body.view-admin .detail{ display:none; }
  #feedback{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:20px 24px; }
  body.view-feedback #feedback{ display:block; }
  body.view-feedback .listpane, body.view-feedback .detail{ display:none; }
  #settings{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:20px 24px; }
  body.view-settings #settings{ display:block; }
  body.view-settings .listpane, body.view-settings .detail{ display:none; }
  /* 立替清算（領収書の受信トレイ／台帳／集計・全幅ビュー） */
  #receipt{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:20px 24px; }
  body.view-receipt #receipt{ display:block; }
  body.view-receipt .listpane, body.view-receipt .detail{ display:none; }
  /* 調整くん（日程調整・全幅ビュー） */
  #chosei{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:20px 24px; }
  body.view-chosei #chosei{ display:block; }
  body.view-chosei .listpane, body.view-chosei .detail{ display:none; }
  .chohead{ display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; margin-bottom:16px; }
  .chotitle{ font-size:19px; font-weight:800; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .chosub{ font-size:12.5px; color:var(--sub); line-height:1.8; margin-top:4px; max-width:62ch; }
  .choacts{ margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }
  .chobtn{ border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:10px; padding:9px 15px; font-size:13.5px; font-weight:700; cursor:pointer; font-family:inherit; }
  .chobtn:hover{ border-color:#0d7d72; }
  .chobtn.pri{ background:#0d7d72; border-color:#0d7d72; color:#fff; }
  .chobtn.pri.blue{ background:#0a6bd6; border-color:#0a6bd6; }
  .chobtn.pri.red{ background:#d13b3f; border-color:#d13b3f; color:#fff; }
  .chobtn.pri.green{ background:#1a8f45; border-color:#1a8f45; color:#fff; }
  .chobtn.pri.purple{ background:#7b4fd6; border-color:#7b4fd6; color:#fff; }
  .chobtn.pri.orange{ background:#e8830c; border-color:#e8830c; color:#fff; }
  .chobtn.pri.wide{ width:100%; margin-top:18px; padding:14px; font-size:15px; }
  .chobtn.mini{ padding:6px 11px; font-size:12px; border-radius:8px; }
  .chobtn.danger{ color:#d13b3f; }
  .chocard{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:16px 18px; margin-bottom:14px; box-shadow:var(--shadow-sm); }
  .chorow{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .chorow2{ font-size:13px; color:var(--sub); margin-top:7px; }
  .chorow3{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .choname{ font-size:16px; font-weight:800; cursor:pointer; }
  .choname:hover{ text-decoration:underline; }
  .chokind{ font-size:11px; font-weight:800; padding:3px 9px; border-radius:999px; background:#e2f2ef; color:#0d7d72; white-space:nowrap; }
  .chokind.poll{ background:#e4eefb; color:#0a6bd6; }
  .chotag{ font-size:11.5px; padding:3px 9px; border-radius:999px; background:var(--hover); color:var(--sub); white-space:nowrap; }
  .chotag.ok{ background:#e3f5e9; color:#1a8f45; font-weight:700; }
  .chotag.stop{ background:#fde8e8; color:#d13b3f; font-weight:700; }
  .chourl{ font-family:ui-monospace,Consolas,monospace; font-size:12px; background:var(--hover); border-radius:8px; padding:7px 10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
  .chohint{ font-size:12px; color:var(--sub); line-height:1.75; margin-top:6px; }
  .chosec{ font-size:14px; font-weight:800; margin-bottom:10px; }
  .chofrm label{ display:block; font-size:12.5px; font-weight:800; color:var(--sub); margin:16px 0 6px; }
  .chofrm label.chock{ display:flex; align-items:center; gap:8px; font-weight:600; color:var(--text); font-size:13.5px; }
  .chofrm .req{ color:#d13b3f; margin-left:3px; }
  .chofrm input[type=text], .chofrm input[type=date], .chofrm input[type=time], .chofrm select, .chofrm textarea{
    width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:10px; padding:10px 12px; font-size:14px; background:var(--card,#fff); color:var(--text); font-family:inherit; }
  .chofrm textarea{ resize:vertical; }
  .chogrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:2px 14px; }
  .chowd{ display:flex; gap:8px; flex-wrap:wrap; }
  .chowdi{ display:flex !important; align-items:center; gap:5px; border:1px solid var(--line); border-radius:9px; padding:7px 12px; margin:0 !important; font-weight:700 !important; color:var(--text) !important; cursor:pointer; }
  .chocand{ display:flex; gap:8px; align-items:center; margin-bottom:8px; flex-wrap:wrap; }
  .chomin{ display:flex; align-items:center; gap:6px; }
  .chomin input[type=number]{ width:96px !important; flex:0 0 auto; text-align:right; font-variant-numeric:tabular-nums; }
  .chomin span{ font-size:13px; color:var(--sub); font-weight:700; }
  .chopre{ display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
  .chopreb{ border:1px solid var(--line); background:var(--card,#fff); color:var(--sub); border-radius:8px; padding:4px 10px; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; }
  .chopreb:hover{ border-color:#0d7d72; color:var(--text); }
  .chocand input{ width:auto !important; flex:0 1 180px; }
  .chowho{ display:flex; gap:10px; flex-wrap:wrap; margin-top:8px; }
  .chowho .chock{ border:1px solid var(--line); border-radius:9px; padding:7px 12px; margin:0; }
  .chotbl{ overflow-x:auto; border:1px solid var(--line); border-radius:11px; }
  .chotbl table{ border-collapse:collapse; width:100%; font-size:13px; min-width:520px; }
  .chotbl th, .chotbl td{ padding:9px 11px; border-bottom:1px solid var(--line); text-align:center; white-space:nowrap; }
  .chotbl th:first-child, .chotbl td:first-child{ text-align:left; }
  .chotbl td.wrap{ white-space:normal; text-align:left; max-width:260px; }
  .chotbl thead th{ background:var(--hover); font-size:12px; color:var(--sub); font-weight:700; }
  .chotbl tbody tr:last-child td{ border-bottom:0; }
  .chotbl tr.off td{ opacity:.5; }
  .chotbl tr.best td{ background:#e3f5e9; }
  /* 2026年09月: 日付の境が分かるよう、日付ごとに見出しの行を入れる（上村さん依頼） */
  .chotbl tr.chodate td{ background:var(--hover); color:var(--text); font-weight:800; text-align:left; padding:7px 11px; border-top:2px solid var(--sub); }
  .chotbl tbody tr.chodate:first-child td{ border-top:0; }
  .chotbl .mo{ color:#1a8f45; font-weight:800; }
  .chotbl .mt{ color:#c77700; font-weight:800; }
  .chotbl .mx{ color:#d13b3f; font-weight:800; }
  .chofixed{ background:#e3f5e9; color:#1a8f45; border-radius:10px; padding:11px 14px; font-size:13.5px; margin-bottom:12px; }
  /* A案の空き枠の下見（担当が目で見て、出したくない枠を外す） */
  .choprev{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
  .choprev .num{ font-size:13.5px; font-weight:800; }
  .choprev .num b{ color:#0d7d72; }
  .choprev .num i{ font-style:normal; color:#d13b3f; }
  .choday{ border-top:1px solid var(--line); padding:11px 0 3px; }
  .choday:first-of-type{ border-top:0; }
  .chodhd{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:7px; }
  .chodhd .dt{ font-size:13.5px; font-weight:800; }
  .chodhd .cnt{ font-size:12px; color:var(--sub); }
  .choslots{ display:flex; gap:7px; flex-wrap:wrap; }
  .choslot{ border:1px solid #0d7d72; background:#e2f2ef; color:#0b5f57; border-radius:9px; padding:6px 11px;
    font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit; font-variant-numeric:tabular-nums; }
  .choslot:hover{ background:#d3ebe7; }
  .choslot.off{ border-color:var(--line); background:var(--hover); color:var(--sub); text-decoration:line-through; }
  .choslot.off:hover{ border-color:#0d7d72; }
  .chocmt{ font-size:13px; color:var(--sub); line-height:1.9; background:var(--hover); border-radius:10px; padding:11px 14px; }
  .chocmti{ white-space:pre-wrap; color:var(--text); padding:6px 0; border-bottom:1px solid var(--line); }
  .chocmti:last-child{ border-bottom:0; }
  .chocmti b{ display:block; font-size:12px; color:var(--sub); }
  .rctabs{ display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
  .rctab{ border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:999px; padding:8px 16px; font-size:13px; font-weight:700; cursor:pointer; white-space:nowrap; }
  .rctab.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
  .rctab .cc{ margin-left:6px; font-size:11px; opacity:.85; font-weight:600; }
  /* 📝 稟議（物品・サービスの購入申請・全幅ビュー） */
  #ringi{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:20px 24px; }
  body.view-ringi #ringi{ display:block; }
  body.view-ringi .listpane, body.view-ringi .detail{ display:none; }
  /* 🗂 ToDo管理表（全幅ビュー・2026年10月） */
  #todo{ display:none; flex:1; overflow-y:auto; background:var(--bg); padding:20px 24px; }
  body.view-todo #todo{ display:block; }
  body.view-todo .listpane, body.view-todo .detail{ display:none; }
  /* 見た目＝見本A「見通しダッシュボード型」（2026年10月 上村さん決定） */
  #todo{ --td-orange-text:#8a4b00; --td-red-text:#b3180f; --td-p1:#5856d6; --td-p2:#c2307a; --td-p3:#0b7f8a; --td-blue-soft:#e7f1ff; --td-blue-text:#0058c2; --td-kv1:#0a6cff; --td-kv2:#5b4fe0; --td-kv3:#8a5cf6; --td-purple:#5856d6; --td-gray-text:#4a4f57; --td-dirty:#fff4c2; --td-dirty-line:#d9a400; --td-dirty-text:#6b4e00; }
  body.dark #todo{ --td-orange-text:var(--rg-orange-text); --td-red-text:var(--rg-red-text); --td-p1:#9d9bff; --td-p2:#ff7fbf; --td-p3:#4fd0db; --td-blue-soft:#1e2c3e; --td-blue-text:#7dbcff; --td-kv1:#103a7a; --td-kv2:#2e2a73; --td-kv3:#45307f; --td-purple:#9d9bff; --td-gray-text:var(--rg-gray-text); --td-dirty:#3b3415; --td-dirty-line:#b38a00; --td-dirty-text:#ffd95a; }
  .tdin{ max-width:1320px; margin:0 auto; container:todo / inline-size; }
  .tdkv{ position:relative; overflow:hidden; border-radius:24px; padding:24px 28px 72px; color:#fff; box-shadow:var(--shadow);
    background:radial-gradient(circle at 88% 12%,rgba(255,255,255,.18) 0,rgba(255,255,255,0) 34%),linear-gradient(120deg,var(--td-kv1) 0%,var(--td-kv2) 62%,var(--td-kv3) 100%); }
  .tdkv::before,.tdkv::after{ content:""; position:absolute; border-radius:50%; background:rgba(255,255,255,.08); pointer-events:none; }
  .tdkv::before{ width:340px; height:340px; right:-90px; bottom:-170px; }
  .tdkv::after{ width:180px; height:180px; left:38%; top:-110px; }
  .tdkv-in{ position:relative; display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
  .tdkv-l{ flex:1 1 360px; min-width:0; }
  .tdkv-eye{ display:inline-block; font-size:13px; font-weight:800; letter-spacing:.06em; background:rgba(255,255,255,.18); padding:3px 12px; border-radius:999px; }
  .tdkv h2{ font-size:28px; font-weight:900; margin:8px 0 2px; line-height:1.3; }
  .tdkv-date{ font-size:15px; font-weight:700; opacity:.92; }
  .tdkv-msg{ margin-top:12px; font-size:17px; font-weight:800; background:rgba(0,0,0,.16); display:inline-block; padding:8px 14px; border-radius:12px; line-height:1.5; }
  .tdkv-note{ font-size:12.5px; opacity:.88; margin-top:10px; line-height:1.7; }
  .tdkv-acts{ display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
  .tdkv-acts .rgnew{ background:#fff; color:#0a4fc4; box-shadow:0 4px 14px rgba(0,0,0,.18); }
  body.dark .tdkv-acts .rgnew{ background:#e7e9ee; color:#173a7a; }
  .tdkv-acts .rctab{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4); color:#fff; min-height:44px; }
  .tdkv-r{ display:flex; align-items:center; gap:22px; flex:0 1 auto; }
  .tdring{ position:relative; width:128px; height:128px; flex:0 0 auto; }
  .tdring svg{ width:100%; height:100%; transform:rotate(-90deg); }
  .tdring .lab{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.15; }
  .tdring .lab b{ font-size:30px; font-weight:900; }
  .tdring .lab small{ font-size:12.5px; font-weight:700; opacity:.9; }
  .tdbars{ min-width:220px; }
  .tdbars .t{ font-size:13.5px; font-weight:800; margin-bottom:6px; }
  .tdstbar{ display:flex; height:14px; border-radius:7px; overflow:hidden; gap:2px; background:rgba(255,255,255,.12); }
  .tdstbar i{ display:block; height:100%; }
  .tdstbar .b0{ background:rgba(255,255,255,.45); } .tdstbar .b1{ background:#ffd36b; } .tdstbar .b2{ background:#7cf0a0; }
  .tdleg{ display:flex; flex-direction:column; gap:4px; margin-top:10px; font-size:14px; font-weight:700; }
  .tdleg span{ display:flex; align-items:center; gap:8px; }
  .tdleg i{ width:12px; height:12px; border-radius:3px; display:inline-block; }
  .tdkpis{ position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:-50px 18px 18px; }
  .tdkpi{ text-align:left; background:var(--card,#fff); border:2px solid transparent; border-radius:18px; padding:14px 16px 12px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:2px; min-height:108px; position:relative; overflow:hidden; color:var(--text); cursor:pointer; font-family:inherit; }
  .tdkpi::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--k); }
  .tdkpi .kl{ font-size:14.5px; font-weight:800; color:var(--kt); }
  .tdkpi .kn{ font-size:34px; font-weight:900; line-height:1.1; font-variant-numeric:tabular-nums; }
  .tdkpi .kn small{ font-size:15px; font-weight:800; margin-left:2px; }
  .tdkpi .kh{ font-size:12.5px; color:var(--sub); font-weight:600; }
  .tdkpi.on{ border-color:var(--k); background:color-mix(in srgb,var(--card,#fff) 88%,var(--k)); }
  .tdkpi.zero .kn{ color:var(--sub); }
  .tdk-over{ --k:var(--red); --kt:var(--td-red-text); } .tdk-today{ --k:#ff9500; --kt:var(--td-orange-text); }
  .tdk-week{ --k:var(--accent); --kt:var(--td-blue-text); } .tdk-high{ --k:var(--td-purple); --kt:var(--td-purple); }
  .tdwhos{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:4px 0 12px; }
  .tdwhos .lb{ font-size:14px; font-weight:800; color:var(--sub); }
  .tdwho{ display:inline-flex; align-items:center; gap:8px; min-height:46px; padding:5px 14px 5px 7px; border-radius:999px; border:1.5px solid var(--line); background:var(--card,#fff); color:var(--text); font-size:14.5px; font-weight:800; cursor:pointer; font-family:inherit; }
  .tdwho .cn{ font-size:13px; color:var(--sub); font-weight:700; }
  .tdwho.on{ border-color:var(--accent); background:var(--accent-soft); }
  .tdwho.all{ padding-left:14px; }
  .tdav{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; font-size:14px; font-weight:800; flex:0 0 auto; background:var(--rg-gray-soft); color:var(--td-gray-text,var(--rg-gray-text)); }
  .tdav.p1{ background:var(--td-p1); color:#fff; } .tdav.p2{ background:var(--td-p2); color:#fff; } .tdav.p3{ background:var(--td-p3); color:#fff; }
  body.dark .tdav.p1,body.dark .tdav.p2,body.dark .tdav.p3{ color:#14161b; }
  .tdav.none{ background:transparent; border:2px dashed var(--line2); color:var(--sub); }
  .tdwhoin{ display:inline-flex; align-items:center; gap:6px; font-weight:700; flex-wrap:wrap; }
  .tdwhoin .arrow{ color:var(--sub); }
  .tdtools{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
  .tdtools select, .tdtools input{ border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:12px; padding:9px 12px; font-size:14px; font-family:inherit; min-height:44px; }
  .tdtools input{ flex:1 1 220px; min-width:0; }
  .tdsort{ display:flex; gap:6px; }
  .tdsort .rctab{ min-height:44px; }
  .tdfilt{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--accent-soft); color:var(--td-blue-text); border-radius:12px; padding:8px 12px; font-size:14.5px; font-weight:700; margin-bottom:12px; }
  .tdfilt button{ min-height:40px; border:1px solid var(--accent); background:var(--card,#fff); color:var(--td-blue-text); border-radius:10px; padding:4px 12px; font-weight:800; font-size:14px; cursor:pointer; font-family:inherit; }
  .tdgrp{ background:var(--card,#fff); border-radius:18px; box-shadow:var(--shadow-sm); border:1px solid var(--line); margin-bottom:16px; overflow:hidden; }
  .tdgrp-h{ display:flex; align-items:center; gap:10px; padding:12px 18px; font-size:16px; font-weight:900; border-bottom:1px solid var(--line); }
  .tdgrp-h .gc{ font-size:13.5px; font-weight:800; color:var(--sub); background:var(--rg-gray-soft); padding:2px 10px; border-radius:999px; }
  .tdgrp-h .gs{ font-size:13px; font-weight:600; color:var(--sub); margin-left:auto; }
  .tdg-over .tdgrp-h{ background:var(--rg-red-soft); color:var(--td-red-text); }
  .tdg-today .tdgrp-h{ background:var(--rg-orange-soft); color:var(--td-orange-text); }
  .tdg-week .tdgrp-h{ background:var(--td-blue-soft); color:var(--td-blue-text); }
  .tdg-done .tdgrp-h{ color:var(--rg-green-text); }
  .tdgrp-ok{ padding:12px 18px; font-size:14.5px; color:var(--sub); font-weight:700; }
  .tdcolh, .tdrow{ display:grid; grid-template-columns:52px minmax(0,1fr) 170px 120px 160px 72px 150px; gap:12px; align-items:center; padding:12px 18px; }
  .tdcolh{ padding-top:8px; padding-bottom:8px; font-size:12.5px; font-weight:800; color:var(--sub); border-bottom:1px solid var(--line); background:var(--hover); }
  .tdrow{ border-bottom:1px solid var(--line); cursor:pointer; position:relative; }
  .tdrow:last-child{ border-bottom:none; }
  .tdrow:hover{ background:var(--hover); }
  .tdrow.over::before,.tdrow.today::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--red); }
  .tdrow.today::before{ background:#ff9500; }
  .tdrow.done .tdttl{ text-decoration:line-through; color:var(--sub); }
  .tdrow .c-no{ font-weight:800; color:var(--sub); font-variant-numeric:tabular-nums; font-size:15px; }
  .tdttl{ font-weight:800; font-size:15.5px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
  .tdsub{ display:flex; gap:4px 14px; flex-wrap:wrap; margin-top:3px; font-size:13px; color:var(--sub); }
  .tdsub .nt{ background:var(--rg-gray-soft); border-radius:6px; padding:0 7px; color:var(--text); white-space:pre-wrap; }
  .tdrow .c-due{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
  .tdrow .c-st{ display:flex; justify-content:flex-end; align-items:center; gap:6px; }
  /* 一覧をその場で直す（2026年10月 上村さん）：押せる所は薄い青＋✎、直した所は黄色＋「未保存」 */
  .tdrow{ cursor:default; }
  .tdrow .tded{ border-radius:8px; position:relative; outline-offset:2px; }
  .tdrow .c-who,.tdrow .c-due,.tdrow .c-pri{ min-height:40px; padding:3px 4px; margin:-3px -4px; display:flex; align-items:center; }
  .tdrow .c-due{ flex-direction:column; align-items:flex-start; justify-content:center; }
  .tdrow .c-pri{ flex-wrap:wrap; gap:2px; }
  /* 有識者の列（担当の右・2026年10月）：長いときは省略し、指を乗せると全文 */
  .tdrow .c-exp{ min-height:40px; padding:3px 4px; margin:-3px -4px; display:flex; align-items:center; gap:4px; min-width:0; font-weight:700; font-size:14px; }
  .tdrow .c-exp .tdexv{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .tdrow .c-exp .tdexl{ display:none; font-weight:600; }
  .tdrow .c-exp .tdexnone{ color:var(--sub); font-weight:600; }
  .tdrow .c-exp.editing{ flex:1 1 auto; } .tdrow .c-pri .tdunsv{ margin-left:0; }
  .tdadd{ display:inline-flex; align-items:center; color:var(--sub); font-weight:700; border-radius:6px; padding:0 4px; }
  .tdsub .tded{ padding:0 4px; margin:0 -4px; }
  .tdsub .tded:not(.editing){ position:relative; }
  .tdsub .tded:not(.editing)::before{ content:""; position:absolute; left:-2px; right:-2px; top:50%; height:34px; transform:translateY(-50%); }   /* 押せる範囲だけ上下に広げる（2026年10月） */
  .tdrow .tddirty{ background:var(--td-dirty)!important; box-shadow:0 0 0 2px var(--td-dirty-line); }
  .tdunsv{ display:inline-block; margin-left:6px; font-size:11.5px; font-weight:800; line-height:1.5; color:var(--td-dirty-text); border:1px solid currentColor; border-radius:6px; padding:0 5px; white-space:nowrap; vertical-align:2px; text-decoration:none; }
  .tdrow .tded.editing{ background:none!important; box-shadow:none; }
  .tdedin{ width:100%; box-sizing:border-box; font:inherit; font-size:14.5px; font-weight:600; line-height:1.4; padding:5px 8px; border:2px solid var(--accent); border-radius:8px; background:var(--card,#fff); color:var(--text); min-height:36px; }
  textarea.tdedin{ resize:vertical; display:block; }
  .tdedrow{ display:flex; flex-direction:column; gap:4px; width:100%; }
  .tdrow .c-due.editing{ align-items:stretch; }
  .tdsub .tded.editing{ flex:1 1 100%; margin:2px 0; padding:0; }
  .tdpen{ width:44px; height:44px; flex:0 0 auto; border:1.5px solid var(--line2); background:var(--card,#fff); color:var(--text); border-radius:12px; font-size:18px; cursor:pointer; font-family:inherit; }
  .tdpen:hover{ border-color:var(--accent); color:var(--td-blue-text); }
  .tdpen{ background:var(--accent-on,#0062cc); border-color:var(--accent-on,#0062cc); color:#fff; } .tdpen:hover{ filter:brightness(1.08); color:#fff; border-color:var(--accent-on,#0062cc); }
  @container todo (min-width:861px){
    .tdrow .tded:not(.editing){ cursor:pointer; }
    .tdrow .tded:not(.editing):hover{ background:var(--td-blue-soft); box-shadow:0 0 0 2px var(--accent); }
    .tdrow .tdttl.tded:not(.editing):hover::after,.tdrow .c-who.tded:not(.editing):hover::after,.tdrow .c-due.tded:not(.editing):hover::after,.tdrow .c-pri.tded:not(.editing):hover::after{ content:"✎"; position:absolute; right:3px; top:1px; font-size:13px; font-weight:800; color:var(--td-blue-text); }
    .tdrow .tdadd:hover{ color:var(--td-blue-text); }
  }
  .tdsavebar{ position:sticky; bottom:12px; z-index:6; display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:14px 0 0; padding:10px 14px; background:var(--td-dirty); color:var(--td-dirty-text); border:2px solid var(--td-dirty-line); border-radius:16px; font-size:16px; font-weight:800; box-shadow:0 8px 24px rgba(0,0,0,.18); }
  .tdsavebar[hidden]{ display:none; }
  .tdsavebar .sp{ flex:1 1 auto; }
  .tdsavebar button{ min-height:46px; padding:6px 16px; border-radius:12px; font-size:15px; font-weight:800; cursor:pointer; font-family:inherit; border:1.5px solid var(--td-dirty-line); background:var(--card,#fff); color:var(--text); }
  .tdsavebar button.ok{ background:var(--accent-on); border-color:var(--accent-on); color:#fff; }
  #todoConfirmModal .mbox{ width:640px; }
  /* ☑️ 今日やること（開いたときのお知らせ・上半分はキービジュアル・2026年10月） */
  #todoRemindModal{ --tdr1:#0050c8; --tdr2:#4a3fd0; --tdr3:#7a45e0; }
  body.dark #todoRemindModal{ --tdr1:#0b3a8f; --tdr2:#33298f; --tdr3:#55309a; }
  #todoRemindModal .mbox{ width:720px; padding:0; overflow:auto; border-radius:26px; }
  #todoRemindModal.show .mbox{ animation:tdrIn .45s cubic-bezier(.2,.9,.3,1.25) both; }
  @keyframes tdrIn{ from{ opacity:0; transform:scale(.86) translateY(14px); } to{ opacity:1; transform:none; } }
  .tdrkv{ position:relative; overflow:hidden; color:#fff; padding:30px 30px 26px; background:linear-gradient(135deg,var(--tdr1) 0%,var(--tdr2) 55%,var(--tdr3) 100%); }
  .tdrkv .o{ position:absolute; border-radius:50%; pointer-events:none; background:rgba(255,255,255,.10); }
  .tdrkv .o1{ width:360px; height:360px; right:-120px; top:-170px; }
  .tdrkv .o2{ width:220px; height:220px; left:-80px; bottom:-130px; background:rgba(255,255,255,.08); }
  .tdrkv .o3{ width:120px; height:120px; right:90px; bottom:-60px; background:rgba(255,214,107,.18); }
  .tdrkv .sp{ position:absolute; width:8px; height:8px; border-radius:50%; background:#fff; box-shadow:0 0 12px 3px rgba(255,255,255,.75); pointer-events:none; animation:tdrTw 2.6s ease-in-out infinite; }
  .tdrkv .s1{ left:12%; top:18%; } .tdrkv .s2{ left:46%; top:12%; width:5px; height:5px; animation-delay:.6s; } .tdrkv .s3{ right:16%; top:40%; animation-delay:1.1s; }
  .tdrkv .s4{ left:30%; bottom:16%; width:5px; height:5px; animation-delay:1.6s; } .tdrkv .s5{ right:34%; top:22%; width:6px; height:6px; background:#ffe08a; animation-delay:.3s; } .tdrkv .s6{ right:8%; bottom:22%; width:5px; height:5px; animation-delay:2s; }
  @keyframes tdrTw{ 0%,100%{ opacity:.25; transform:scale(.7); } 50%{ opacity:1; transform:scale(1.15); } }
  .tdrx{ position:absolute; right:14px; top:14px; z-index:2; width:44px; height:44px; border-radius:50%; border:none; background:rgba(255,255,255,.2); color:#fff; font-size:18px; cursor:pointer; font-family:inherit; }
  .tdrx:hover{ background:rgba(255,255,255,.32); }
  .tdrvh{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; margin:0; }
  .tdrhero{ position:relative; display:flex; align-items:center; gap:22px; }
  .tdrchk{ flex:0 0 auto; width:104px; height:104px; border-radius:30px; background:rgba(255,255,255,.18); border:3px solid rgba(255,255,255,.55); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.18); }
  .tdrchk i{ display:block; width:28px; height:52px; border:solid #fff; border-width:0 11px 11px 0; border-radius:3px; transform:rotate(45deg) translate(-4px,-6px); }
  .tdrchk.pop{ animation:tdrPop .6s cubic-bezier(.2,1.6,.4,1); }
  .tdrchk.allok{ background:#2fbf62; border-color:#bff5cf; }
  @keyframes tdrPop{ 0%{ transform:scale(1); } 35%{ transform:scale(1.25) rotate(-6deg); } 100%{ transform:scale(1); } }
  .tdreye{ display:inline-block; font-size:15px; font-weight:800; background:rgba(255,255,255,.2); border-radius:999px; padding:3px 14px; }
  .tdrnum{ line-height:1; margin-top:6px; text-shadow:0 4px 18px rgba(0,0,0,.2); }
  .tdrnum b{ font-size:84px; font-weight:900; font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
  .tdrnum small{ font-size:26px; font-weight:900; margin-left:6px; }
  .tdrmsg{ position:relative; font-size:21px; font-weight:900; line-height:1.55; margin-top:16px; }
  .tdrword{ position:relative; display:inline-block; margin-top:10px; font-size:15px; font-weight:700; line-height:1.6; background:rgba(0,0,0,.18); border-radius:12px; padding:6px 14px; }
  .tdrword:empty{ display:none; }
  .tdrbody{ padding:18px 22px 22px; }
  .tdrsec{ margin-bottom:12px; }
  .tdrsec-h{ font-size:16px; font-weight:900; padding:6px 12px; border-radius:10px; margin-bottom:6px; }
  .tdrsec.over .tdrsec-h{ background:var(--rg-red-soft); color:var(--td-red-text); }
  .tdrsec.today .tdrsec-h{ background:var(--rg-orange-soft); color:var(--td-orange-text); }
  .tdritem{ display:flex; align-items:center; gap:10px; padding:10px 12px 10px 14px; border:1px solid var(--line); border-radius:14px; margin-bottom:8px; cursor:pointer; background:var(--card,#fff); position:relative; overflow:hidden; }
  .tdritem::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:#ff9500; }
  .tdrsec.over .tdritem::before{ background:var(--red); }
  .tdritem:hover{ border-color:var(--accent); }
  .tdritem .no{ font-weight:800; color:var(--sub); flex:0 0 auto; }
  .tdritem .bd{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:4px; }
  .tdritem .tdttl{ font-size:16.5px; }
  .tdritem .mt{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
  .tdritem .tdst{ flex:0 0 auto; min-height:46px; }
  .tdrdone{ text-align:center; font-size:17px; font-weight:800; color:var(--rg-green-text); padding:14px 6px; }
  .tdrconf{ position:absolute; top:-12px; width:9px; height:14px; border-radius:2px; pointer-events:none; animation:tdrFall 1.3s ease-in forwards; z-index:3; }
  @keyframes tdrFall{ to{ transform:translate(var(--dx),330px) rotate(var(--rot)); opacity:0; } }
  #todo .tdrow.tdflash,#todo .tdkcard.tdflash{ box-shadow:inset 0 0 0 3px var(--accent); }
  @media(max-width:760px){
    #todoRemindModal .mbox{ width:100vw; max-width:100vw; max-height:96dvh; border-radius:24px 24px 0 0; }
    .tdrkv{ padding:24px 18px 20px; }
    .tdrchk{ width:78px; height:78px; border-radius:24px; } .tdrchk i{ width:21px; height:40px; border-width:0 9px 9px 0; }
    .tdrnum b{ font-size:64px; } .tdrnum small{ font-size:22px; }
    .tdrmsg{ font-size:18.5px; }
    .tdrbody{ padding:14px 14px 18px; }
    #todoRemindModal .mbtns button{ min-height:48px; font-size:16px; }
    .tdritem{ flex-wrap:wrap; } .tdritem .bd{ flex:1 1 calc(100% - 40px); } .tdritem .tdst{ margin-left:auto; }
  }
  /* 🌅 昨日までに終わらなかったことの振り返り（夜明け前の紺〜朝焼け・2026年10月） */
  #todoReflectModal .mbox{ width:760px; padding:0; overflow:auto; border-radius:26px; }
  #todoReflectModal.show .mbox{ animation:tdfIn .6s ease-out both; }
  @keyframes tdfIn{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
  .tdfkv{ position:relative; overflow:hidden; color:#fff; padding:30px 30px 46px; background:linear-gradient(180deg,#081330 0%,#16204d 38%,#2c2a62 62%,#5a3a6e 84%,#a2566a 100%); }
  .tdfkv .hz{ position:absolute; left:-10%; right:-10%; bottom:-70px; height:120px; border-radius:50%; background:radial-gradient(ellipse at center,rgba(255,180,110,.85) 0%,rgba(255,140,90,.45) 40%,rgba(255,120,90,0) 70%); pointer-events:none; }
  .tdfkv .st{ position:absolute; width:3px; height:3px; border-radius:50%; background:#fff; opacity:.8; box-shadow:0 0 6px 1px rgba(255,255,255,.6); pointer-events:none; animation:tdfTw 4s ease-in-out infinite; }
  .tdfkv .t1{ left:8%; top:16%; } .tdfkv .t2{ left:24%; top:34%; width:2px; height:2px; animation-delay:1s; } .tdfkv .t3{ left:52%; top:10%; animation-delay:2s; }
  .tdfkv .t4{ left:70%; top:28%; width:2px; height:2px; animation-delay:.5s; } .tdfkv .t5{ left:86%; top:46%; animation-delay:1.5s; } .tdfkv .t6{ left:40%; top:52%; width:2px; height:2px; animation-delay:2.5s; } .tdfkv .t7{ left:62%; top:64%; width:2px; height:2px; animation-delay:3s; }
  @keyframes tdfTw{ 0%,100%{ opacity:.25; } 50%{ opacity:.95; } }
  .tdfeye{ position:relative; display:inline-block; font-size:14.5px; font-weight:800; letter-spacing:.08em; border:1px solid rgba(255,255,255,.45); border-radius:999px; padding:3px 14px; }
  .tdfbig{ position:relative; font-size:26px; font-weight:900; line-height:1.35; margin-top:12px; }
  .tdfbig b{ font-size:56px; font-variant-numeric:tabular-nums; margin-left:6px; } .tdfbig small{ font-size:22px; margin-left:4px; }
  .tdfmsg{ position:relative; font-size:17.5px; font-weight:700; line-height:1.75; margin-top:10px; max-width:600px; background:rgba(5,10,30,.35); border-radius:12px; padding:8px 14px; }
  .tdfbody{ padding:18px 22px 22px; }
  .tdfhow{ font-size:15px; line-height:1.7; color:var(--text); margin-bottom:12px; }
  .tdfit{ border:1px solid var(--line); border-radius:16px; padding:14px 16px 14px 18px; margin-bottom:12px; position:relative; overflow:hidden; background:var(--card,#fff); }
  .tdfit::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:#5a3a6e; }
  .tdfit.ok::before{ background:var(--green); }
  .tdfit.saved{ display:none; }
  .tdfit-h{ display:flex; align-items:flex-start; gap:10px; flex-wrap:wrap; }
  .tdfit-h .no{ font-weight:800; color:var(--sub); }
  .tdfit-h .tdttl{ flex:1 1 240px; font-size:16.5px; }
  .tdfmiss{ font-size:13.5px; font-weight:800; color:var(--td-red-text); background:var(--rg-red-soft); border-radius:999px; padding:3px 10px; white-space:nowrap; }
  .tdfdone{ min-height:44px; padding:6px 14px; border-radius:12px; border:1.5px solid var(--line2); background:var(--card,#fff); color:var(--text); font-size:14.5px; font-weight:800; cursor:pointer; font-family:inherit; white-space:nowrap; }
  .tdfdone[aria-pressed="true"]{ background:var(--rg-green-soft); border-color:var(--rg-green-text); color:var(--rg-green-text); }
  .tdflab{ display:block; font-size:14.5px; font-weight:800; margin:12px 0 6px; }
  .tdflab .rq{ font-size:12px; color:#fff; background:#c4170d; border-radius:6px; padding:0 6px; margin-left:6px; vertical-align:1px; }
  .tdfchips{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
  .tdfchip{ min-height:40px; padding:4px 12px; border-radius:999px; border:1.5px solid var(--line2); background:var(--hover); color:var(--text); font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; }
  .tdfchip.on{ border-color:var(--accent-on); background:var(--accent-soft); color:var(--td-blue-text); }
  .tdfit textarea, .tdfit input[type=date]{ width:100%; box-sizing:border-box; font:inherit; font-size:16px; padding:9px 12px; border:1.5px solid var(--line2); border-radius:12px; background:var(--card,#fff); color:var(--text); }
  .tdfit input[type=date]{ max-width:240px; min-height:46px; }
  .tdfcnt{ font-size:13px; color:var(--sub); margin-top:4px; font-weight:700; }
  .tdfcnt.ok{ color:var(--rg-green-text); }
  .tdfit.isdone .tdfin{ display:none; }
  .tdfit .tdfdonemsg{ display:none; margin-top:10px; font-size:15px; font-weight:800; color:var(--rg-green-text); }
  .tdfit.isdone .tdfdonemsg{ display:block; }
  .tdfwhy{ font-size:14px; font-weight:700; color:var(--td-orange-text); text-align:right; min-height:20px; margin-top:4px; }
  .tdrefl{ margin-top:10px; border:1px solid var(--line); border-radius:12px; padding:6px 12px; }
  .tdrefl summary{ cursor:pointer; font-weight:800; font-size:14.5px; min-height:36px; display:flex; align-items:center; }
  .tdreflit{ border-top:1px solid var(--line); padding:8px 0; font-size:14px; line-height:1.6; }
  .tdreflit .m{ color:var(--sub); font-size:13px; font-weight:700; }
  .tdreflit .r{ white-space:pre-wrap; overflow-wrap:anywhere; }
  @media(max-width:760px){
    #todoReflectModal .mbox{ width:100vw; max-width:100vw; max-height:96dvh; border-radius:24px 24px 0 0; }
    .tdfkv{ padding:24px 18px 40px; }
    .tdfbig{ font-size:21px; } .tdfbig b{ font-size:44px; }
    .tdfmsg{ font-size:16px; }
    .tdfbody{ padding:14px 14px 18px; }
    #todoReflectModal .mbtns button{ min-height:48px; font-size:16px; }
    .tdfit input[type=date]{ max-width:none; }
  }
  @media (prefers-reduced-motion:reduce){
    #todoReflectModal.show .mbox,.tdfkv .st{ animation:none!important; }
    #todoRemindModal.show .mbox,.tdrkv .sp,.tdrchk.pop,.tdrconf{ animation:none!important; }
    .tdrconf{ display:none; }
  }
  /* ===== 📱 スマホ（幅760以下・横向きのスマホ）の 課題・ToDo管理＝見本B「下のタブ」（2026年10月 上村さん決定）。タブレット・PC は今のまま ===== */
  .tdm-tabs,.tdm-sheet,.tdm-bg{ display:none; }
  @media (max-width:760px), (orientation:landscape) and (max-height:500px) and (max-width:950px){
    body.view-todo.tdmob .tabbar, body.view-todo.tdmob #fab{ display:none!important; }   /* ToDo の間は ToDo の下のタブに替える（ほかの画面へは左上の☰から） */
    body.tdmob #todo{ padding:0 0 calc(92px + env(safe-area-inset-bottom)); }
    .tdm-top{ display:flex; align-items:center; gap:8px; padding:10px 12px 8px; background:var(--card); border-bottom:1px solid var(--line); }
    .tdm-top h2{ margin:0; flex:1; min-width:0; font-size:19px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .tdm-top h2 small{ font-size:13.5px; color:var(--sub); font-weight:700; margin-left:6px; }
    .tdm-who{ display:flex; background:var(--rg-gray-soft); border-radius:12px; padding:3px; gap:3px; flex:0 0 auto; }
    .tdm-who button{ min-height:44px; min-width:56px; border:none; border-radius:10px; background:transparent; font:inherit; font-size:15px; font-weight:800; color:var(--sub); cursor:pointer; }
    .tdm-who button.on{ background:var(--card); color:var(--text); box-shadow:0 1px 4px rgba(0,0,0,.12); }
    .tdm-ic{ min-width:44px; height:48px; border-radius:12px; border:1.5px solid var(--line); background:var(--card); color:var(--text); font-size:17px; cursor:pointer; flex:0 0 auto; }
    .tdm-wrap{ padding:10px 12px; }
    .tdm-kv{ border-radius:20px; color:#fff; padding:16px; background:linear-gradient(120deg,var(--td-kv1),var(--td-kv2) 60%,var(--td-kv3)); box-shadow:var(--shadow-sm); }
    .tdm-kv .big{ font-size:18px; font-weight:900; } .tdm-kv .big b{ font-size:38px; margin:0 4px; font-variant-numeric:tabular-nums; }
    .tdm-kv .s{ font-size:15px; margin-top:2px; }
    .tdm-sec{ display:flex; align-items:center; gap:8px; font-size:16px; font-weight:900; margin:16px 4px 8px; }
    .tdm-sec .c{ font-size:14px; color:var(--sub); background:var(--rg-gray-soft); border-radius:999px; padding:1px 10px; }
    .tdm-sec.over{ color:var(--td-red-text); } .tdm-sec.today{ color:var(--td-orange-text); }
    .tdm-card{ position:relative; background:var(--card); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-sm); padding:12px 12px 12px 18px; margin-bottom:10px; cursor:pointer; overflow:hidden; }
    .tdm-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--line2); }
    .tdm-card.over::before{ background:var(--red); } .tdm-card.today::before{ background:#ff9500; } .tdm-card.week::before{ background:var(--accent); } .tdm-card.done::before{ background:var(--green); }
    .tdm-r1{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
    .tdm-no{ font-weight:800; color:var(--sub); font-size:14px; }
    .tdm-now{ margin-left:auto; font-size:14px; font-weight:800; color:var(--sub); } .tdm-now.s1{ color:var(--td-blue-text); } .tdm-now.s2{ color:var(--td-green-text); }
    .tdm-card .tdttl{ font-size:16.5px; margin:4px 0 6px; }
    .tdm-card.done .tdttl{ text-decoration:line-through; color:var(--sub); }
    .tdm-r3{ display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-top:8px; }
    .tdm-next{ min-height:48px; padding:6px 14px; border-radius:14px; border:1.5px solid var(--accent-on); background:var(--accent-on); color:#fff; font:inherit; font-size:15.5px; font-weight:800; cursor:pointer; white-space:nowrap; }
    .tdm-next.back{ background:var(--card); color:var(--text); border-color:var(--line2); }
    .tdm-mv{ display:flex; gap:8px; width:100%; margin-top:8px; }
    .tdm-mv button{ flex:1; min-height:48px; border-radius:12px; border:1.5px solid var(--line2); background:var(--card); color:var(--text); font:inherit; font-size:15px; font-weight:800; cursor:pointer; }
    .tdm-mv button.fw{ background:var(--accent-on); border-color:var(--accent-on); color:#fff; }
    .tdm-mv button.fin{ background:var(--rg-green-soft); border-color:transparent; color:var(--td-green-text); }
    .tdm-ktabs{ position:sticky; top:0; z-index:5; display:flex; gap:6px; padding:8px 12px; background:var(--bg); }
    .tdm-ktabs button{ flex:1; min-height:54px; border-radius:14px; border:2px solid var(--line); background:var(--card); color:var(--text); font:inherit; font-size:15.5px; font-weight:900; cursor:pointer; line-height:1.2; padding:4px; }
    .tdm-ktabs button .c{ display:block; font-size:13.5px; color:var(--sub); font-weight:700; }
    .tdm-ktabs button.on{ border-color:var(--accent); background:var(--accent-soft); color:var(--td-blue-text); }
    .tdm-hint{ text-align:center; font-size:14px; color:var(--sub); margin:0 0 6px; }
    .tdm-kcols{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; overscroll-behavior-x:contain; }
    .tdm-kcols::-webkit-scrollbar{ display:none; }
    .tdm-kcol{ flex:0 0 100%; scroll-snap-align:start; padding:4px 12px 10px; min-height:50vh; min-width:0; }
    .tdm-empty{ text-align:center; color:var(--sub); font-size:15.5px; padding:28px 10px; line-height:1.8; }
    .tdm-more{ width:100%; min-height:48px; border-radius:12px; border:1px solid var(--line); background:var(--card); color:var(--text); font:inherit; font-size:15px; font-weight:800; cursor:pointer; }
    .tdm-tools{ display:flex; gap:8px; }
    .tdm-tools input{ flex:1; min-width:0; font:inherit; font-size:16px; min-height:50px; border-radius:14px; border:1.5px solid var(--line2); background:var(--card); color:var(--text); padding:0 12px; }
    .tdm-tools button{ min-height:50px; border-radius:14px; border:1.5px solid var(--line2); background:var(--card); color:var(--text); font:inherit; font-size:15px; font-weight:800; padding:0 14px; cursor:pointer; white-space:nowrap; }
    .tdm-tools button .n{ display:inline-block; min-width:22px; height:22px; border-radius:11px; background:var(--accent-on); color:#fff; font-size:13px; line-height:22px; margin-left:4px; }
    .tdm-fon{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
    .tdm-fon span{ font-size:14px; font-weight:700; background:var(--accent-soft); color:var(--td-blue-text); border-radius:999px; padding:4px 10px; }
    .tdm-note{ font-size:14px; color:var(--sub); margin:8px 4px; }
    .tdm-grp{ background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; margin-bottom:12px; }
    .tdm-gh{ display:flex; gap:8px; align-items:center; font-size:15.5px; font-weight:900; padding:10px 12px; border-bottom:1px solid var(--line); background:var(--hover); }
    .tdm-gh .c{ font-size:14px; color:var(--sub); font-weight:700; }
    .tdm-gh.over{ color:var(--td-red-text); background:var(--rg-red-soft); } .tdm-gh.today{ color:var(--td-orange-text); background:var(--rg-orange-soft); }
    .tdm-row{ display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:10px 12px; min-height:64px; cursor:pointer; }
    .tdm-row:last-child{ border-bottom:none; }
    .tdm-row .bd{ flex:1; min-width:0; }
    .tdm-row .t{ font-weight:800; font-size:15.5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
    .tdm-row.done .t{ text-decoration:line-through; color:var(--sub); }
    .tdm-row .m{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-top:4px; font-size:14px; color:var(--sub); }
    .tdm-ck{ width:48px; height:48px; flex:0 0 auto; border-radius:50%; border:2px solid var(--line2); background:var(--card); color:var(--sub); font-size:20px; font-weight:900; cursor:pointer; }
    .tdm-ck.s1{ border-color:var(--accent); color:var(--td-blue-text); } .tdm-ck.s2{ border-color:var(--green); background:var(--rg-green-soft); color:var(--td-green-text); }
    .tdm-tabs{ display:flex; position:fixed; left:0; right:0; bottom:0; z-index:44; background:var(--card); border-top:1px solid var(--line); padding:6px 6px calc(6px + env(safe-area-inset-bottom)); box-shadow:0 -4px 16px rgba(0,0,0,.06); }
    .tdm-tabs button{ flex:1; min-height:58px; border:none; background:transparent; border-radius:14px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; font:inherit; font-size:13px; font-weight:800; color:var(--sub); position:relative; }
    .tdm-tabs button .i{ font-size:22px; line-height:1; }
    .tdm-tabs button.on{ color:var(--td-blue-text); background:var(--accent-soft); }
    .tdm-tabs button .bdg{ position:absolute; top:4px; left:calc(50% + 6px); min-width:20px; height:20px; border-radius:10px; background:#d62b20; color:#fff; font-size:12.5px; line-height:20px; padding:0 5px; }
    .tdm-tabs .add{ color:#fff; background:var(--accent-on); margin-left:4px; }
    .tdm-bg{ display:block; position:fixed; inset:0; background:rgba(10,14,24,.45); z-index:60; opacity:0; pointer-events:none; transition:opacity .2s; }
    .tdm-bg.show{ opacity:1; pointer-events:auto; }
    .tdm-sheet{ display:flex; flex-direction:column; position:fixed; left:0; right:0; bottom:0; z-index:61; background:var(--card); border-radius:22px 22px 0 0; max-height:calc(100dvh - 24px); transform:translateY(105%); transition:transform .25s cubic-bezier(.2,.8,.3,1); box-shadow:0 -10px 40px rgba(0,0,0,.25); visibility:hidden; }
    .tdm-sheet.show{ transform:none; visibility:visible; }
    .tdm-sh{ display:flex; align-items:center; gap:8px; padding:12px 12px 10px 18px; border-bottom:1px solid var(--line); background:var(--accent-on); color:#fff; border-radius:22px 22px 0 0; }
    .tdm-sh h3{ flex:1; margin:0; font-size:18px; font-weight:900; color:#fff; }
    .tdm-sh button{ width:44px; height:44px; border-radius:50%; border:none; background:rgba(255,255,255,.2); color:#fff; font-size:18px; cursor:pointer; }
    .tdm-sb{ overflow-y:auto; padding:14px 18px 18px; flex:1 1 auto; }
    .tdm-sb .lab{ display:block; font-weight:800; font-size:15.5px; margin:4px 0 6px; }
    .tdm-seg{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
    .tdm-seg button{ flex:1 1 auto; min-width:64px; min-height:48px; border-radius:12px; border:1.5px solid var(--line2); background:var(--card); color:var(--text); font:inherit; font-size:15px; font-weight:800; cursor:pointer; padding:4px 10px; }
    .tdm-seg button.on{ background:var(--accent-soft); border-color:var(--accent); color:var(--td-blue-text); }
    .tdm-sf{ display:flex; gap:10px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); }
    .tdm-sf button{ flex:1; min-height:52px; border-radius:14px; font:inherit; font-size:16px; font-weight:800; cursor:pointer; border:1.5px solid var(--line2); background:var(--card); color:var(--text); }
    .tdm-sf .ok{ flex:1.6; background:var(--accent-on); border-color:var(--accent-on); color:#fff; }
    /* 編集の小窓（下から出る）：よく使う5項目を上・残りは「くわしく」 */
    #todoModal .mbox{ display:flex; flex-direction:column; }
    #todoModal .rgmhead{ order:0; } #todoModal .tdo1{ order:1; } #todoModal .tdo2{ order:2; } #todoModal .tdo3{ order:3; } #todoModal .tdo4{ order:4; } #todoModal .tdo5{ order:5; } #todoModal .tdo6{ order:6; } #todoModal .tdo7{ order:7; } #todoModal .tdo8{ order:8; } #todoModal .mbtns{ order:20; }
    #todoModal:not(.moreopen) .tdmore{ display:none!important; }
    .tdmoreb{ display:flex; align-items:center; width:100%; min-height:52px; margin:4px 0 10px; padding:0 14px; border:1px solid var(--line); border-radius:14px; background:var(--hover); color:var(--text); font:inherit; font-size:15.5px; font-weight:800; cursor:pointer; text-align:left; }
    .tdmoreb::after{ content:"▼"; margin-left:auto; font-size:12px; color:var(--sub); }
    #todoModal.moreopen .tdmoreb::after{ content:"▲"; }
    #todoModal .tdrow2.keep .rgfield{ flex:1 1 0; }
    #todoModal .tdmkind{ max-width:none!important; }
  }
  @media (orientation:landscape) and (max-height:500px) and (max-width:950px){
    .tdm-tabs button{ min-height:46px; flex-direction:row; gap:6px; font-size:14px; } .tdm-tabs button .i{ font-size:18px; } .tdm-tabs button .bdg{ position:static; margin-left:2px; }
    body.tdmob #todo{ padding-bottom:calc(66px + env(safe-area-inset-bottom)); }
  }
  .tdmoreb{ display:none; } @media (max-width:760px), (orientation:landscape) and (max-height:500px) and (max-width:950px){ .tdmoreb{ display:flex; } }
  /* ===== 記号の約束（2026年10月 上村さん「言葉でなく形で」）=====
     種別＝形（■課題 紫・▲検討 橙・●ToDo 青）／優先度＝棒の数（高3・中2・低1）／状態＝丸の満ち方（○まだ・◐やってる・✓終わり。押すと進む）／期限＝色（赤すぎた・橙今日・青今週・灰その先） */
  #todo, #todoRemindModal, #todoReflectModal, #todoModal{ --sk1:#6a3fd0; --sk2:#e07a00; --sk3:#0a6bd6; --t-over:#e0281d; --t-today:#f08a00; --t-week:#2f7df6; --t-later:#9aa1ad; }
  body.dark #todo, body.dark #todoRemindModal, body.dark #todoReflectModal{ --sk1:#a58bff; --sk2:#ffa53a; --sk3:#4aa3ff; }
  .tdpri.none{ font-size:0!important; }
  .tdsr{ width:44px; height:44px; flex:0 0 auto; border-radius:50%; border:3px solid var(--line2); background:var(--card,#fff); cursor:pointer; position:relative; padding:0; font-size:0; }
  .tdsr::after{ content:""; position:absolute; inset:7px; border-radius:50%; }
  .tdsr.s1{ border-color:var(--t-week); } .tdsr.s1::after{ background:conic-gradient(var(--t-week) 0 50%,transparent 50% 100%); }
  .tdsr.s2{ border-color:#1f8a3d; background:#1f8a3d; } .tdsr.s2::after{ content:"✓"; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:900; font-size:20px; }
  .tdsr:hover{ box-shadow:0 0 0 3px var(--accent-soft); }
  .tdsr.sm{ width:18px; height:18px; border-width:2px; cursor:default; vertical-align:-4px; display:inline-block; } .tdsr.sm::after{ inset:3px; } .tdsr.sm.s2::after{ font-size:11px; }
  .tdm-ck{ font-size:0!important; position:relative; border-width:3px!important; }
  .tdm-ck::after{ content:""; position:absolute; inset:8px; border-radius:50%; }
  .tdm-ck.s1{ border-color:var(--t-week)!important; } .tdm-ck.s1::after{ background:conic-gradient(var(--t-week) 0 50%,transparent 50% 100%); }
  .tdm-ck.s2{ border-color:#1f8a3d!important; background:#1f8a3d!important; } .tdm-ck.s2::after{ content:"✓"; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; font-weight:900; }
  .tdlegend{ position:relative; margin-left:auto; }
  /* スマホでは「？ 記号」の吹き出しを上の段の幅いっぱいに出す（右寄せのままだと左へはみ出していた） */
  @media (max-width:760px), (max-height:500px) and (max-width:950px){ .tdm-top{ position:relative; } .tdm-top .tdlegend{ position:static; } .tdm-top .tdlegend .lg{ left:8px; right:8px; width:auto; top:calc(100% + 6px); } }
  /* 明るい画面: 一覧の「✓ 完了」の見出しの緑を濃く・上の帯と今日やることの帯の淡い側を濃くして白い字の対比を4.5以上に */
  .tdg-done .tdgrp-h{ color:var(--td-green-text); }
  body:not(.dark) #todo{ --td-kv1:#0050c8; --td-kv2:#4a3fd0; --td-kv3:#6236c8; }
  body:not(.dark) #todoRemindModal{ --tdr1:#003c9e; --tdr2:#3a2aa8; --tdr3:#5025a6; }
  #todoRemindModal .tdrx,#todoAheadModal .tdrx,#todoReflectModal .tdrx{ background:rgba(0,0,0,.32); font-weight:900; }   /* ✕ は暗い丸の上に白（細い線でも読める） */
  .tdlegend summary{ list-style:none; min-height:44px; min-width:44px; display:flex; align-items:center; justify-content:center; padding:0 14px; border-radius:999px; background:var(--card,#fff); border:1.5px solid var(--line); font-weight:800; font-size:15px; cursor:pointer; white-space:nowrap; color:var(--text); }
  .tdlegend summary::-webkit-details-marker{ display:none; }
  .tdlegend .lg{ position:absolute; right:0; top:52px; z-index:20; width:min(360px,calc(100vw - 24px)); background:var(--card,#fff); border:1px solid var(--line); border-radius:16px; padding:12px 14px; box-shadow:0 10px 30px rgba(0,0,0,.2); font-size:15px; display:grid; gap:10px; color:var(--text); }
  .tdlegend .lg div{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .tdlegend .lg b{ width:60px; font-size:14px; color:var(--sub); }
  .tdlegend .tdkind{ display:inline-flex; }
  .tddot{ display:inline-block; width:12px; height:12px; border-radius:50%; } .tddot.over{ background:var(--t-over); } .tddot.today{ background:var(--t-today); } .tddot.week{ background:var(--t-week); } .tddot.later{ background:var(--t-later); }
  .tdtools .tdlegend{ order:9; }
  /* 🛤 時間の道（A案） */
  .tdA-road{ position:relative; border-radius:22px; padding:16px 12px 12px; background:linear-gradient(120deg,var(--td-kv1),var(--td-kv2) 60%,var(--td-kv3)); color:#fff; box-shadow:var(--shadow-sm); margin-bottom:14px; }
  .tdA-now{ display:flex; align-items:baseline; gap:10px; margin:0 4px 10px; } .tdA-now b{ font-size:42px; line-height:1; font-variant-numeric:tabular-nums; } .tdA-now span{ font-size:17px; font-weight:800; }
  .tdA-track{ display:grid; grid-template-columns:1.3fr repeat(7,minmax(0,1fr)) 1fr 1fr; gap:4px; overflow-x:auto; }
  .tdA-col{ min-height:140px; border-radius:14px; padding:6px 4px 8px; background:rgba(255,255,255,.1); display:flex; flex-direction:column; align-items:center; min-width:58px; }
  .tdA-col.past{ background:rgba(255,70,60,.38); }
  .tdA-col.today{ background:#fff; color:#3a2fb0; box-shadow:0 0 0 3px #ffd36b; }
  .tdA-col .cl{ font-size:14px; font-weight:900; white-space:nowrap; } .tdA-col .cs{ font-size:13px; font-weight:700; margin-bottom:4px; white-space:nowrap; min-height:18px; }
  .tdA-toks{ display:flex; flex-wrap:wrap; gap:4px; justify-content:center; align-content:flex-start; }
  .tdA-tok{ position:relative; width:44px; height:44px; border:none; padding:0; background:transparent; cursor:pointer; color:#fff; font-weight:900; font-size:13px; display:flex; align-items:center; justify-content:center; }
  .tdA-tok i{ position:absolute; inset:0; margin:auto; box-shadow:0 0 0 2px #fff; }
  .tdA-tok.p3 i{ width:40px; height:40px; } .tdA-tok.p2 i{ width:32px; height:32px; } .tdA-tok.p1 i,.tdA-tok.p0 i{ width:26px; height:26px; }
  .tdA-tok.k1 i{ background:#6a3fd0; border-radius:7px; } .tdA-tok.k3 i{ background:#0a6bd6; border-radius:50%; }
  .tdA-tok.k2 i{ background:#c96a00; clip-path:polygon(50% 4%,100% 96%,0 96%); box-shadow:none; }
  .tdA-tok span{ position:relative; text-shadow:0 1px 2px rgba(0,0,0,.45); } .tdA-tok.k2 span{ top:5px; }
  .tdA-tok.s1::after{ content:""; position:absolute; right:0; top:0; width:14px; height:14px; border-radius:50%; background:conic-gradient(#2f7df6 0 50%,#fff 50% 100%); border:2px solid #fff; }
  .tdA-lanes{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:start; }
  .tdA-lane{ background:var(--card,#fff); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-sm); overflow:hidden; border-top:8px solid var(--t-later); }
  .tdA-lane.l1{ border-top-color:var(--t-over); } .tdA-lane.l2{ border-top-color:var(--t-week); }
  .tdA-lane h3{ display:flex; align-items:center; gap:8px; margin:0; padding:12px 14px 8px; font-size:19px; font-weight:900; }
  .tdA-lane h3 .n{ margin-left:auto; font-size:28px; font-variant-numeric:tabular-nums; }
  .tdA-lane.l1 h3 .n{ color:var(--td-red-text); } .tdA-lane.l2 h3 .n{ color:var(--td-blue-text); } .tdA-lane.l3 h3 .n{ color:var(--sub); }
  .tdAB-it{ display:flex; align-items:center; gap:10px; padding:10px 12px 10px 14px; border-top:1px solid var(--line); cursor:pointer; position:relative; min-height:64px; }
  .tdAB-it::before{ content:""; position:absolute; left:0; top:8px; bottom:8px; width:5px; border-radius:0 4px 4px 0; }
  .tdAB-it.over::before{ background:var(--t-over); } .tdAB-it.today::before{ background:var(--t-today); } .tdAB-it.week::before{ background:var(--t-week); }
  .tdAB-it:hover{ background:var(--hover); }
  .tdAB-it .bd{ flex:1; min-width:0; }
  .tdAB-it .t{ font-weight:800; font-size:15.5px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
  .tdAB-it.done .t{ text-decoration:line-through; color:var(--sub); }
  .tdAB-it .m{ display:flex; align-items:center; gap:8px; margin-top:4px; flex-wrap:wrap; }
  .tdAB-it .m .tdav{ width:26px; height:26px; font-size:12.5px; }
  .tdAB-done{ display:flex; align-items:center; gap:8px; width:100%; min-height:52px; padding:8px 14px; border:none; border-top:1px solid var(--line); background:transparent; color:var(--td-green-text,#1f8a3d); font:inherit; font-size:16px; font-weight:800; cursor:pointer; text-align:left; }
  .tdAB-empty{ padding:16px; color:var(--sub); text-align:center; font-size:15px; }
  /* 👥 持ち場（B案） */
  .tdB-board{ display:grid; grid-template-columns:repeat(var(--n),minmax(0,1fr)); gap:14px; align-items:start; }
  .tdB-pc{ background:var(--card,#fff); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow-sm); overflow:hidden; }
  .tdB-ph{ display:flex; align-items:center; gap:12px; padding:14px; background:linear-gradient(120deg,var(--td-kv1),var(--td-kv2) 60%,var(--td-kv3)); color:#fff; }
  .tdB-ph.none{ background:linear-gradient(120deg,#555c69,#6f7684); }
  .tdB-ph .tdav{ width:54px; height:54px; font-size:24px; border:3px solid rgba(255,255,255,.85); }
  .tdB-ph .nm{ font-size:19px; font-weight:900; }
  .tdB-ph .hot{ display:inline-flex; align-items:center; gap:4px; margin-top:4px; background:#fff; color:#b3180f; border-radius:999px; padding:1px 10px; font-weight:900; font-size:15px; }
  .tdB-ph .n{ margin-left:auto; font-size:40px; font-weight:900; line-height:1; font-variant-numeric:tabular-nums; }
  .tdB-load{ display:flex; height:12px; background:var(--rg-gray-soft); } .tdB-load i{ display:block; height:100%; }
  .tdB-load .over{ background:var(--t-over); } .tdB-load .today{ background:var(--t-today); } .tdB-load .week{ background:var(--t-week); } .tdB-load .later{ background:var(--t-later); }
  .tdB-pile .tdAB-it{ margin:8px; border:1.5px solid var(--line); border-radius:14px; }
  .tdB-pile .tdAB-it.over{ border-color:var(--t-over); box-shadow:0 0 0 3px rgba(224,40,29,.18),0 0 14px rgba(224,40,29,.28); }
  .tdB-pile .tdAB-it.today{ border-color:var(--t-today); }
  .tdB-pile .tdAB-it::before{ display:none; }
  .tdB-pick{ display:none; }
  @container todo (max-width:1060px){ .tdB-board{ grid-template-columns:repeat(2,minmax(0,1fr)); } .tdA-lanes{ grid-template-columns:minmax(0,1fr); } }
  .tdm-wrap .tdA-lanes{ grid-template-columns:minmax(0,1fr); }
  .tdm-wrap .tdA-road{ margin:0 0 14px; border-radius:22px; padding:16px 10px 12px; }
  .tdm-wrap .tdA-track{ display:flex; gap:6px; scroll-snap-type:x proximity; } .tdm-wrap .tdA-col{ flex:0 0 76px; scroll-snap-align:start; } .tdm-wrap .tdA-col.past{ flex-basis:104px; } .tdm-wrap .tdA-col.today{ flex-basis:116px; }
  .tdm-wrap .tdB-board{ display:block; } .tdm-wrap .tdB-pc{ display:none; } .tdm-wrap .tdB-pc.sel{ display:block; }
  .tdm-wrap .tdB-pick{ display:flex; gap:10px; overflow-x:auto; padding:2px 0 10px; }
  .tdB-pick button{ flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:4px; min-width:76px; min-height:96px; padding:8px 6px; border-radius:18px; border:2.5px solid transparent; background:var(--card,#fff); box-shadow:var(--shadow-sm); cursor:pointer; position:relative; font:inherit; font-weight:800; font-size:14px; color:var(--text); }
  .tdB-pick button.on{ border-color:var(--accent); background:var(--accent-soft); }
  .tdB-pick button .tdav{ width:48px; height:48px; font-size:21px; }
  .tdB-pick .bdg{ position:absolute; top:4px; right:6px; min-width:24px; height:24px; border-radius:12px; background:#d62b20; color:#fff; font-size:13.5px; line-height:24px; padding:0 6px; }
  .tdB-pick .cnt{ font-size:14px; color:var(--sub); }
  /* ===== 仕上げの質感（2026年10月 上村さん「すさまじいリッチに」）：奥行きのある面・光沢・なめらかな動き（動きは transform と opacity だけ） ===== */
  #todo{ --rich-sh:0 1px 1px rgba(20,24,60,.04),0 2px 4px rgba(20,24,60,.05),0 8px 20px rgba(30,30,90,.08),0 18px 40px rgba(40,30,120,.07); --rich-sh-hi:0 2px 4px rgba(20,24,60,.06),0 10px 24px rgba(30,30,90,.14),0 24px 48px rgba(40,30,120,.12); }
  body.dark #todo{ --rich-sh:0 1px 1px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.35),0 0 0 1px rgba(140,150,255,.06); --rich-sh-hi:0 10px 30px rgba(0,0,0,.5),0 0 0 1px rgba(150,160,255,.18),0 0 24px rgba(110,120,255,.15); }
  /* 時間の道：光の面・今日の柱・すぎた側の赤い霞 */
  .tdA-road{ background:radial-gradient(120% 140% at 0% 0%,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 42%),radial-gradient(80% 120% at 100% 100%,rgba(255,170,240,.28) 0%,rgba(255,170,240,0) 55%),linear-gradient(125deg,#1a5cff 0%,#4b3fe0 52%,#8a4cf0 100%); box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 18px 40px rgba(60,40,200,.28),0 4px 10px rgba(40,30,140,.18); border-radius:26px; padding:18px 14px 14px; overflow:hidden; }
  body.dark .tdA-road{ background:radial-gradient(1.5px 1.5px at 12% 22%,rgba(255,255,255,.8) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 68% 14%,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(1px 1px at 84% 40%,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(90% 120% at 100% 100%,rgba(140,90,255,.35) 0%,transparent 60%),linear-gradient(150deg,#0a0f2e 0%,#17154a 55%,#2b185e 100%); box-shadow:0 0 0 1px rgba(150,160,255,.14) inset,0 20px 50px rgba(0,0,0,.55),0 0 40px rgba(90,80,255,.18); }
  .tdA-now b{ font-size:48px; font-weight:900; letter-spacing:-.02em; text-shadow:0 4px 18px rgba(0,0,0,.25); }
  .tdA-now span{ font-size:17px; opacity:.95; letter-spacing:.04em; }
  .tdA-track{ gap:6px; padding:2px; }
  .tdA-col{ border-radius:16px; background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.06)); box-shadow:0 1px 0 rgba(255,255,255,.18) inset; }
  .tdA-col.past{ background:linear-gradient(90deg,rgba(150,10,40,.62) 0%,rgba(190,30,60,.42) 60%,rgba(220,60,90,.22) 100%); box-shadow:0 1px 0 rgba(255,180,190,.25) inset,0 0 26px rgba(255,40,70,.28); }
  .tdA-col.today{ position:relative; background:linear-gradient(180deg,#ffffff 0%,#f4f1ff 100%); color:#3a2fb0; box-shadow:0 0 0 3px #ffd36b,0 0 22px 4px rgba(255,211,107,.55),0 12px 26px rgba(30,20,120,.25); z-index:1; }
  .tdA-col.today .tdA-toks:empty::before{ content:"✓"; display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin-top:10px; border-radius:50%; background:#e9f8ee; color:#17803a; font-size:22px; font-weight:900; }
  .tdm-top .tdlegend summary{ width:44px; padding:0; font-size:0; } .tdm-top .tdlegend summary::before{ content:"？"; font-size:18px; font-weight:900; }
  .tdm-top h2{ font-size:18px; }
  .tdA-col .cl{ font-size:14.5px; letter-spacing:.04em; }
  .tdA-tok{ transition:transform .18s cubic-bezier(.2,.8,.3,1); }
  .tdA-tok i{ box-shadow:0 0 0 2px rgba(255,255,255,.95),0 4px 8px rgba(10,10,60,.35); }
  .tdA-tok:hover,.tdA-tok:focus-visible{ transform:translateY(-3px) scale(1.07); }
  .tdA-tok i{ box-shadow:0 0 0 2px rgba(255,255,255,.95),inset 0 -4px 7px rgba(0,0,0,.28),inset 0 3px 5px rgba(255,255,255,.35); }
  .tdA-tok.k1 i{ background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55) 0,rgba(255,255,255,0) 42%),linear-gradient(160deg,#8b63f0,#4b23b8); }
  .tdA-tok.k3 i{ background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.6) 0,rgba(255,255,255,0) 44%),linear-gradient(160deg,#3b93ff,#0749b8); }
  .tdA-tok.k2 i{ background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 40%),linear-gradient(170deg,#ffaa3c,#c25a00); box-shadow:none; }
  .tdA-col.today .tdA-tok i{ box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(90,70,220,.35),inset 0 -4px 7px rgba(0,0,0,.28),inset 0 3px 5px rgba(255,255,255,.35); }
  /* 玉は丸にそろえ、色は担当の人ごと（.tdav の p1/p2/p3 と同じ色）・2026年10月 */
  .tdA-tok i{ border-radius:50%; clip-path:none; }
  .tdA-tok.q1 i{ background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55) 0,rgba(255,255,255,0) 42%),linear-gradient(160deg,#7b79f0,#3f3cb8); }
  .tdA-tok.q2 i{ background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55) 0,rgba(255,255,255,0) 42%),linear-gradient(160deg,#ef5aa0,#a51f62); }
  .tdA-tok.q3 i{ background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55) 0,rgba(255,255,255,0) 42%),linear-gradient(160deg,#20a8b5,#086670); }
  .tdA-tok.q0 i{ background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 42%),linear-gradient(160deg,#9aa1ad,#5f6672); }
  /* 3段・持ち場のカード */
  .tdA-lane,.tdB-pc{ border:1px solid color-mix(in srgb,var(--line) 70%,transparent); box-shadow:var(--rich-sh); background:linear-gradient(180deg,color-mix(in srgb,var(--card,#fff) 100%,transparent),color-mix(in srgb,var(--card,#fff) 94%,var(--td-kv2))); }
  .tdA-lane{ border-top:0; position:relative; padding-top:6px; }
  .tdA-lane::before{ content:""; position:absolute; left:0; right:0; top:0; height:6px; background:linear-gradient(90deg,#b8c0cc,#dde2ea); }
  .tdA-lane.l1::before{ background:linear-gradient(90deg,#c1121f,#ff5a4e 60%,#ff9a6a); } .tdA-lane.l2::before{ background:linear-gradient(90deg,#1a5cff,#4fa0ff); }
  .tdA-lane h3{ font-size:19.5px; letter-spacing:.02em; padding:14px 16px 10px; }
  .tdA-lane h3 .n{ font-size:34px; letter-spacing:-.02em; }
  .tdAB-it{ transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .18s,background-color .18s; }
  .tdAB-it:hover{ transform:translateY(-1px); background:color-mix(in srgb,var(--hover) 70%,transparent); }
  .tdB-pile .tdAB-it{ background:var(--card,#fff); box-shadow:0 1px 2px rgba(20,24,60,.05),0 4px 10px rgba(30,30,90,.06); }
  .tdB-pile .tdAB-it:hover{ transform:translateY(-2px); box-shadow:var(--rich-sh-hi); }
  .tdB-pile .tdAB-it.over{ background:linear-gradient(180deg,color-mix(in srgb,#ff3b30 7%,var(--card,#fff)),var(--card,#fff)); }
  .tdB-pile .tdAB-it.today{ background:linear-gradient(180deg,color-mix(in srgb,#ff9500 9%,var(--card,#fff)),var(--card,#fff)); box-shadow:0 0 0 2px rgba(240,138,0,.18),0 4px 12px rgba(240,138,0,.12); }
  .tdB-board{ gap:16px; }
  .tdB-pc{ border-radius:24px; }
  .tdB-ph{ position:relative; overflow:hidden; padding:16px; background:radial-gradient(120% 160% at 0% 0%,rgba(255,255,255,.25) 0,rgba(255,255,255,0) 45%),linear-gradient(125deg,#1a5cff 0%,#4b3fe0 55%,#8a4cf0 100%); }
  body.dark .tdB-ph{ background:radial-gradient(1.5px 1.5px at 70% 20%,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(90% 140% at 100% 100%,rgba(140,90,255,.4) 0,transparent 60%),linear-gradient(150deg,#0a0f2e,#1d1856 60%,#2e1a66); }
  .tdB-ph.none{ background:linear-gradient(125deg,#4d5462,#6d7483); }
  .tdB-ph .tdav{ width:62px; height:62px; font-size:27px; border:3px solid rgba(255,255,255,.9); box-shadow:0 0 0 5px rgba(255,255,255,.18),0 8px 18px rgba(0,0,0,.25); }
  .tdB-ph .nm{ font-size:20px; letter-spacing:.02em; }
  .tdB-ph .n{ font-size:46px; letter-spacing:-.02em; text-shadow:0 4px 16px rgba(0,0,0,.25); }
  .tdB-ph .hot{ position:relative; box-shadow:0 0 0 0 rgba(255,80,60,.0),0 0 16px rgba(255,90,70,.75); background:linear-gradient(180deg,#fff,#ffecea); }
  .tdB-ph .hot::after{ content:""; position:absolute; inset:-4px; border-radius:999px; border:2px solid rgba(255,120,100,.8); animation:tdGlow 1.8s ease-out infinite; pointer-events:none; }
  @keyframes tdGlow{ 0%{ transform:scale(.9); opacity:.9; } 100%{ transform:scale(1.25); opacity:0; } }
  .tdB-load{ height:10px; margin:12px 14px 4px; border-radius:999px; overflow:hidden; gap:2px; background:color-mix(in srgb,var(--rg-gray-soft) 80%,transparent); box-shadow:inset 0 1px 2px rgba(0,0,0,.12); }
  .tdB-load i{ border-radius:999px; }
  .tdB-load .over{ background:linear-gradient(90deg,#c1121f,#ff5a4e); } .tdB-load .today{ background:linear-gradient(90deg,#e07a00,#ffb547); } .tdB-load .week{ background:linear-gradient(90deg,#1a5cff,#5aa8ff); } .tdB-load .later{ background:linear-gradient(90deg,#9aa1ad,#c4c9d2); }
  .tdB-pick button{ transition:transform .18s cubic-bezier(.2,.8,.3,1); box-shadow:var(--rich-sh); }
  .tdB-pick button:active{ transform:scale(.97); }
  .tdB-pick .bdg{ box-shadow:0 0 0 2px var(--card,#fff),0 0 12px rgba(255,60,50,.7); }
  /* 種別の形に立体感 */
  /* 状態の丸：押すとチェックが描かれる */
  .tdsr{ transition:transform .15s cubic-bezier(.2,.8,.3,1),box-shadow .15s; box-shadow:0 1px 2px rgba(0,0,0,.08); }
  .tdsr:hover{ transform:scale(1.06); }
  .tdsr:active{ transform:scale(.94); }
  .tdsr.s2{ background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.35) 0,rgba(255,255,255,0) 50%),linear-gradient(160deg,#2fbf62,#17803a); border-color:#17803a; box-shadow:0 2px 8px rgba(23,128,58,.35); }
  .tdsr.just::after{ animation:tdCheck .45s cubic-bezier(.2,1.4,.4,1) both; }
  .tdsr.just{ animation:tdPopR .45s cubic-bezier(.2,1.4,.4,1); }
  @keyframes tdCheck{ 0%{ opacity:0; transform:scale(.2) rotate(-30deg); } 100%{ opacity:1; transform:none; } }
  @keyframes tdPopR{ 0%{ transform:scale(.85); } 60%{ transform:scale(1.15); } 100%{ transform:scale(1); } }
  /* 表示の切り替えはなめらかに入れ替わる */
  .tdswap{ animation:tdSwap .26s cubic-bezier(.2,.8,.3,1) both; }
  @keyframes tdSwap{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
  .tdmode .rctab{ transition:transform .15s; } .tdmode .rctab:active{ transform:scale(.97); }
  @supports ((backdrop-filter:blur(12px)) or (-webkit-backdrop-filter:blur(12px))){
    .tdm-tabs{ background:color-mix(in srgb,var(--card,#fff) 82%,transparent); backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px); }
    .tdlegend .lg{ background:color-mix(in srgb,var(--card,#fff) 88%,transparent); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
  }
  @media (prefers-reduced-motion:reduce){
    .tdA-tok,.tdAB-it,.tdsr,.tdB-pick button{ transition:none!important; }
    .tdswap,.tdsr.just,.tdsr.just::after,.tdB-ph .hot::after{ animation:none!important; }
  }
  /* 2回目の磨き込み：アイコンをそろえる・角丸の約束（大きな面22・中の札14）・文字の段階 */
  .tdic{ display:block; flex:0 0 auto; }
  .tdmodeb{ display:inline-flex; align-items:center; gap:6px; }
  .tdmodeb .tdic{ width:19px; height:19px; }
  .tdm-tabs button .i{ display:flex; align-items:center; justify-content:center; height:24px; }
  .tdm-tabs button .i .tdic{ width:23px; height:23px; }
  .tdm-ic{ display:inline-flex; align-items:center; justify-content:center; } .tdm-ic .tdic{ width:21px; height:21px; }
  .tdA-road,.tdA-lane,.tdB-pc{ border-radius:22px; }
  .tdAB-it,.tdB-pile .tdAB-it{ border-radius:14px; }
  .tdA-ld{ display:inline-block; width:12px; height:12px; border-radius:50%; background:var(--t-later); box-shadow:0 0 0 4px color-mix(in srgb,var(--t-later) 22%,transparent); margin-right:4px; }
  .tdA-lane.l1 .tdA-ld{ background:var(--t-over); box-shadow:0 0 0 4px color-mix(in srgb,var(--t-over) 22%,transparent); }
  .tdA-lane.l2 .tdA-ld{ background:var(--t-week); box-shadow:0 0 0 4px color-mix(in srgb,var(--t-week) 22%,transparent); }
  .tdhotdot{ display:inline-block; width:9px; height:9px; border-radius:50%; background:#e0281d; box-shadow:0 0 8px #ff5a4e; margin-right:2px; }
  .tdB-ph .hot{ font-size:14px; padding:2px 10px 2px 8px; }
  .tdm-top h2 small{ display:none; }
  /* 3回目の磨き込み：絵文字を記号にそろえる・グループの見出しに色の点 */
  .tdgrp-h::before{ content:""; display:inline-block; width:12px; height:12px; border-radius:50%; background:var(--t-later); box-shadow:0 0 0 4px color-mix(in srgb,var(--t-later) 20%,transparent); }
  .tdg-over .tdgrp-h::before{ background:var(--t-over); box-shadow:0 0 0 4px color-mix(in srgb,var(--t-over) 20%,transparent); }
  .tdg-today .tdgrp-h::before{ background:var(--t-today); box-shadow:0 0 0 4px color-mix(in srgb,var(--t-today) 20%,transparent); }
  .tdg-week .tdgrp-h::before{ background:var(--t-week); box-shadow:0 0 0 4px color-mix(in srgb,var(--t-week) 20%,transparent); }
  .tdg-done .tdgrp-h::before{ background:#1f8a3d; box-shadow:0 0 0 4px rgba(31,138,61,.2); }
  .tdkcol-t,.tdm-ktabs button,.tdleg span{ display:inline-flex; align-items:center; gap:6px; }
  .tdm-ktabs button{ flex-direction:column; justify-content:center; gap:2px; }
  .tdm-sec .tddot{ margin-right:2px; }
  .tdsr.sm{ flex:0 0 auto; }
  .tdleg .tdsr.sm{ border-color:rgba(255,255,255,.85); }
  .tddue{ letter-spacing:.01em; }
  /* ⚡ 前倒しモード（今日の分が0件のとき・2026年10月 上村さん）：朝日・加速の光・熱いグラデーション（白い文字の下は濃い色で対比4.5以上） */
  #todoAheadModal .mbox{ width:720px; padding:0; overflow:auto; border-radius:26px; }
  #todoAheadModal.show .mbox{ animation:tdaIn .45s cubic-bezier(.2,.9,.3,1.2) both; }
  @keyframes tdaIn{ from{ opacity:0; transform:translateY(16px) scale(.96); } to{ opacity:1; transform:none; } }
  .tdakv{ position:relative; overflow:hidden; color:#fff; padding:28px 30px 26px; background:radial-gradient(120% 140% at 0% 0%,rgba(255,255,255,.14) 0,rgba(255,255,255,0) 40%),linear-gradient(120deg,#8f1d0a 0%,#b3300b 40%,#a5162f 100%); }
  body.dark .tdakv{ background:radial-gradient(120% 140% at 0% 0%,rgba(255,180,80,.12) 0,transparent 40%),linear-gradient(120deg,#4a1206 0%,#6b1b08 45%,#5c0b20 100%); }
  .tdakv .sun{ position:absolute; right:-60px; top:-60px; width:240px; height:240px; border-radius:50%; background:radial-gradient(circle at 50% 50%,#ffe7a3 0%,#ffc14d 38%,rgba(255,150,40,.55) 58%,rgba(255,120,40,0) 72%); pointer-events:none; opacity:.85; }
  .tdakv .ray{ position:absolute; height:3px; border-radius:3px; background:linear-gradient(90deg,rgba(255,220,140,0),rgba(255,220,140,.75),rgba(255,255,255,0)); pointer-events:none; animation:tdaRay 2.4s linear infinite; }
  .tdakv .r1{ top:28%; left:-30%; width:60%; } .tdakv .r2{ top:52%; left:-40%; width:45%; animation-delay:.6s; } .tdakv .r3{ top:72%; left:-35%; width:55%; animation-delay:1.2s; } .tdakv .r4{ top:88%; left:-30%; width:40%; animation-delay:1.8s; }
  @keyframes tdaRay{ from{ transform:translateX(0); opacity:0; } 20%{ opacity:1; } to{ transform:translateX(260%); opacity:0; } }
  .tdakv .chev{ position:absolute; right:26px; bottom:22px; display:flex; gap:2px; opacity:.9; pointer-events:none; }
  .tdakv .chev i{ width:22px; height:22px; border-right:5px solid #ffd36b; border-top:5px solid #ffd36b; transform:rotate(45deg); animation:tdaChev 1.4s ease-in-out infinite; }
  .tdakv .chev i:nth-child(2){ animation-delay:.15s; } .tdakv .chev i:nth-child(3){ animation-delay:.3s; }
  @keyframes tdaChev{ 0%,100%{ opacity:.35; } 50%{ opacity:1; } }
  .tdaeye{ position:relative; display:inline-block; font-size:14.5px; font-weight:900; letter-spacing:.06em; background:rgba(0,0,0,.25); border:1px solid rgba(255,214,107,.6); color:#ffe39a; border-radius:999px; padding:4px 14px; }
  .tdabig{ position:relative; font-size:30px; font-weight:900; line-height:1.3; margin-top:14px; letter-spacing:.01em; text-shadow:0 3px 14px rgba(0,0,0,.25); }
  .tdabig b{ font-size:46px; margin:0 4px; color:#ffe39a; }
  .tdasub{ position:relative; font-size:22px; font-weight:900; margin-top:4px; }
  .tdaword{ position:relative; display:inline-block; margin-top:12px; font-size:16px; font-weight:800; line-height:1.6; background:rgba(0,0,0,.28); border-radius:12px; padding:7px 14px; max-width:560px; }
  .tdabody{ padding:16px 20px 20px; }
  .tdadone{ display:none; align-items:center; gap:8px; margin-bottom:10px; padding:10px 14px; border-radius:14px; background:linear-gradient(90deg,#fff3d6,#ffe1c2); color:#7a2e00; font-size:17px; font-weight:900; }
  body.dark .tdadone{ background:linear-gradient(90deg,#3a2508,#3d1a0c); color:#ffd08a; }
  .tdadone.show{ display:flex; } .tdadone.pop{ animation:tdaPop .5s cubic-bezier(.2,1.5,.4,1); }
  @keyframes tdaPop{ 0%{ transform:scale(.9); } 60%{ transform:scale(1.04); } 100%{ transform:scale(1); } }
  .tdait{ display:flex; align-items:center; gap:10px; padding:12px 12px 12px 16px; border:1px solid var(--line); border-radius:16px; margin-bottom:10px; background:var(--card,#fff); position:relative; overflow:hidden; box-shadow:0 1px 2px rgba(20,24,60,.05),0 4px 12px rgba(30,30,90,.06); }
  .tdait::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(180deg,#f08a00,#c2410c); }
  .tdait .no{ font-weight:800; color:var(--sub); flex:0 0 auto; }
  .tdait .bd{ flex:1 1 auto; min-width:0; }
  .tdait .tdttl{ font-size:16.5px; }
  .tdait .mt{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:4px; }
  .tdaleft{ font-size:20px; font-weight:900; color:#a3360a; font-variant-numeric:tabular-nums; } .tdaleft small{ font-size:13.5px; font-weight:800; margin-left:2px; }
  body.dark .tdaleft{ color:#ffb36b; }
  .tdago{ flex:0 0 auto; min-height:50px; padding:6px 16px; border-radius:14px; border:none; background:linear-gradient(135deg,#b3300b,#a5162f); color:#fff; font:inherit; font-size:16px; font-weight:900; cursor:pointer; box-shadow:0 4px 14px rgba(179,48,11,.35); transition:transform .15s; white-space:nowrap; }
  .tdago:hover{ transform:translateY(-1px); } .tdago:active{ transform:scale(.97); } .tdago:disabled{ opacity:.6; cursor:default; }
  .tdait.moved{ background:linear-gradient(90deg,color-mix(in srgb,#ffb347 14%,var(--card,#fff)),var(--card,#fff)); }
  .tdait.moved .tdago{ display:none; }
  .tdamoved{ display:none; font-weight:900; color:#1f7a3a; white-space:nowrap; } body.dark .tdamoved{ color:#7ae597; }
  .tdait.moved .tdamoved{ display:inline-flex; }
  @media (max-width:760px){
    #todoAheadModal .mbox{ width:100vw; max-width:100vw; max-height:96dvh; border-radius:24px 24px 0 0; }
    .tdakv{ padding:22px 18px 22px; } .tdabig{ font-size:23px; } .tdabig b{ font-size:36px; } .tdasub{ font-size:18.5px; } .tdakv .sun{ width:180px; height:180px; }
    .tdabody{ padding:14px 14px 18px; }
    #todoAheadModal .mbtns button{ min-height:48px; font-size:16px; }
    .tdait{ flex-wrap:wrap; } .tdait .bd{ flex:1 1 calc(100% - 40px); } .tdago{ margin-left:auto; }
  }
  @media (prefers-reduced-motion:reduce){ #todoAheadModal.show .mbox,.tdakv .ray,.tdakv .chev i,.tdadone.pop,.tdago{ animation:none!important; transition:none!important; } .tdakv .ray{ display:none; } }
  #tdcBody{ max-height:56vh; overflow:auto; margin:4px 0 8px; }
  .tdcg{ border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin-bottom:10px; }
  .tdcg h4{ margin:0 0 6px; font-size:15.5px; font-weight:900; overflow-wrap:anywhere; }
  .tdcwarn{ font-size:13.5px; font-weight:800; color:var(--rg-orange-text); margin:-2px 0 6px; }
  .tdcl{ display:grid; grid-template-columns:120px minmax(0,1fr); gap:6px 10px; font-size:14.5px; align-items:baseline; }
  .tdcl .k{ font-weight:800; color:var(--sub); }
  .tdcl .v{ overflow-wrap:anywhere; white-space:pre-wrap; }
  .tdcl .b{ color:var(--sub); }
  .tdcl .a{ font-weight:800; }
  .tdref{ font-size:13px; color:var(--td-blue-text); font-weight:700; white-space:nowrap; }
  .tdpri{ display:inline-flex; align-items:center; font-size:13px; font-weight:800; padding:3px 9px; border-radius:8px; white-space:nowrap; background:var(--rg-gray-soft); color:var(--td-gray-text,var(--rg-gray-text)); }
  .tdpri.hi{ background:var(--rg-red-soft); color:var(--td-red-text); }
  .tdpri.none{ background:transparent; color:var(--sub); font-weight:600; }
  /* 種別の札（2026年10月 上村さん：①課題 ②検討タスク ③ToDo） */
  .tdkind{ display:inline-flex; align-items:center; flex:0 0 auto; font-size:13px; font-weight:800; padding:3px 9px; border-radius:8px; white-space:nowrap; line-height:1.4; background:#efeaff; color:#5b3fc4; }
  .tdkind.k2{ background:#fff1dc; color:#8a4b00; } .tdkind.k3{ background:#e7f1ff; color:#0058c2; }
  body.dark .tdkind{ background:#2e2650; color:#c9bcff; } body.dark .tdkind.k2{ background:#3a2a12; color:#ffb35c; } body.dark .tdkind.k3{ background:#1e2c3e; color:#7dbcff; }
  .tdttlrow{ display:flex; align-items:flex-start; gap:8px; min-width:0; } .tdttlrow .tdttl{ flex:1 1 auto; min-width:0; }
  .tdrow .tdkind.tded{ min-height:32px; cursor:pointer; } .tdrow .tdkind.tded.editing{ padding:0; background:none; }
  .tdrow .tdkind.tded:not(.editing):hover{ box-shadow:0 0 0 2px var(--accent); }
  .tddue{ display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:999px; font-size:13px; font-weight:800; white-space:nowrap; background:var(--rg-gray-soft); color:var(--td-gray-text,var(--rg-gray-text)); }
  .tddue.over{ background:var(--rg-red-soft); color:var(--td-red-text); }
  .tddue.today{ background:var(--rg-orange-soft); color:var(--td-orange-text); }
  .tddue.week{ background:var(--td-blue-soft); color:var(--td-blue-text); }
  .tddue.memo{ background:transparent; border:1.5px dashed var(--line2); }
  .tddue.none{ background:transparent; color:var(--sub); font-weight:600; }
  .tddued{ font-size:12.5px; color:var(--sub); font-variant-numeric:tabular-nums; white-space:nowrap; }
  .tdst{ display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:44px; min-width:96px; padding:6px 12px; border-radius:12px; font-size:14px; font-weight:800; border:1.5px solid var(--line2); background:var(--card,#fff); color:var(--text); cursor:pointer; font-family:inherit; white-space:nowrap; }
  .tdst.s1{ border-color:var(--accent); background:var(--accent-soft); color:var(--td-blue-text); }
  .tdst.s2{ border-color:transparent; background:var(--rg-green-soft); color:var(--rg-green-text); }
  .tdmode{ display:flex; gap:6px; }
  .tdmode .rctab{ min-height:44px; font-size:14px; }
  .tdkan{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:start; }
  .tdkcol{ background:var(--hover); border:2px solid transparent; border-radius:18px; padding:10px; min-width:0; transition:border-color .12s, background .12s; }
  .tdkcol.dropon{ border-color:var(--accent); border-style:dashed; background:var(--accent-soft); }
  .tdkcol-h{ display:flex; align-items:center; gap:8px; padding:4px 6px 10px; }
  .tdkcol-t{ font-size:16px; font-weight:900; }
  .tdkcol-h .gc{ font-size:13.5px; font-weight:800; color:var(--sub); background:var(--card,#fff); padding:2px 10px; border-radius:999px; }
  .tdkc1 .tdkcol-t{ color:var(--td-blue-text); } .tdkc2 .tdkcol-t{ color:var(--rg-green-text); }
  /* 本番点検の軽い指摘（2026年10月）: 札は44px以上・明るい画面の緑の文字は対比4.5以上 */
  .tdfchip,.tdfdone{ min-height:44px !important; }
  .tdfilt button{ min-height:44px; }
  :root{ --td-green-text:#17652b; } body.dark{ --td-green-text:var(--rg-green-text); }
  /* 本番点検（v568）の軽い指摘・2026年10月 */
  :root{ --td-gray-text:#4a4f57; } body.dark{ --td-gray-text:var(--rg-gray-text); }   /* 小窓（#todo の外）の灰色の札も対比4.5以上に */
  .tddel{ min-height:44px; } body:not(.dark) .tddel{ color:#c0150b; border-color:#c0150b; }   /* 消すボタン: 44px・明るい画面の赤を濃く */
  body:not(.dark) .tdm-kv{ background:linear-gradient(120deg,#0050c8,#4a3fd0 60%,#6a3fd6); }   /* スマホの今日の帯: 白い小さな字の対比4.5以上 */
  @media (max-height:500px) and (max-width:950px){ #todoModal .modal-x,#todoRemindModal .modal-x,#todoReflectModal .tdrx{ width:44px; height:44px; } }   /* 横向きのスマホの ✕ */
  .tdfcnt.ok,.tdkc2 .tdkcol-t,.tdst.s2{ color:var(--td-green-text); }
  .tdkcards{ display:flex; flex-direction:column; gap:8px; min-height:60px; }
  .tdkcard{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:11px 12px; box-shadow:var(--shadow-sm); cursor:grab; display:flex; flex-direction:column; gap:6px; position:relative; overflow:hidden; min-width:0; }
  .tdkcard:hover{ border-color:var(--line2); }
  .tdkcard.dragging{ opacity:.45; }
  .tdkcard.tdkdirty{ background:var(--td-dirty); border:2px solid var(--td-dirty-line); }
  .tdk-top .tdunsv{ margin-left:0; }
  .tdkcard.over::before,.tdkcard.today::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--red); }
  .tdkcard.today::before{ background:#ff9500; }
  .tdkcard.done .tdttl{ text-decoration:line-through; color:var(--sub); }
  .tdk-top{ display:flex; align-items:center; gap:6px; }
  .tdk-no{ font-size:13px; font-weight:800; color:var(--sub); margin-right:auto; }
  .tdkcard .tdttl{ font-size:15px; }
  .tdk-who{ font-size:13.5px; }
  .tdk-who .tdav{ width:26px; height:26px; font-size:12.5px; }
  .tdk-bot{ display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
  .tdk-due{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; min-width:0; }
  .tdkcard .tdst{ min-width:0; }
  .tdkempty{ text-align:center; color:var(--sub); font-size:14px; padding:16px 6px; line-height:1.7; border:2px dashed var(--line); border-radius:12px; }
  .tdkempty span{ font-size:12.5px; }
  .tdkmore{ width:100%; margin-top:8px; min-height:44px; border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:12px; font-size:14px; font-weight:800; cursor:pointer; font-family:inherit; }
  .tdempty{ text-align:center; color:var(--sub); font-size:14.5px; padding:30px 10px; line-height:1.8; }
  #todoModal .mbox{ width:560px; }
  .tdreq,.tdreqnote{ display:none; }
  #todoModal.newmode .tdreq{ display:inline-block; margin-left:6px; font-size:12px; font-weight:800; color:#fff; background:#c4170d; border-radius:6px; padding:0 6px; line-height:1.6; vertical-align:1px; }
  #todoModal.newmode .tdreqnote{ display:inline; margin-left:4px; color:var(--rg-red-text); }
  #todoModal .tdbad{ border-color:var(--red)!important; box-shadow:0 0 0 2px var(--rg-red-soft); }
  .tdrow2{ display:flex; gap:10px; }
  .tdrow2 > .rgfield{ flex:1 1 0; min-width:0; }
  .tddel{ border:1.5px solid var(--red); background:transparent; color:var(--red); border-radius:12px; padding:11px 14px; font-size:14px; font-weight:800; cursor:pointer; font-family:inherit; margin-top:6px; }
  @container todo (max-width:1060px){
    .tdcolh,.tdrow{ grid-template-columns:40px minmax(0,1fr) 140px 96px 132px 64px 144px; gap:10px; }
    .tdkv-r{ flex:1 1 100%; }
  }
  @container todo (max-width:860px){
    .tdkan{ grid-template-columns:minmax(0,1fr); }
    .tdcolh{ display:none; }
    .tdrow{ grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"no pri" "ttl ttl" "who who" "exp exp" "due st"; gap:8px; padding:14px 16px 14px 18px; }
    .tdrow .c-exp{ grid-area:exp; min-height:0; padding:0; margin:-4px 0 0; font-size:13.5px; color:var(--sub); } .tdrow .c-exp.empty{ display:none; } .tdrow .c-exp .tdexl{ display:inline; }
    .tdrow .c-no{ grid-area:no; } .tdrow .c-no:not(:empty)::before{ content:"＃"; } .tdrow .c-pri{ grid-area:pri; } .tdrow .c-ttl{ grid-area:ttl; } .tdrow .c-who{ grid-area:who; }
    .tdrow .c-due{ grid-area:due; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-start; } .tdrow .c-st{ grid-area:st; align-self:end; }
    .tdrow .c-pri .tdpri.none{ display:none; }
    .tdrow{ cursor:pointer; } .tdpen,.tdadd{ display:none; } .tdrow .c-who,.tdrow .c-due,.tdrow .c-pri{ min-height:0; padding:0; margin:0; }   /* スマホのカードは今どおり押すと小窓 */
    .tdkpis{ grid-template-columns:repeat(2,minmax(0,1fr)); margin:-50px 12px 16px; }
  }
  @media(max-width:760px){
    #todo{ padding:14px 12px 96px; }
    .tdkv{ border-radius:20px; padding:20px 18px 70px; }
    .tdkv h2{ font-size:24px; }
    .tdkv-msg{ font-size:16px; }
    .tdkv-acts .rgnew,.tdkv-acts .rctab{ width:100%; }
    .tdkv-in{ gap:16px; }
    .tdring{ width:104px; height:104px; } .tdring .lab b{ font-size:24px; }
    .tdkv-r{ gap:16px; } .tdbars{ min-width:0; flex:1 1 0; }
    .tdkpis{ gap:10px; margin:-52px 8px 14px; }
    .tdkpi{ padding:12px 12px 10px 16px; min-height:96px; }
    .tdkpi .kn{ font-size:28px; }
    .tdwho{ flex:1 1 auto; }
    .tdtools select{ flex:1 1 40%; min-width:0; font-size:16px; min-height:46px; }
    .tdtools input{ flex:1 1 100%; font-size:16px; min-height:46px; }
    .tdsort{ flex:1 1 100%; }
    .tdsort .rctab{ flex:1; }
    .rctab{ min-height:44px; }   /* スマホでは押しやすい高さに（ToDo管理表の🔑見られる人・立替清算のタブなど共通・2026年10月） */
    .tdst{ min-height:46px; font-size:15px; }
    .tdttl{ font-size:16.5px; }
    .tdmode{ flex:1 1 100%; } .tdmode .rctab{ flex:1; }
    #todoModal .modal-x{ width:44px; height:44px; }
    .tdrow2{ flex-direction:column; gap:0; }
    .tdrow2.keep{ flex-direction:row; gap:8px; }
    .tdcl{ grid-template-columns:minmax(0,1fr); gap:2px; } .tdcl .k{ margin-top:6px; }
    #todoModal .rgfield input, #todoModal .rgfield select, #todoModal .rgfield textarea{ font-size:16px; }
  }
  :root{ --rg-red-soft:#ffe7e5; --rg-red-text:#d62b20; --rg-green-soft:#e6f9ec; --rg-green-text:#1f8a3d; --rg-orange-soft:#fff2e0; --rg-orange-text:#b3650a; --rg-gray-soft:#eceef2; --rg-gray-text:#6b7080; }
  body.dark{ --rg-red-soft:#3a1f1e; --rg-red-text:#ff8a82; --rg-green-soft:#1b3324; --rg-green-text:#63d884; --rg-orange-soft:#3a2b17; --rg-orange-text:#ffb54d; --rg-gray-soft:#2a2e36; --rg-gray-text:#aeb4c0; }
  .rghead{ display:flex; gap:12px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; margin-bottom:14px; }
  .rghead h2{ font-size:19px; font-weight:800; margin:0 0 4px; }
  .rgsub{ font-size:12.5px; color:var(--sub); line-height:1.7; }
  .rgheadacts{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
  .rgnew{ border:none; background:var(--accent); color:#fff; padding:12px 20px; border-radius:14px; font-size:15px; font-weight:800; cursor:pointer; box-shadow:0 4px 14px rgba(0,122,255,.28); font-family:inherit; white-space:nowrap; }
  .rgnew:hover{ filter:brightness(1.05); }
  .rgmine{ background:var(--rg-red-soft); color:var(--rg-red-text); border-radius:12px; padding:10px 14px; font-size:13.5px; font-weight:700; margin-bottom:12px; cursor:pointer; }
  .rgbudget{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:13px 16px; margin-bottom:14px; box-shadow:var(--shadow-sm); }
  .rgbt{ display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; font-size:12.5px; color:var(--sub); font-weight:700; margin-bottom:8px; }
  .rgbt b{ color:var(--text); font-size:14px; }
  .rgbudget.over .rgbt b.rgtot{ color:var(--rg-red-text); }
  .rgoverlbl{ color:var(--rg-red-text) !important; font-size:12px !important; margin-left:6px; }
  .rgbar{ background:var(--hover); border-radius:999px; height:14px; overflow:hidden; }
  .rgbar i{ display:block; height:100%; border-radius:999px; background:var(--accent); transition:width .3s; }
  .rgbudget.over .rgbar i{ background:var(--red); }
  .rgtools{ display:flex; gap:10px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:14px; }
  .rgsearch{ flex:0 1 260px; min-width:0; border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:999px; padding:8px 14px; font-size:13px; font-family:inherit; }
  .rggrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
  .rgcard{ background:var(--card,#fff); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-sm); padding:15px 16px; display:flex; flex-direction:column; gap:9px; cursor:pointer; min-width:0; }
  .rgcard:hover{ border-color:var(--line2); }
  .rgcard.mine-turn{ border-color:var(--red); box-shadow:0 0 0 2px var(--rg-red-soft); }
  .rgtop{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
  .rgname{ font-size:15px; font-weight:800; line-height:1.4; word-break:break-word; overflow-wrap:anywhere; }
  .rgbadge{ flex:0 0 auto; font-size:11px; font-weight:800; padding:5px 10px; border-radius:999px; white-space:nowrap; }
  .rgbadge.pending{ background:var(--rg-red-soft); color:var(--rg-red-text); }
  .rgbadge.approved{ background:var(--rg-green-soft); color:var(--rg-green-text); }
  .rgbadge.returned{ background:var(--rg-orange-soft); color:var(--rg-orange-text); }
  .rgbadge.purchased{ background:var(--rg-gray-soft); color:var(--rg-gray-text); }
  .rgmeta{ display:flex; flex-wrap:wrap; gap:5px 10px; font-size:12.5px; color:var(--sub); }
  .rgtype{ background:var(--rg-gray-soft); color:var(--sub); padding:2px 8px; border-radius:999px; font-weight:700; }
  .rgamt{ font-size:20px; font-weight:800; font-variant-numeric:tabular-nums; }
  .rgreason{ font-size:13px; color:var(--sub); line-height:1.55; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; word-break:break-word; overflow-wrap:anywhere; }
  .rgretnote{ font-size:12.5px; background:var(--rg-orange-soft); color:var(--rg-orange-text); border-radius:9px; padding:7px 10px; line-height:1.55; word-break:break-word; overflow-wrap:anywhere; }
  .rgwait{ font-size:12px; color:var(--rg-red-text); font-weight:700; }
  .rgfoot{ display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:12px; color:var(--sub); padding-top:8px; border-top:1px dashed var(--line); }
  .rgwho{ display:flex; align-items:center; gap:6px; min-width:0; }
  .rgav{ width:22px; height:22px; border-radius:50%; background:var(--accent-soft); color:var(--accent); font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
  .rgacts{ display:flex; gap:8px; flex-wrap:wrap; }
  .rgbtn{ flex:1 1 auto; border:none; border-radius:10px; padding:10px 8px; font-size:13px; font-weight:800; cursor:pointer; font-family:inherit; }
  .rgbtn.approve{ background:var(--green); color:#fff; }
  .rgbtn.return{ background:transparent; color:var(--rg-orange-text); border:1.5px solid var(--orange); }
  .rgbtn.bought{ background:var(--accent-soft); color:var(--accent); }
  .rgbtn.fix{ background:var(--rg-orange-soft); color:var(--rg-orange-text); }
  .rgempty{ grid-column:1/-1; text-align:center; color:var(--sub); font-size:13px; padding:46px 10px; line-height:1.8; }
  #rgFormModal .mbox, #rgDetailModal .mbox{ width:540px; }
  #rgSettingsModal .mbox{ width:640px; max-width:94vw; }
  .rgfield{ display:flex; flex-direction:column; gap:5px; margin-bottom:13px; }
  .rgfield > label{ font-size:12.5px; font-weight:700; color:var(--sub); }
  .rgfield .hint{ font-size:11.5px; font-weight:400; margin-left:4px; }
  .rgfield input[type=text], .rgfield input[type=url], .rgfield input[type=date], .rgfield textarea{ border:1.5px solid var(--line); border-radius:11px; padding:10px 12px; font-size:14px; font-family:inherit; background:var(--card,#fff); color:var(--text); width:100%; box-sizing:border-box; }
  .rgfield textarea{ resize:vertical; min-height:64px; }
  .rgchips{ display:flex; gap:8px; flex-wrap:wrap; }
  .rgchip{ border:1.5px solid var(--line); background:var(--card,#fff); color:var(--sub); padding:8px 15px; border-radius:999px; font-size:13px; font-weight:700; cursor:pointer; font-family:inherit; }
  .rgchip.sel{ background:var(--accent); border-color:var(--accent); color:#fff; }
  .rgamount{ display:flex; align-items:center; border:1.5px solid var(--line); border-radius:11px; background:var(--card,#fff); padding:0 12px; }
  .rgamount span{ color:var(--sub); font-weight:700; }
  .rgamount input{ border:none !important; background:transparent !important; padding:10px 6px; font-size:18px; font-weight:800; font-variant-numeric:tabular-nums; width:100%; color:var(--text); font-family:inherit; outline:none; }
  .rgapprover{ font-size:13px; background:var(--accent-soft); color:var(--text); border-radius:10px; padding:9px 12px; margin-bottom:12px; }
  .rgapprover.none{ background:var(--rg-red-soft); color:var(--rg-red-text); }
  .rgattachbox{ display:block; border:1.5px dashed var(--line2); border-radius:11px; padding:13px; text-align:center; color:var(--sub); font-size:12.5px; cursor:pointer; }
  .rgattachbox:hover{ border-color:var(--accent); color:var(--accent); }
  .rgatt{ display:flex; align-items:center; gap:8px; background:var(--rg-gray-soft); border-radius:9px; padding:7px 10px; font-size:12.5px; margin-top:6px; }
  .rgatt .nm{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .rgatt button{ border:none; background:transparent; color:var(--sub); cursor:pointer; font-size:14px; }
  /* 稟議ダイアログの見出し: 色付きの帯にしてスクロールしても上に固定 */
  .rgmhead{ display:flex; align-items:center; gap:10px; margin:-22px -22px 14px; padding:14px 22px; position:sticky; top:-22px; z-index:3; background:var(--accent); color:#fff; border-radius:20px 20px 0 0; box-shadow:0 2px 8px rgba(0,0,0,.12); }
  .rgmhead h3{ margin:0 !important; flex:1; min-width:0; word-break:break-word; color:#fff; }
  .rgmhead .modal-x{ background:rgba(255,255,255,.22); color:#fff; }
  .rgmhead .modal-x:hover{ background:rgba(255,255,255,.35); }
  @media (max-width:900px){ .rgmhead{ border-radius:22px 22px 0 0; } }
  .rgsum{ border:1px solid var(--line); border-radius:13px; padding:12px 14px; display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
  .rgrow{ display:flex; justify-content:space-between; gap:12px; font-size:13px; }
  .rgrow .k{ color:var(--sub); flex:0 0 auto; }
  .rgrow .v{ font-weight:700; text-align:right; min-width:0; word-break:break-word; overflow-wrap:anywhere; }
  .rgrow .v a{ color:var(--accent); }
  .rgrow.col{ flex-direction:column; gap:3px; }
  .rgrow.col .v{ text-align:left; font-weight:500; white-space:pre-wrap; }
  .rgfile{ border:1px solid var(--line); background:var(--card,#fff); color:var(--accent); border-radius:8px; padding:4px 9px; font-size:12px; cursor:pointer; margin:2px 0 2px 6px; font-family:inherit; }
  .rgtl{ display:flex; flex-direction:column; }
  .rgtli{ display:flex; gap:11px; }
  .rgtlc{ display:flex; flex-direction:column; align-items:center; flex:0 0 auto; }
  .rgtld{ width:12px; height:12px; border-radius:50%; background:var(--accent); margin-top:4px; }
  .rgtli.approve .rgtld{ background:var(--green); } .rgtli.return .rgtld{ background:var(--orange); } .rgtli.purchase .rgtld{ background:var(--rg-gray-text); }
  .rgtli.future .rgtld{ background:var(--line); }
  .rgtll{ width:2px; flex:1; background:var(--line); min-height:20px; }
  .rgtli:last-child .rgtll{ display:none; }
  .rgtlb{ padding-bottom:14px; min-width:0; }
  .rgtlt{ font-size:13.5px; font-weight:800; }
  .rgtli.future .rgtlt{ color:var(--sub); font-weight:600; }
  .rgtlm{ font-size:11.5px; color:var(--sub); margin-top:1px; }
  .rgtln{ font-size:12.5px; background:var(--rg-gray-soft); border-radius:8px; padding:7px 10px; margin-top:5px; word-break:break-word; overflow-wrap:anywhere; }
  .rgsetsec{ border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:12px; }
  .rgsett{ font-size:13.5px; font-weight:800; margin-bottom:4px; }
  .rgsetnote{ font-size:11.5px; color:var(--sub); line-height:1.6; margin-bottom:8px; }
  .rgmaprow{ display:flex; align-items:center; gap:6px; margin-bottom:6px; flex-wrap:wrap; }
  .rgmaprow select{ flex:1 1 160px; min-width:0; padding:7px 8px; border:1px solid var(--line); border-radius:8px; background:var(--card,#fff); color:var(--text); font-size:13px; font-family:inherit; }
  .rgmaprow .arr{ color:var(--sub); font-size:12px; white-space:nowrap; }
  .rgkindrow input{ padding:7px 8px; border:1px solid var(--line); border-radius:8px; background:var(--card,#fff); color:var(--text); font-size:13px; font-family:inherit; }
  .rgkindrow input.ico{ flex:0 0 52px; width:52px; text-align:center; }
  .rgkindrow input.nm{ flex:1 1 160px; min-width:0; }
  @media(max-width:760px){
    #ringi{ padding:14px 12px; }
    .rggrid{ grid-template-columns:1fr; }
    .rgnew{ width:100%; }
    .rgheadacts{ width:100%; }
    .rgsearch{ flex:1 1 100%; font-size:16px; }
    .rgfield input[type=text], .rgfield input[type=url], .rgfield input[type=date], .rgfield textarea{ font-size:16px; }
    .rgmaprow .arr{ flex:0 0 100%; }
  }
  .rccard{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-bottom:12px; box-shadow:var(--shadow-sm); display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; }
  .rcthumb{ width:110px; height:142px; flex:0 0 auto; border:1px solid var(--line); border-radius:10px; background:var(--hover); overflow:hidden; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:11px; color:var(--sub); text-align:center; }
  .rcthumb img{ width:100%; height:100%; object-fit:cover; display:block; }
  .rcbody{ flex:1; min-width:240px; }
  .rcfields{ display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:8px 10px; }
  .rcfields label{ display:block; font-size:11px; color:var(--sub); font-weight:700; margin-bottom:3px; }
  .rcfields input, .rcfields select{ width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:8px; padding:7px 9px; font-size:13px; background:var(--card,#fff); color:var(--text); }
  .rcacts{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .rcbtn{ border:none; border-radius:10px; padding:9px 14px; font-size:13px; font-weight:700; cursor:pointer; background:var(--hover); color:var(--text); }
  .rcbtn.mini{ padding:5px 10px; font-size:12px; border-radius:8px; }
  .rckpi{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
  .rckpibox{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:13px 18px; min-width:168px; box-shadow:var(--shadow-sm); }
  .rckpibox .k{ font-size:11.5px; color:var(--sub); font-weight:700; }
  .rckpibox .n{ font-size:20px; font-weight:800; margin-top:4px; }
  .rckpibox .s{ font-size:11.5px; color:var(--sub); margin-top:2px; }
  .rcpill{ display:inline-block; border-radius:999px; padding:3px 10px; font-size:11.5px; font-weight:700; white-space:nowrap; }
  .rcsec{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:16px 18px; margin-bottom:16px; box-shadow:var(--shadow-sm); }
  .rcsec h3{ font-size:14.5px; font-weight:800; margin-bottom:10px; }
  @media(max-width:900px){
    #receipt{ padding:14px 12px; }
    .rcfields input, .rcfields select{ font-size:16px; }
    .rcthumb{ width:84px; height:108px; }
    #receipt .atbl{ min-width:820px; }
  }
  .setrow{ display:flex; align-items:center; gap:10px; font-size:14px; padding:5px 0; flex-wrap:wrap; }
  .setrow label.cb{ display:flex; align-items:center; gap:6px; }
  .adminsec{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:16px 18px; margin-bottom:16px; max-width:880px; box-shadow:var(--shadow-sm); }
  .adminsec h3{ font-size:15px; font-weight:800; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
  .tblwrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .atbl{ width:100%; border-collapse:collapse; font-size:13px; }
  .cev .cev-t{ font-weight:700; opacity:.92; white-space:nowrap; }
  .atbl th{ text-align:left; color:var(--sub); font-weight:600; font-size:12px; padding:6px 8px; border-bottom:.5px solid var(--line); white-space:nowrap; }
  .atbl td{ padding:7px 8px; border-bottom:.5px solid var(--line); vertical-align:middle; white-space:nowrap; }
  .atbl button{ border:none; background:var(--hover); color:var(--text); border-radius:8px; padding:4px 10px; font-size:12px; margin-right:4px; }
  .atbl .badge{ font-size:11px; padding:2px 8px; border-radius:999px; }
  .badge.ad{ background:#fff3cd; color:#9a7b00; } .badge.off{ background:#ffe5e3; color:var(--red); }
  .badge.prot{ background:#e7eef9; color:#3a5a8c; margin-left:5px; }
  .badge.dmy{ background:#f5efff; color:#7c3aed; margin-left:5px; }   /* ダミーユーザー(検証用) */
  /* 改善要望ダイアログ(書きやすいよう横広め) */
  #fbModal .mbox{ width:600px; max-width:94vw; max-height:92vh; overflow:auto; }
  .fbbody-lg{ width:100%; box-sizing:border-box; min-height:190px; font-size:15px; line-height:1.75; resize:vertical; display:block; }
  /* 添付(送信フォーム側) */
  .fbattbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:4px; }
  .fbattbtn{ border:1px dashed var(--border); background:var(--hover); color:var(--text); border-radius:10px; padding:9px 14px; font-size:13.5px; font-weight:700; cursor:pointer; }
  .fbattbtn:hover{ border-color:var(--accent); color:var(--accent); }
  .fbhint2{ font-size:12px; color:var(--sub); }
  .fbfilelist{ display:flex; flex-direction:column; gap:6px; margin-top:8px; }
  .fbfile{ display:flex; align-items:center; gap:8px; background:var(--hover); border-radius:9px; padding:7px 10px; font-size:13px; }
  .fbfile .fbfn{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .fbfile .fbfs{ color:var(--sub); font-size:11.5px; flex:0 0 auto; }
  .fbfile .fbfx{ border:none; background:#ffe5e3; color:var(--red); width:24px; height:24px; border-radius:50%; font-size:15px; line-height:1; cursor:pointer; flex:0 0 auto; padding:0; }
  .fbcz{ font-size:11px; color:#1a8f45; background:#e3f5e9; border-radius:6px; padding:1px 7px; flex:0 0 auto; }
  .fbcz.on{ color:#b8860b; background:#fff3d6; }
  .fbfile{ flex-wrap:wrap; }
  .fbprogwrap{ flex:0 0 100%; display:flex; align-items:center; gap:8px; margin-top:6px; }
  .fbprog{ flex:1; height:8px; background:var(--line); border-radius:999px; overflow:hidden; }
  .fbprog-fill{ height:100%; background:var(--accent); border-radius:999px; width:0%; transition:width .18s ease; }
  .fbprog.indet .fbprog-fill{ width:38%; animation:fbindet 1.1s ease-in-out infinite; }
  @keyframes fbindet{ 0%{margin-left:-38%} 100%{margin-left:100%} }
  .fbpct{ flex:0 0 auto; min-width:40px; text-align:right; font-size:13px; font-weight:800; color:var(--accent); font-variant-numeric:tabular-nums; }
  /* 添付(管理側の表示) */
  .fbattc{ font-size:11.5px; color:var(--sub); background:var(--hover); border-radius:999px; padding:1px 8px; font-weight:700; }
  .fbfeat{ font-size:11.5px; color:#3a5a8c; background:#e7eef9; border-radius:999px; padding:1px 9px; font-weight:700; }
  /* 改善要望カード: 対象(どのアプリ・機能への要望か)をカード冒頭に文章で明示 */
  .fbtgt{ display:inline-block; margin-top:8px; font-size:13px; font-weight:700; line-height:1.5; color:#3a5a8c; background:#e7eef9; border-radius:9px; padding:5px 11px; max-width:100%; }
  .fbtgt b{ font-weight:800; }
  .fbtgt.other{ color:#c2417a; background:#fdeef5; }
  .fbtgt.none{ color:var(--sub); background:var(--hover,rgba(0,0,0,.05)); }
  .fbtgt-x{ font-weight:500; font-size:11px; opacity:.8; }
  .fbno{ font-size:12px; color:#fff; background:var(--accent); border-radius:7px; padding:1px 8px; font-weight:800; font-variant-numeric:tabular-nums; }
  .fbmedia{ display:flex; flex-wrap:wrap; gap:10px; margin:8px 0 2px; }
  .fbatt.img img{ max-width:160px; max-height:160px; border-radius:8px; border:1px solid var(--line); display:block; object-fit:cover; }
  .fbatt.vid{ max-width:280px; max-height:200px; border-radius:8px; background:#000; }
  .fbatt.aud{ display:flex; flex-direction:column; gap:4px; background:var(--hover); border-radius:8px; padding:8px 10px; }
  .fbatt.aud .fbaudname{ font-size:12px; color:var(--sub); }
  .fbatt.file, .fbatt.none{ display:inline-flex; align-items:center; gap:5px; background:var(--hover); border-radius:8px; padding:8px 11px; font-size:13px; color:var(--text); text-decoration:none; }
  .fbatt.none{ color:var(--sub); }
  /* みんなの声(改善要望・不具合) */
  /* 全体状況のキービジュアル＝濃紺の「ダッシュボード」(個別カードと明確に区別) */
  .fbkv{ background:linear-gradient(135deg,#1b3a5b,#0e2036); color:#eaf2fb; border:none; border-radius:14px; padding:16px 18px; margin-bottom:12px; box-shadow:0 6px 18px rgba(14,32,54,.25); }
  .fbkv-head{ display:flex; align-items:baseline; gap:10px; margin-bottom:10px; }
  .fbkv-title{ font-size:15px; font-weight:800; color:#fff; letter-spacing:.02em; }
  .fbkv-sub{ font-size:12px; color:#a9c2dc; }
  .fbkv-pct{ margin-left:auto; font-size:24px; font-weight:800; color:#4ade80; font-variant-numeric:tabular-nums; }
  .fbkv-bar{ height:9px; background:rgba(255,255,255,.16); border-radius:999px; overflow:hidden; margin-bottom:14px; }
  .fbkv-fill{ height:100%; background:linear-gradient(90deg,#22c55e,#4ade80); border-radius:999px; transition:width .3s ease; }
  .fbkv-steps{ display:flex; align-items:flex-start; gap:0; flex-wrap:wrap; }
  .fbms{ display:flex; flex-direction:column; align-items:center; gap:3px; min-width:56px; }
  .fbms-dot{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; background:rgba(255,255,255,.08); border:2px solid rgba(255,255,255,.22); }
  .fbms-dot.has{ box-shadow:0 2px 10px rgba(0,0,0,.3); }
  .fbms-num{ font-size:16px; font-weight:800; color:#fff; }
  .fbms-lbl{ font-size:11px; color:#a9c2dc; }
  .fbms-line{ flex:1; min-width:16px; height:2px; background:rgba(255,255,255,.22); margin-top:19px; }
  /* カード内の進捗ステッパー＝明るいカード上・段階ごとの色(全体状況とは別物と分かるように) */
  .fbsteptitle{ font-size:11.5px; color:var(--sub); font-weight:700; margin:12px 0 5px; }
  .fbsteplane{ display:flex; align-items:center; gap:0; flex-wrap:wrap; background:var(--hover); border-radius:11px; padding:8px 10px; }
  .fbsteplane.declined{ opacity:.5; }
  .fbstep{ display:flex; flex-direction:column; align-items:center; gap:2px; border:none; background:transparent; cursor:pointer; padding:2px 4px; border-radius:9px; color:var(--sub); }
  .fbstep .fbstep-ic{ width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:15px; background:var(--card,#fff); border:2px solid var(--line); color:var(--sub); transition:transform .12s; }
  .fbstep .fbstep-lb{ font-size:10.5px; font-weight:700; }
  .fbstep:hover .fbstep-ic{ transform:scale(1.1); }
  .fbsteplane.ro .fbstep{ cursor:default; }
  .fbsteplane.ro .fbstep:hover .fbstep-ic{ transform:none; }
  .fbstep-cn{ flex:1; min-width:14px; height:3px; background:var(--line); border-radius:2px; margin-top:-12px; }
  .fbcard.is-declined{ opacity:.72; }
  .fbcard.is-done{ border-color:#bfe6cd; }
  /* 完了した依頼への依頼者評価(いいね！/もう一息！/Bad！) */
  .fbreact{ margin-top:10px; padding:10px 12px; background:var(--bg,#f6f7f9); border:1px solid var(--line); border-radius:10px; }
  .fbreact.ro{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .fbreact-q{ font-size:12.5px; color:var(--sub); margin-bottom:8px; font-weight:600; }
  .fbreact-btns{ display:flex; gap:8px; flex-wrap:wrap; }
  .fbreact-btn{ display:flex; flex-direction:column; align-items:center; gap:1px; min-width:104px; padding:7px 14px; border-radius:10px; border:1.5px solid; background:var(--card,#fff); font-size:13.5px; font-weight:700; cursor:pointer; transition:transform .08s; }
  .fbreact-btn:hover{ transform:translateY(-1px); }
  .fbreact-btn .fbreact-t{ display:flex; align-items:center; gap:5px; }
  .fbreact-btn .fbreact-n{ font-size:11px; font-weight:800; border-radius:999px; padding:0 7px; line-height:16px; }
  .fbreact-btn .fbreact-d{ font-size:10.5px; font-weight:500; color:var(--sub); }
  .fbreact-badge{ font-size:12.5px; font-weight:700; border-radius:999px; padding:3px 12px; }
  .mini.declon{ background:#f0ede5; color:#8a7a4a; }
  /* 受付/完了/見送りトレイのタブ */
  .fbtrays{ display:flex; gap:8px; margin:2px 0 10px; flex-wrap:wrap; }
  .fbtray{ display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); background:var(--card,#fff); color:var(--sub); border-radius:12px; padding:9px 15px; font-size:14px; font-weight:800; cursor:pointer; transition:all .12s; }
  .fbtray:hover{ background:var(--hover); }
  .fbtray .fbtray-n{ background:var(--hover); border-radius:999px; padding:1px 9px; font-size:12.5px; font-weight:800; }
  .fbtray.on{ color:#fff; border-color:transparent; }
  .fbtray.on .fbtray-n{ background:rgba(255,255,255,.28); }
  .fbtray.in.on{ background:var(--accent); }
  .fbtray.done.on{ background:#1a8f45; }
  .fbtray.skip.on{ background:#8a8a8a; }
  .fbtraynote{ font-size:12px; color:var(--sub); background:var(--accent-soft); border-radius:9px; padding:7px 11px; margin-bottom:10px; }
  .fblist{ display:flex; flex-direction:column; gap:10px; }
  .fbcard{ border:1px solid var(--line); border-radius:12px; padding:11px 13px; background:var(--card,#fff); }
  .fbcard.is-other{ background:#fff0f5; border-color:#f3c3d5; }   /* 区分=グループウェア以外は薄ピンクで識別 */
  /* 投稿から3日間の新着強調 */
  .fbcard.is-new{ border-color:#ff9500; box-shadow:0 0 0 1.5px rgba(255,149,0,.35); }
  .fbnew{ background:#ff3b30; color:#fff; font-size:10.5px; font-weight:800; border-radius:999px; padding:2px 9px; letter-spacing:.06em; animation:fbnewblink 2.2s ease-in-out infinite; }
  @keyframes fbnewblink{ 0%,100%{ opacity:1; } 50%{ opacity:.55; } }
  /* 明細ごとのコメント */
  .fbcmts{ margin-top:10px; border-top:1px dashed var(--line); padding-top:8px; }
  .fbcmt{ background:var(--hover); border-radius:8px; padding:6px 9px; margin-bottom:5px; font-size:13px; }
  .fbcmt .m{ display:flex; align-items:center; gap:7px; font-size:11px; color:var(--sub); }
  .fbcmt .m b{ color:var(--text); font-size:12px; }
  .fbcmt .b{ margin-top:2px; white-space:pre-wrap; word-break:break-word; color:var(--text); }
  .fbcmt-x{ margin-left:auto; border:none; background:none; color:#c7c7cc; cursor:pointer; font-size:13px; }
  .fbcmt-add{ display:flex; gap:6px; margin-top:4px; }
  .fbcmt-add input{ flex:1; border:1px solid var(--line); border-radius:8px; padding:8px 11px; font-size:13px; background:var(--card,#fff); color:var(--text); min-width:0; }
  .fbcmt-add button{ border:none; background:var(--accent); color:#fff; border-radius:8px; padding:8px 16px; font-size:13px; font-weight:700; cursor:pointer; flex:0 0 auto; }
  .fbhd{ display:flex; align-items:center; gap:8px; margin-bottom:6px; flex-wrap:wrap; }
  .fbkind{ font-weight:700; font-size:13px; }
  .fbcard .badge{ font-size:11px; padding:2px 9px; border-radius:999px; font-weight:700; }
  .fbbody{ font-size:14px; line-height:1.7; white-space:pre-wrap; word-break:break-word; color:var(--text); }
  .fbmeta{ font-size:11px; color:var(--sub); margin-top:5px; }
  .fbact{ display:flex; align-items:center; gap:6px; margin-top:9px; flex-wrap:wrap; }
  .fbact select{ padding:5px 9px; border:.5px solid var(--line); border-radius:8px; font-size:12px; background:var(--card,#fff); color:var(--text); }
  .fbact .mini{ border:none; background:var(--hover); color:var(--text); border-radius:8px; padding:5px 11px; font-size:12px; font-weight:600; cursor:pointer; }
  .fbact .mini.del{ background:#ffe5e3; color:var(--red); }
  .arow-link{ display:flex; align-items:center; gap:8px; margin-bottom:6px; }
  .arow-link input{ flex:1; min-width:0; padding:6px 9px; border:.5px solid var(--line); border-radius:8px; font-size:13px; }
  .arow-link .linfo{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
  .arow-link button{ flex:0 0 auto; }
  .arow-link.ldrag{ cursor:grab; }
  .arow-link.ldrag .lgrip{ color:var(--sub); cursor:grab; flex:0 0 auto; font-size:15px; user-select:none; }
  .arow-link.dragover{ box-shadow:inset 0 3px 0 var(--accent); }
  .me-row{ display:flex; align-items:center; gap:8px; padding:6px 8px; margin-bottom:5px; background:var(--bg); border:.5px solid var(--line); border-radius:9px; }
  .me-row:hover{ background:var(--hover); }
  .me-handle{ cursor:grab; color:var(--sub); font-size:15px; user-select:none; }
  .me-row input{ padding:5px 8px; border:.5px solid var(--line); border-radius:7px; font-size:13px; }
  .me-row .me-label{ flex:1; }
  .me-row .me-icon{ width:44px; text-align:center; }
  .me-tag{ font-size:10px; color:var(--sub); background:var(--hover); border-radius:999px; padding:2px 8px; }
  .me-del{ border:none; background:#ffe5e3; color:var(--red); border-radius:7px; padding:4px 10px; font-size:12px; }
  .mailitem{ background:var(--card,#fff); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px; box-shadow:var(--shadow-sm); }
  .mailitem.unhandled{ border-left:3px solid #e5484d; }
  .mailitem .mhd{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .mailitem .mfrom{ font-weight:700; font-size:14px; }
  .mailitem .msub{ font-size:14px; flex:1; min-width:120px; }
  .mailitem .mdate{ font-size:11px; color:var(--sub); }
  .mailitem .mprev{ font-size:13px; color:var(--sub); margin-top:4px; line-height:1.6; max-height:3.2em; overflow:hidden; }
  .mailitem.open .mprev{ max-height:none; white-space:pre-wrap; }
  .mailitem .mact{ display:flex; gap:8px; margin-top:8px; align-items:center; flex-wrap:wrap; }
  .mstatus{ display:inline-flex; border-radius:999px; overflow:hidden; border:.5px solid var(--line); }
  .mstatus button{ border:none; background:transparent; font-size:12px; padding:4px 12px; color:var(--sub); }
  .mstatus button.on{ background:var(--accent); color:#fff; font-weight:700; }
  .mail-stat-未対応{ color:#e5484d; } .mail-stat-対応済{ color:#34c759; }
  .calhd{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
  /* 前後移動は「どこにあるか分からない」と言われた最重要操作。文字ラベル付きの大きなボタンにし、
     期間タイトルを左右から挟む配置（前←[期間]→次）で、押すと何が起きるかを空間的に分かるようにする */
  .calhd .calnavgrp{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  /* 1段目=期間の移動と＋予定、2段目=表示の切替と設定。前後ボタンが常に最上段に来るようにする */
  .calhd .calrow1{ width:100%; }
  .calhd .calnav{
    display:inline-flex; align-items:center; gap:7px; height:44px; padding:0 16px;
    border:2px solid var(--accent); background:var(--card,#fff); color:var(--accent);
    border-radius:12px; font-size:14px; font-weight:800; cursor:pointer; white-space:nowrap;
    transition:background .12s, color .12s, transform .08s;
  }
  .calhd .calnav .ar{ font-size:21px; line-height:1; font-weight:900; }
  .calhd .calnav:hover{ background:var(--accent); color:#fff; }
  .calhd .calnav:focus:not(:focus-visible){ background:var(--card,#fff); color:var(--accent); }
  .calhd .calnav:active{ transform:scale(.96); }
  .calhd .calnav:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
  .calhd .caltoday{
    height:44px; padding:0 16px; border:2px solid var(--line2); background:var(--card,#fff); color:var(--text);
    border-radius:12px; font-size:14px; font-weight:800; cursor:pointer; white-space:nowrap;
  }
  .calhd .caltoday:hover{ border-color:var(--accent); color:var(--accent); }
  .calhd .calttl{ font-size:22px; font-weight:800; margin:0 4px; color:#27384f; white-space:nowrap; }
  body.dark .calhd .calttl{ color:var(--text); }
  .calhd h2{ font-size:19px; font-weight:800; min-width:150px; }
  .calgrid{ display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-sm); }
  .calweekhd{ display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:var(--line); position:sticky; top:var(--calhd-h,52px); z-index:4; }
  .calweek{ display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:var(--line); position:relative; }
  .cspan{ position:absolute; z-index:3; display:flex; align-items:center; font-size:calc(11px*var(--cfs,1)); font-weight:600; padding:0 6px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; cursor:pointer; }
  .cevband{ pointer-events:none; }
  .gbadge{ display:inline-block; background:#fff; color:#4285f4; font-weight:800; font-size:9px; line-height:1.5; border-radius:3px; padding:0 3px; margin-right:3px; vertical-align:middle; box-shadow:0 0 0 1px rgba(0,0,0,.12); }
  .caldow{ background:var(--bg); text-align:center; font-size:calc(12px*var(--cfs,1)); font-weight:700; color:var(--sub); padding:7px 0; }
  .caldow.sun{ color:#e5484d; } .caldow.sat{ color:#0a84ff; }
  .calcell{ background:var(--card,#fff); min-height:var(--cch,124px); padding:6px 7px; cursor:pointer; transition:background .1s; }
  .calzoom{ display:inline-flex; align-items:center; gap:2px; border:.5px solid var(--line); border-radius:9px; overflow:hidden; }
  .calzoom .calzb{ border:none; background:transparent; font-size:15px; width:28px; padding:5px 0; cursor:pointer; }
  .calzoom .calzb:hover{ background:var(--hover); }
  .calzoom b{ font-size:12px; color:var(--sub); min-width:42px; text-align:center; cursor:pointer; }
  .calcell:hover{ background:var(--hover); }
  .calcell.other{ background:#fafafa; color:var(--sub); }
  .calcell .cdnum{ font-size:calc(12px*var(--cfs,1)); font-weight:600; }
  .calcell.today .cdnum{ background:var(--accent); color:#fff; border-radius:50%; width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; }
  .calcell .cdsun{ color:#e5484d; } .calcell .cdsat{ color:#0a84ff; }
  .cev{ font-size:calc(11px*var(--cfs,1)); border-radius:5px; padding:1px 5px; margin-top:3px; color:#fff; line-height:1.3; word-break:break-word; overflow-wrap:anywhere; overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
  .cev.task{ background:#ffece9; color:#c0392b; }
  @media(max-width:760px){ .calcell{ min-height:84px; } .cev{ font-size:calc(9px*var(--cfs,1)); } }
  .calhd{ position:sticky; top:-18px; background:var(--bg); z-index:5; padding-top:4px; }
  .calvsw{ display:inline-flex; border:.5px solid var(--line); border-radius:9px; overflow:hidden; }
  .calvb{ border:none; background:transparent; font-size:13px; padding:6px 12px; color:var(--sub); }
  .calvb.on{ background:var(--accent); color:#fff; font-weight:700; }
  .calgridv{ display:flex; border:1px solid var(--line); border-radius:12px; background:var(--card,#fff); box-shadow:var(--shadow-sm); }
  .calgutter{ width:52px; flex:0 0 auto; }
  .calgutter .ghead{ height:46px; border-bottom:.5px solid var(--line); position:sticky; top:var(--calhd-h,52px); z-index:5; background:var(--card,#fff); }
  .calgutter .gallday{ min-height:26px; border-bottom:.5px solid var(--line); font-size:calc(13px*var(--cfs,1)); font-weight:700; color:var(--text); padding:4px 6px; box-sizing:border-box; display:flex; align-items:center; justify-content:center; text-align:center; }
  .calgutter .ghour{ font-size:calc(11px*var(--cfs,1)); color:var(--sub); text-align:right; padding-right:6px; box-sizing:border-box; }
  .caltz{ flex:1; display:flex; }
  .caltcol{ flex:1 1 0; min-width:96px; border-left:.5px solid var(--line); }
  .caltcol .chead{ height:46px; border-bottom:.5px solid var(--line); text-align:center; font-size:calc(12px*var(--cfs,1)); padding-top:5px; box-sizing:border-box; line-height:1.3; position:sticky; top:var(--calhd-h,52px); z-index:4; background:var(--card,#fff); }
  .caltcol .chead.thead-today{ background:var(--accent-soft); }
  .caltcol .callday{ min-height:26px; border-bottom:.5px solid var(--line); padding:3px; box-sizing:border-box; }
  .caltcol .cbody{ position:relative; cursor:pointer; }
  .adev{ font-size:calc(10px*var(--cfs,1)); color:#fff; border-radius:5px; padding:2px 6px; margin-bottom:2px; cursor:pointer; line-height:1.3; word-break:break-word; overflow-wrap:anywhere; }
  .adev.task{ background:#ffece9; color:#c0392b; }
  .tev{ position:absolute; left:2px; right:3px; border-radius:5px; color:#fff; font-size:calc(11px*var(--cfs,1)); line-height:1.25; padding:1px 4px; overflow:hidden; cursor:pointer; box-shadow:0 1px 2px rgba(0,0,0,.18); box-sizing:border-box; word-break:break-word; overflow-wrap:anywhere; }
  .tev.move{ cursor:grab; }
  .tev.move:active{ cursor:grabbing; }
  .tev .tvt,.tev .tvb{ position:absolute; left:0; right:0; height:7px; cursor:ns-resize; z-index:2; }
  .tev .tvt{ top:0; } .tev .tvb{ bottom:0; }
  .gridsel{ position:absolute; left:2px; right:3px; background:rgba(0,122,255,.18); border:1.5px solid var(--accent); border-radius:5px; pointer-events:none; display:none; z-index:1; }
  /* グループ＝メンバーごとの行(横タイムライン) */
  .calgrp{ border:1px solid var(--line); border-radius:12px; overflow:auto; background:var(--card,#fff); box-shadow:var(--shadow-sm); }
  .calgrprow{ display:flex; border-bottom:.5px solid var(--line); width:max-content; min-width:100%; }
  .calgrprow:last-child{ border-bottom:none; }
  .calgrpname{ width:128px; flex:0 0 auto; border-right:2px solid #8ba6c5; padding:8px 11px; font-size:calc(12.5px*var(--cfs,1)); font-weight:700; color:#27384f; display:flex; align-items:center; justify-content:center; text-align:center; background:linear-gradient(180deg,#eef2f8,#dde6f1); box-sizing:border-box; position:sticky; left:0; z-index:2; box-shadow:2px 0 5px rgba(23,31,56,.07); }
  .calgrptrack{ flex:0 0 auto; position:relative; min-height:82px; cursor:pointer; }
  .calgrprow.headrow{ position:sticky; top:0; z-index:3; }
  .calgrprow.headrow .calgrpname{ font-weight:800; color:#fff; background:linear-gradient(180deg,#8ba6c5,#7490b1); z-index:4; }
  .calgrprow.headrow .calgrptrack{ min-height:24px; cursor:default; background:var(--bg); }
  .calgrptime{ position:absolute; top:4px; font-size:calc(10px*var(--cfs,1)); color:var(--sub); transform:translateX(-50%); }
  .gbar{ position:absolute; top:4px; bottom:4px; border-radius:5px; color:#fff; font-size:calc(11px*var(--cfs,1)); line-height:1.3; padding:2px 6px; overflow:hidden; cursor:pointer; box-shadow:0 1px 2px rgba(0,0,0,.18); box-sizing:border-box; word-break:break-word; overflow-wrap:anywhere; }
  .gbar.allday{ top:4px; bottom:auto; height:18px; }
  .gbar.part{ opacity:.62; border:1.5px dashed rgba(255,255,255,.85); cursor:pointer; }
  .attmk{ display:inline-block; font-size:9px; font-weight:700; background:rgba(255,255,255,.9); color:#333; border-radius:4px; padding:0 4px; margin-right:3px; vertical-align:1px; }
  .attmk.opt{ background:rgba(255,255,255,.6); }
  .evatt{ max-height:120px; overflow-y:auto; }
  .tokenbox{ position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-height:44px; padding:7px 10px; background:#f0f0f3; border-radius:11px; cursor:text; }
  .tokenbox .tokens{ display:contents; }
  .token{ display:inline-flex; align-items:center; gap:5px; background:var(--accent-soft); color:var(--accent-dark); border:1px solid var(--accent); border-radius:999px; padding:3px 6px 3px 11px; font-size:13px; font-weight:600; }
  .token button{ border:none; background:rgba(0,0,0,.08); color:inherit; border-radius:50%; width:17px; height:17px; font-size:13px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .tokeninput{ flex:1; min-width:140px; border:none!important; background:none!important; padding:4px 2px!important; font-size:14px!important; box-shadow:none!important; }
  .tokensug{ display:none; position:absolute; left:0; right:0; top:100%; margin-top:4px; background:var(--card,#fff); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(23,31,56,.18); z-index:10; max-height:230px; overflow-y:auto; }
  .tokopt{ padding:9px 12px; font-size:13.5px; cursor:pointer; }
  .tokopt:hover{ background:var(--accent-soft); }
  .tokopt.none{ color:var(--sub); cursor:default; }
  .nowline{ position:absolute; top:0; bottom:0; width:2px; background:#e5484d; pointer-events:none; z-index:3; box-shadow:0 0 3px rgba(229,72,77,.5); }
  .nowtip{ position:absolute; top:2px; transform:translateX(-50%); background:#e5484d; color:#fff; font-size:10px; font-weight:700; line-height:1.5; padding:0 6px; border-radius:8px; pointer-events:none; z-index:4; white-space:nowrap; }
  /* 週/日表示の現在時刻ライン(横線・時間軸が縦のため) */
  .nowlineh{ position:absolute; left:0; right:0; height:2px; background:#e5484d; pointer-events:none; z-index:4; box-shadow:0 0 3px rgba(229,72,77,.5); }
  .nowlineh:not(.today){ opacity:.45; box-shadow:none; }        /* 今日以外の曜日は控えめの時刻ライン */
  .nowlineh.today::before{ content:''; position:absolute; left:-4px; top:-3px; width:8px; height:8px; border-radius:50%; background:#e5484d; }
  .evpop{ position:fixed; display:none; z-index:200; max-width:300px; background:var(--card,#fff); border:.5px solid var(--line); border-radius:12px; box-shadow:0 10px 34px rgba(0,0,0,.2); padding:11px 13px; font-size:12px; line-height:1.55; pointer-events:none; }
  .evpop .ep-title{ font-weight:800; font-size:13.5px; margin-bottom:6px; word-break:break-word; }
  .evpop .ep-row{ color:var(--text); margin:2px 0; word-break:break-word; }
  .evpop .ep-note{ margin-top:7px; padding-top:7px; border-top:.5px solid var(--line); color:var(--sub); max-height:130px; overflow:hidden; word-break:break-word; }
  .evpop .ep-note a{ color:var(--accent); }
  .gbar.move{ cursor:grab; }
  .gbar.move:active{ cursor:grabbing; }
  .gbar .grl,.gbar .grr{ position:absolute; top:0; bottom:0; width:9px; cursor:ew-resize; z-index:2; }
  .gbar .grl{ left:0; } .gbar .grr{ right:0; }
  .calgrptrack.rowtarget{ box-shadow:inset 0 0 0 2px var(--accent); }
  .calgrpname.grpdrag{ cursor:grab; }
  .calgrpname.grpdrag:active{ cursor:grabbing; }
  .calgrpname.dragover{ box-shadow:inset 0 3px 0 var(--accent); }
  .calgrpname .gnh{ color:var(--sub); margin-right:5px; cursor:grab; }
  .gsel{ display:none; position:absolute; top:3px; bottom:3px; background:rgba(0,122,255,.22); border:1.5px solid var(--accent); border-radius:6px; pointer-events:none; z-index:1; }
  .calgrptrack{ user-select:none; }
  .evmem{ display:flex; flex-wrap:wrap; gap:8px 14px; padding:4px 0; }
  .evmem label{ display:flex; align-items:center; gap:5px; font-size:13px; }
  .findtgl{ background:#1e3a8a; color:#fff; border:1px solid #1e3a8a; border-radius:8px; padding:7px 12px; font-size:13px; font-weight:700; cursor:pointer; }
  .findtgl:hover{ background:#172e6e; border-color:#172e6e; }
  .findsearch{ background:#0f766e; color:#fff; border:0; border-radius:8px; padding:8px 16px; font-size:13px; font-weight:700; cursor:pointer; }
  .findsearch:hover{ background:#0c5f58; }
  .findday{ display:flex; gap:8px; align-items:flex-start; padding:4px 0; border-bottom:1px solid var(--line); }
  .findday-lb{ flex:0 0 76px; font-size:13px; font-weight:700; color:var(--text); padding-top:3px; }
  .findday-slots{ display:flex; flex-wrap:wrap; gap:5px; }
  .findslot{ background:#fff; border:1px solid #0f766e; color:#0f766e; border-radius:6px; padding:3px 9px; font-size:12px; cursor:pointer; }
  .findslot:hover{ background:#0f766e; color:#fff; }
  body.dark .findtgl{ background:#1e3a8a; color:#fff; border-color:#2a4aa0; }
  /* 2026年10月 打合せ可能な日時を探す: 週の時間の表（○全員空き／△一部ふさがり／×全員ふさがり。色だけに頼らず記号と言葉でも出す） */
  #evFindModal .mbox{ width:900px; max-width:96vw; }
  #evFindModal .mbox > .ev-head{ margin:-22px -22px 14px; padding:14px 22px; position:sticky; top:-22px; z-index:5; background:var(--accent); color:#fff; border-radius:20px 20px 0 0; box-shadow:0 2px 8px rgba(0,0,0,.12); }
  body.dark #evFindModal .mbox > .ev-head{ background:var(--accent-dark); }
  #evFindModal .mbox > .modal-x{ display:none; }   /* 見出しに × があるので、本文の上の丸い × は出さない */
  .fm-condbox{ border:1px solid var(--line); border-radius:10px; padding:0 12px; margin-bottom:4px; }
  .fm-condbox > summary{ min-height:44px; display:flex; align-items:center; gap:8px; cursor:pointer; font-size:14px; font-weight:700; color:var(--text); }
  .fm-condbox > summary small{ font-weight:600; color:var(--sub); font-size:13px; }
  .fm-condbox[open] > summary{ border-bottom:1px solid var(--line); margin-bottom:8px; }
  .fm-condbox[open] > summary small{ display:none; }
  .fm-condbox .fm-condin{ padding-bottom:10px; }
  #evFindModal .fm-cond{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px 12px; }
  #evFindModal .fm-cond .mrow{ margin:0; }
  .fm-sec{ font-size:14px; font-weight:800; margin:14px 0 6px; color:var(--text); }
  .fm-cands{ display:flex; flex-wrap:wrap; gap:8px; }
  .fm-cands .findslot{ min-height:44px; padding:0 12px; font-size:14px; font-weight:700; border-radius:8px; }
  .fm-cands .findslot.on{ background:#0f766e; color:#fff; }
  .fm-pick{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:10px 0 0; padding:10px 12px; border:2px solid #1d4ed8; border-radius:10px; background:rgba(29,78,216,.06); font-size:14px; font-weight:700; }
  .fm-pick .ok{ min-height:44px; padding:0 18px; font-size:15px; font-weight:800; border:0; border-radius:8px; background:var(--accent); color:#fff; cursor:pointer; }
  .fm-pick .warn{ color:var(--red); font-weight:700; }
  .fm-nav{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:6px 0; }
  .fm-nav button{ min-height:44px; padding:0 14px; font-size:14px; font-weight:700; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--text); cursor:pointer; }
  .fm-nav button:disabled{ opacity:.4; cursor:default; }
  .fm-nav .wk{ font-size:15px; font-weight:800; flex:1 1 auto; text-align:center; }
  .fm-legend{ display:flex; flex-wrap:wrap; gap:6px 14px; font-size:13px; color:var(--sub); margin:4px 0 6px; }
  .fm-legend b{ display:inline-block; min-width:22px; text-align:center; border-radius:4px; margin-right:4px; padding:0 3px; }
  .fm-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:8px; }
  .fm-grid{ border-collapse:collapse; width:100%; table-layout:fixed; font-size:13px; user-select:none; -webkit-user-select:none; }
  .fm-grid th,.fm-grid td{ border:1px solid var(--line); height:36px; padding:0 3px; text-align:center; }
  .fm-grid th{ background:var(--bg); font-size:12.5px; font-weight:700; line-height:1.25; }
  .fm-grid th.tm{ width:56px; }
  .fm-grid td.tm{ font-size:12px; color:var(--sub); background:var(--card); }
  .fm-grid td.fc{ cursor:pointer; font-weight:700; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .fm-grid td.fc small{ font-weight:600; margin-left:3px; font-size:11.5px; }
  .fm-grid td.fc.f{ background:#dcfce7; color:#166534; }
  .fm-grid td.fc.p{ background:#fef3c7; color:#92400e; }
  .fm-grid td.fc.x{ background:#e5e7eb; color:#6b7280; }
  .fm-grid td.fc:hover{ outline:2px solid var(--accent); outline-offset:-2px; }
  .fm-grid td.fc.sel{ box-shadow:inset 0 0 0 3px #1d4ed8; background:#bfdbfe; color:#1e3a8a; }
  body.dark .fm-grid td.fc.f{ background:#14532d; color:#bbf7d0; }
  body.dark .fm-grid td.fc.p{ background:#713f12; color:#fde68a; }
  body.dark .fm-grid td.fc.x{ background:#374151; color:#d1d5db; }
  body.dark .fm-grid td.fc.sel{ background:#1e3a8a; color:#fff; box-shadow:inset 0 0 0 3px #93c5fd; }
  body.dark .findslot{ background:#1a1d24; }
  .retoolbar{ display:flex; gap:4px; flex-wrap:wrap; margin:2px 0 6px; }
  .retoolbar button{ border:.5px solid var(--line); background:var(--card,#fff); border-radius:7px; padding:4px 10px; font-size:13px; cursor:pointer; line-height:1; }
  .retoolbar button:hover{ background:var(--hover); }
  .richedit{ min-height:160px; max-height:360px; overflow-y:auto; border:.5px solid var(--line); border-radius:10px; padding:10px 12px; font-size:14px; line-height:1.7; background:var(--card,#fff); }
  .richedit:focus{ outline:none; border-color:var(--accent); }
  .richedit:empty:before{ content:attr(data-ph); color:var(--sub); }
  .richedit a{ color:var(--accent); text-decoration:underline; cursor:pointer; }
  .richedit ul,.richedit ol{ margin:4px 0 4px 22px; }
  .filedrop{ border:1.5px dashed var(--line); border-radius:12px; padding:16px; text-align:center; cursor:pointer; background:var(--bg); transition:.12s; }
  .filedrop:hover{ background:var(--hover); border-color:var(--accent); }
  .filedrop.drag{ background:var(--accent-soft); border-color:var(--accent); }
  .filedrop .fdmain{ font-size:13px; font-weight:600; }
  .filedrop .fdsub{ font-size:11px; color:var(--sub); margin-top:3px; }
  .fitem{ display:flex; align-items:center; gap:8px; font-size:13px; padding:6px 8px; border:.5px solid var(--line); border-radius:9px; margin-top:6px; background:var(--card,#fff); }
  .fitem .fnm{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .fitem .fsz{ color:var(--sub); font-size:11px; }
  .fitem .fx{ border:none; background:#ffe5e3; color:var(--red); border-radius:7px; padding:3px 9px; cursor:pointer; }
  .fitem.pending{ border-style:dashed; }
  .ann{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-bottom:12px; box-shadow:var(--shadow-sm); }
  .ann.unread{ border-left:3px solid var(--accent); }
  .ann .annhd{ display:flex; align-items:center; gap:8px; margin-bottom:4px; }
  .ann .anncat{ font-size:13.5px; font-weight:700; color:var(--accent); background:var(--accent-soft); border-radius:999px; padding:4px 13px; }
  .ann .anntitle{ font-weight:700; font-size:15px; flex:1; }
  .ann .annmeta{ font-size:11px; color:var(--sub); }
  .ann .annbody{ font-size:14px; line-height:1.7; white-space:pre-wrap; color:var(--text); margin-top:6px; }
  .ann .annbody.rich{ white-space:normal; word-break:break-word; }
  .annbody.rich a,.hann-body.rich a{ color:var(--accent); text-decoration:underline; }
  .annbody.rich ul,.annbody.rich ol,.hann-body.rich ul,.hann-body.rich ol{ margin:4px 0 4px 22px; }
  .ann .annact{ display:flex; gap:8px; margin-top:8px; }
  .ann .annact button{ border:none; background:var(--hover); color:var(--sub); border-radius:8px; padding:4px 12px; font-size:12px; cursor:pointer; }
  .annatt{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
  .annfile{ display:inline-flex; align-items:center; gap:4px; font-size:12.5px; background:var(--hover); border:1px solid var(--line); border-radius:8px; padding:4px 10px; color:var(--text); text-decoration:none; }
  .annfile:hover{ background:var(--accent-soft); }
  /* ホームパネルの折りたたみキャレット */
  .hcollapse{ border:none; background:none; cursor:pointer; font-size:13px; color:var(--sub); padding:2px 4px; line-height:1; flex:0 0 auto; border-radius:6px; }
  .hcollapse:hover{ background:rgba(0,0,0,.06); color:var(--text); }
  .hbox.collapsed{ margin-bottom:12px; }
  .hbox.collapsed > h4{ margin-bottom:0; }
  .yeh-colsum{ font-size:12.5px; color:var(--sub); font-weight:600; }
  /* ホームの年間イベント(月単位) */
  .hyebox{ border-top:3px solid #0d9488; margin-bottom:22px; }
  .hyebox > h4{ margin-bottom:8px; font-size:15px; }
  .yeh-nav{ display:inline-flex; align-items:center; gap:6px; }
  .yeh-navb{ border:.5px solid var(--line); background:var(--card,#fff); color:var(--text); width:26px; height:26px; border-radius:7px; cursor:pointer; font-size:15px; line-height:1; }
  .yeh-navb:hover{ background:#0d94881a; }
  .yeh-ym{ font-size:14px; min-width:92px; text-align:center; }
  .yeh-today{ border:none; background:#0d94881f; color:#0d7d72; border-radius:999px; padding:2px 10px; font-size:11.5px; font-weight:700; cursor:pointer; }
  .yehlist{ display:flex; flex-direction:column; }
  .yehlist.annscroll{ max-height:260px; overflow-y:auto; }
  .yehrow{ display:flex; align-items:center; gap:11px; padding:11px 4px; border-top:.5px solid var(--line); cursor:pointer; }
  .yehrow:first-child{ border-top:none; }
  .yehrow:hover{ background:#0d94880d; }
  .yeh-date{ font-size:15px; font-weight:700; color:#0d7d72; flex:0 0 auto; min-width:88px; }
  .yeh-dot{ width:10px; height:10px; border-radius:50%; flex:0 0 auto; }
  .yeh-ttl{ font-size:16.5px; font-weight:600; flex:1; word-break:break-word; line-height:1.5; }
  .yeh-jump{ border:none; background:none; cursor:pointer; font-size:17px; flex:0 0 auto; opacity:.7; padding:2px 4px; }
  .yeh-jump:hover{ opacity:1; }
  .yeh-empty{ padding:14px 4px; color:var(--sub); font-size:13px; }
  /* 2026年09月: ホームの年間イベントを年度表示に(月の見出し・今月の印・過ぎたものは薄く) */
  .yeh-mon{ font-size:13px; font-weight:800; color:#0d9488; padding:8px 4px 3px; border-bottom:1px solid #0d948833; position:sticky; top:0; background:var(--card,#fff); z-index:1; }
  .yeh-mon-now{ font-size:11px; background:#0d9488; color:#fff; border-radius:999px; padding:1px 8px; margin-left:6px; vertical-align:1px; }
  .yeh-past{ opacity:.55; }
  /* ホームのお知らせ周知 */
  .hannbox{ border-top:3px solid var(--accent); margin-bottom:26px; }
  .homewrap .statcards{ margin-top:2px; }
  .hann-cnt{ font-size:12px; background:var(--accent); color:#fff; border-radius:999px; padding:1px 9px; font-weight:700; }
  .hann{ padding:11px 2px; border-top:.5px solid var(--line); cursor:pointer; }
  .hann:first-of-type{ border-top:none; }
  .hann:hover{ opacity:.85; }
  .hann.unread .hann-ttl{ font-weight:800; }
  .hann-hd{ display:flex; align-items:center; gap:7px; }
  .hann-ttl{ font-size:14.5px; font-weight:600; flex:1; }
  .hann-new{ font-size:11px; color:var(--accent); font-weight:700; }
  .hann-body{ font-size:13px; line-height:1.6; color:var(--sub); margin-top:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word; }
  .hann-meta{ font-size:11px; color:var(--sub); margin-top:5px; }
  /* お知らせ掲示板(リスト) */
  .annboard-wrap{ max-width:860px; }
  .annboard{ background:var(--card,#fff); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-sm); }
  .annempty{ padding:16px; color:var(--sub); font-size:13px; }
  .hannbox .annboard{ box-shadow:none; border-color:var(--line); }
  /* ホームは最大3件表示＋縦スクロール(1行≈48px) */
  .hannbox .annscroll{ max-height:147px; overflow-y:auto; }
  .hannbox .annscroll::-webkit-scrollbar{ width:8px; }
  .hannbox .annscroll::-webkit-scrollbar-thumb{ background:var(--line2); border-radius:8px; }
  .annscroll-hint{ font-size:11px; color:var(--sub); text-align:center; margin-top:6px; }
  .annrow{ display:flex; align-items:center; gap:10px; padding:13px 16px; border-top:1px solid var(--line); cursor:pointer; transition:background .12s; }
  .annrow:first-child{ border-top:none; }
  .annrow:hover{ background:var(--hover); }
  .annrow.unread{ background:linear-gradient(90deg, rgba(0,122,255,.06), transparent 60%); }
  .annrow .anncat{ flex:0 0 auto; font-size:13.5px; font-weight:700; color:var(--accent); background:var(--accent-soft); border-radius:999px; padding:4px 13px; }
  .annrow-ttl{ flex:1; font-size:16.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .annrow.unread .annrow-ttl{ font-weight:800; }
  .annrow-side{ flex:0 0 auto; display:flex; align-items:center; gap:9px; font-size:12px; color:var(--sub); }
  .annrow-att{ color:var(--accent); font-weight:700; }
  .annrow-new{ color:var(--accent); font-weight:700; }
  .annrow-date{ min-width:74px; text-align:right; white-space:nowrap; }
  .annrow-arrow{ color:var(--line2); font-size:18px; font-weight:700; }
  @media(max-width:600px){ .annrow{ flex-wrap:wrap; gap:6px; } .annrow-ttl{ flex:1 0 100%; order:2; } }
  /* お知らせ詳細ページ */
  .anndetailwrap{ max-width:820px; margin:0 auto; }
  .annback{ border:none; background:none; color:var(--accent); font-size:15px; font-weight:700; cursor:pointer; padding:4px 0; margin-bottom:10px; }
  .anndetail{ background:var(--card,#fff); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); padding:30px 34px 26px; }
  .anndetail .ad-top{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
  .anndetail .anncat{ font-size:15px; font-weight:700; color:var(--accent); background:var(--accent-soft); border-radius:999px; padding:5px 15px; }
  .anndetail .ad-pin{ font-size:12px; font-weight:700; color:#b25b00; background:#fff1dd; border-radius:999px; padding:3px 12px; }
  .ad-title{ font-size:27px; font-weight:800; line-height:1.35; letter-spacing:.2px; word-break:break-word; }
  .ad-meta{ font-size:13px; color:var(--sub); margin-top:10px; padding-bottom:18px; border-bottom:1px solid var(--line); }
  .ad-body{ font-size:16px; line-height:1.95; margin-top:20px; word-break:break-word; }
  .ad-body a{ color:var(--accent); text-decoration:underline; }
  .ad-body ul,.ad-body ol{ margin:8px 0 8px 24px; }
  .ad-atts{ margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
  .ad-attlabel{ font-size:13px; font-weight:700; color:var(--sub); margin-bottom:8px; }
  .ad-actions{ display:flex; gap:10px; margin-top:26px; padding-top:18px; border-top:1px solid var(--line); flex-wrap:wrap; }
  .ad-actions button{ border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:10px; padding:8px 16px; font-size:13px; font-weight:600; cursor:pointer; }
  .ad-actions button:hover{ background:var(--hover); }
  .ad-actions button.danger{ color:var(--red); border-color:#f3c9c6; }
  .homewrap{ max-width:1000px; margin:0 auto; padding:22px 18px 90px; animation:fadeUp .3s ease; }
  .hellorow{ display:flex; align-items:baseline; gap:26px; margin-bottom:18px; flex-wrap:wrap; }
  .hello{ font-size:30px; font-weight:800; letter-spacing:.2px; }
  .hello-date{ font-size:24px; color:var(--sub); font-weight:800; flex:0 0 auto; }
  .statcards{ display:flex; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
  .statcard{ flex:1; min-width:104px; background:var(--card); border-radius:var(--radius); padding:16px 14px; cursor:pointer; text-align:center; box-shadow:var(--shadow); transition:transform .1s; }
  .statcard:active{ transform:scale(.97); }
  .statcard .n{ font-size:30px; font-weight:800; color:var(--accent); line-height:1.1; }
  .statcard.alert .n{ color:var(--red); }
  .statcard .lb{ font-size:15px; color:var(--sub); margin-top:5px; font-weight:700; }
  .hcols{ display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; margin-top:14px; }
  .hcol{ flex:1; min-width:280px; }
  .hbox{ background:var(--card); border-radius:var(--radius); padding:6px 16px 10px; margin-bottom:16px; box-shadow:var(--shadow); }
  .hbox h4{ font-size:18px; font-weight:800; padding:12px 0 4px; }
  .hitem{ display:flex; align-items:center; gap:9px; padding:11px 0; border-top:.5px solid var(--line); cursor:pointer; font-size:15px; transition:opacity .1s; }
  .hitem:active{ opacity:.5; }
  .hitem .ht{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .hitem .hmeta{ font-size:11px; color:var(--sub); flex:0 0 auto; }
  .hempty{ color:var(--sub); font-size:14px; padding:10px 0; }
  .linkscroll{ max-height:340px; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .linkscroll-hint{ font-size:11px; color:var(--sub); text-align:center; padding:6px 0 0; }
  .item.dragover{ outline:2px dashed var(--accent); outline-offset:-2px; }
  /* 自分の担当のステータスタブ */
  /* 新規タスク: 担当者の複数選択チップ(タップでON/OFF・複数選ぶと人数分作成) */
  .nmasel{ display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 4px; }
  .nmasel .aselb{ border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:999px; padding:7px 14px; font-size:13px; cursor:pointer; min-height:34px; }
  .nmasel .aselb.on{ background:var(--accent); border-color:var(--accent); color:#fff; font-weight:700; }
  .nmasel-note{ font-size:11.5px; color:var(--sub); margin:0 0 6px; }
  .minetabs{ display:flex; gap:6px; flex-wrap:wrap; padding:0 2px 10px; }
  .mtab{ border:1px solid var(--line); background:var(--card,#fff); color:var(--sub); border-radius:999px; padding:6px 12px; font-size:12.5px; font-weight:700; cursor:pointer; display:inline-flex; gap:6px; align-items:center; }
  .mtab .n{ background:var(--hover); border-radius:999px; padding:0 7px; font-size:11px; }
  .mtab.on{ background:var(--accent); border-color:var(--accent); color:#fff; }
  /* タスク一覧の「完了を表示しない」トグル(完了が混ざるビューのみ表示) */
  .hidedone-row{ display:flex; justify-content:flex-end; padding:0 2px 8px; }
  .mtab.on .n{ background:rgba(255,255,255,.28); color:#fff; }
  /* スケジュールのリスト(アジェンダ)表示 */
  .callist-who{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:10px; }
  .cl-whosel{ font-size:13px; padding:7px 10px; border:1px solid var(--line); border-radius:999px; background:var(--card,#fff); color:var(--sub); max-width:200px; }
  .cl-whosel.on{ border-color:var(--accent); color:var(--accent); font-weight:700; }
  .callist{ display:flex; flex-direction:column; gap:10px; padding-bottom:20px; }
  .cl-day{ background:var(--card,#fff); border-radius:12px; padding:9px 12px; box-shadow:var(--shadow); }
  .cl-day.today{ box-shadow:0 0 0 2px var(--accent); }
  .cl-day.wknd .cl-hd{ color:#b45309; }
  .cl-hd{ display:flex; align-items:center; gap:8px; font-weight:800; font-size:14px; }
  .cl-today{ background:var(--accent); color:#fff; font-size:10.5px; border-radius:999px; padding:1px 8px; }
  .cl-add{ margin-left:auto; border:none; background:var(--hover); border-radius:8px; width:30px; height:30px; font-size:16px; cursor:pointer; color:var(--sub); }
  .cl-empty{ color:var(--sub); font-size:12px; padding:4px 0 2px; }
  .cl-ev{ display:flex; align-items:center; gap:8px; padding:9px 2px; border-top:.5px solid var(--line); cursor:pointer; min-height:42px; }
  .cl-ev:hover{ background:var(--hover); border-radius:8px; }
  .cl-bar{ flex:0 0 4px; width:4px; height:24px; border-radius:2px; }
  .cl-time{ flex:0 0 auto; font-size:12.5px; color:var(--sub); font-variant-numeric:tabular-nums; min-width:78px; }
  .cl-ttl{ flex:1; font-size:14px; font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cl-owner{ flex:0 0 auto; font-size:11px; background:var(--hover); color:var(--sub); border-radius:999px; padding:2px 9px; }
  .cl-owner.all{ background:rgba(13,148,136,.14); color:#0d9488; }
  /* メール一覧のページャ */
  .mailpager{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:2px 2px 6px; font-size:12.5px; color:var(--sub); }
  .mp-selall{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; user-select:none; font-weight:600; }
  .mp-selall input{ width:15px; height:15px; cursor:pointer; }
  .mp-btn{ border:1px solid var(--line); background:var(--card,#fff); color:var(--text); border-radius:8px; padding:6px 12px; font-size:12.5px; font-weight:700; cursor:pointer; }
  .mp-btn:disabled{ opacity:.4; cursor:default; }
  .mp-pos{ font-weight:800; color:var(--text); font-variant-numeric:tabular-nums; }
  .mp-range{ margin-right:auto; }
  .mp-size{ font-size:12.5px; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:var(--card,#fff); color:var(--text); }
  .mailmore{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:8px 2px 4px; font-size:12px; color:var(--sub); }
  /* インボックス: タスクごとにコメントを束ねたカード */
  .ibx-g{ overflow:hidden; }   /* 長い単語・URLでもカード枠からはみ出させない保険 */
  .ibx-g .it-ttl{ min-width:0; }
  .ibx-cnt{ margin-left:auto; flex:0 0 auto; font-size:11px; color:var(--sub); display:inline-flex; gap:6px; align-items:center; white-space:nowrap; }
  .ibx-un{ background:var(--red,#e5484d); color:#fff; border-radius:999px; padding:1px 8px; font-size:10.5px; font-weight:800; }
  .ibx-fbtgt{ display:flex; gap:6px; flex-wrap:wrap; margin-top:5px; }   /* 改善要望カード: どのアプリ・機能への要望かを示すチップ */
  .ibx-fbtgt .fbfeat.is-other{ color:#c2417a; background:#fdeef5; }
  .ibx-fbtgt .fbfeat.is-kind{ color:var(--sub); background:var(--hover,rgba(0,0,0,.05)); }
  .ibx-c{ display:flex; gap:7px; align-items:flex-start; margin-top:7px; padding:7px 8px 7px 10px; border-radius:9px; background:var(--hover,rgba(0,0,0,.035)); overflow:hidden; }
  .ibx-c:hover{ background:var(--accent-soft); }
  .ibx-dot{ flex:0 0 8px; width:8px; height:8px; border-radius:50%; margin-top:5px; }
  .ibx-cb{ min-width:0; flex:1; }
  .ibx-meta{ font-size:11px; color:var(--sub); display:flex; align-items:center; gap:6px; flex-wrap:wrap; min-width:0; }
  .ibx-newtag{ background:var(--accent); color:#fff; border-radius:6px; padding:0 6px; font-size:10px; font-weight:800; }
  .ibx-dup{ background:var(--hover); color:var(--sub); border:1px solid var(--line); border-radius:6px; padding:0 6px; font-size:10px; font-weight:700; }
  .ibx-body{ font-size:13.5px; color:var(--text); opacity:.85; margin-top:2px; line-height:1.6;
    white-space:pre-wrap; word-break:break-word; overflow-wrap:anywhere; }   /* 全文表示(インボックスだけで内容確認が完結するように) */
  .ibx-c.unread .ibx-body{ font-weight:700; opacity:1; }
  .qreact-box{ margin-top:12px; background:var(--accent-soft); border-radius:12px; padding:10px 12px; }
  .qreact-cap{ font-size:12px; font-weight:700; color:var(--accent); margin-bottom:8px; line-height:1.5; }
  .qreact{ display:flex; flex-wrap:wrap; gap:6px; }
  .qreact button{ border:1px solid var(--accent); background:var(--card,#fff); color:var(--accent); border-radius:999px; padding:8px 13px; font-size:13px; font-weight:700; cursor:pointer; min-height:38px; }
  .qreact button:active{ background:var(--accent); color:#fff; }
  .linkrow{ display:flex; align-items:center; gap:8px; padding:11px 0; border-top:.5px solid var(--line); }
  .linkrow a{ flex:1; color:var(--accent); text-decoration:none; font-size:15px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .linkrow .lx{ border:none; background:none; color:#c7c7cc; cursor:pointer; font-size:16px; }
  .linkhead{ display:flex; align-items:center; gap:8px; margin-top:10px; padding:6px 0 4px; border-top:1px solid #1a1a1a; font-size:12.5px; font-weight:800; color:var(--text); letter-spacing:.03em; }
  body.dark .linkhead{ border-top-color:#c7ccd6; }
  .linkhead .lx{ border:none; background:none; color:#c7c7cc; cursor:pointer; font-size:14px; margin-left:auto; }
  .linkhead:first-child{ margin-top:0; border-top:none; }
  .linkadd{ display:flex; gap:6px; margin:10px 0 4px; flex-wrap:wrap; }
  .linkadd input{ flex:1; min-width:120px; border:none; background:#f0f0f3; border-radius:10px; padding:10px; font-size:14px; }
  .linkadd input:focus{ outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
  .linkadd button{ border:none; background:var(--accent-soft); color:var(--accent); border-radius:10px; padding:10px 16px; font-weight:700; }

  /* 📁 ファイル管理: 左ペイン＝フォルダツリー（Windowsのエクスプローラー風） */
  .ftree{ padding:2px 0 24px; }
  .ftrow{ display:flex; align-items:center; gap:5px; padding:6px 8px 6px 0; border-radius:9px; cursor:pointer; font-size:13.5px; color:var(--text); user-select:none; }
  .ftrow:hover{ background:var(--hover); }
  .ftrow.sel{ background:var(--sel); font-weight:800; }
  .ftcar{ flex:0 0 18px; width:18px; text-align:center; color:var(--sub); font-size:10px; line-height:1; }
  .ftcar.can{ cursor:pointer; }
  .ftico{ flex:0 0 auto; font-size:14px; line-height:1; }
  .ftnm{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ftcnt{ flex:0 0 auto; font-size:11px; font-weight:700; color:var(--sub); background:var(--hover); border-radius:6px; padding:1px 7px; }
  .ftrow.sel .ftcnt{ background:var(--card); }
  /* 📁 ファイル管理: 右ペイン＝選んだフォルダの中身 */
  .fdwrap{ padding:16px 18px 90px; max-width:960px; margin:0 auto; animation:fadeUp .25s ease; }
  .fdcrumb{ display:flex; flex-wrap:wrap; gap:5px; align-items:center; font-size:13px; }
  .fdgrid{ display:flex; flex-wrap:wrap; gap:8px; }
  .fdfold{ display:flex; align-items:center; gap:8px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:9px 11px; cursor:pointer; font-size:13.5px; font-weight:700; color:var(--text); box-shadow:var(--shadow); max-width:100%; }
  .fdfold:hover{ background:var(--hover); }
  .fdfold .nm{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:220px; }
  .fdfold .n{ font-size:11px; font-weight:600; color:var(--sub); flex:0 0 auto; }
  .fdfold .fb{ border:none; background:var(--hover); border-radius:7px; padding:3px 7px; font-size:11.5px; cursor:pointer; flex:0 0 auto; }
  .fdcap{ font-size:12px; font-weight:800; color:var(--sub); margin:2px 0 7px; }
  .fsort{ display:flex; gap:5px; align-items:center; font-size:12px; color:var(--sub); flex-wrap:wrap; margin:2px 0 8px; }
  .fsort button{ border:1px solid var(--line); background:var(--card); color:var(--sub); border-radius:8px; padding:4px 10px; font-size:12px; font-weight:700; cursor:pointer; }
  .fsort button.on{ border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }
  .fsmob{ display:none; }   /* 検索中に右ペイン(ファイルの検索結果)へ移るボタン＝モバイルだけ表示 */
  /* 📁 ファイル管理: ドラッグ＆ドロップで追加（放そうとしている場所を色で示す） */
  .fdwrap.dnd{ outline:3px dashed var(--accent); outline-offset:-8px; background:var(--accent-soft); border-radius:14px; }
  .fdfold.dnd, .ftrow.dnd, .ftbl tr.frow.dnd{ outline:2px dashed var(--accent); outline-offset:-2px; background:var(--accent-soft); }
  .fddndhint{ display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--sub); margin:2px 0 10px; }
  /* 📁 ファイル管理: まとめて選んで削除（チェック／マウスで囲む範囲選択） */
  .fdwrap{ position:relative; }   /* マウスで囲む枠(.fdband)を、この中に重ねて描くため */
  #fdocs .item.selon{ outline:2px solid var(--accent); outline-offset:-2px; background:var(--accent-soft); }
  .fdband{ position:absolute; border:1.5px solid var(--accent); background:var(--accent-soft); opacity:.5; border-radius:6px; pointer-events:none; z-index:5; }
  body.fbanding{ user-select:none; -webkit-user-select:none; }   /* 囲んでいる間だけ、文字が選ばれないようにする */
  .fselbar{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; font-size:12px; margin:2px 0 9px; }
  /* 📁 ファイル管理: 一覧は「詳細（表）」形式＝エクスプローラーと同じ見た目 */
  .ftblwrap{ overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:var(--card); box-shadow:var(--shadow); }
  .ftbl{ width:100%; border-collapse:collapse; font-size:13px; }
  .ftbl th{ text-align:left; font-size:11.5px; font-weight:700; color:var(--sub); padding:9px 10px; white-space:nowrap; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--card); z-index:3; }
  .ftbl th.sortable{ cursor:pointer; user-select:none; }
  .ftbl th.sortable:hover{ color:var(--accent); }
  .ftbl th.on{ color:var(--accent); }
  .ftbl td{ padding:7px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
  .ftbl tbody tr:hover{ background:var(--hover); }
  .ftbl tbody tr.selon{ background:var(--accent-soft); }
  .ftbl tr.frow{ cursor:pointer; }
  .ftbl .nm{ display:flex; align-items:center; gap:8px; min-width:0; }
  .ftbl .fico{ font-size:19px; line-height:1; flex:0 0 auto; }
  .ftbl .nmtx{ font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:min(46vw,430px); }
  .ftbl .ng{ font-size:11px; color:var(--sub); flex:0 0 auto; }
  .ftbl .note{ font-size:11px; color:var(--sub); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:min(46vw,430px); margin:2px 0 0 32px; }
  .ftbl .pttx{ display:inline-block; font-size:11.5px; color:var(--sub); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:230px; vertical-align:middle; }
  .ftbl .c-chk{ width:34px; }
  .ftbl .c-chk input{ width:16px; height:16px; cursor:pointer; }
  .ftbl .c-ty,.ftbl .c-sz,.ftbl .c-up,.ftbl .c-by{ font-size:12px; color:var(--sub); white-space:nowrap; }
  .ftbl .c-sz,.ftbl .c-up{ text-align:right; }
  .ftbl .c-op{ width:1%; }
  .ftbl .op{ display:flex; gap:4px; justify-content:flex-end; }
  .ftbl .fb{ border:none; background:var(--hover); border-radius:7px; padding:4px 8px; font-size:12px; cursor:pointer; flex:0 0 auto; }
  .ftbl .fb:hover{ background:var(--sel); }
  @media (max-width:820px){ .ftbl .c-ty,.ftbl .c-by{ display:none; } .ftbl .nmtx,.ftbl .note{ max-width:52vw; } }

  /* 下部タブバー（モバイル） */
  .tabbar{ display:none; }

  @media (max-width:900px){
    .nav{ display:none; }
    .listpane{ width:100%; }
    .detail{ display:none; }
    body.showing-detail .listpane{ display:none; }
    body.showing-detail .detail{ display:block; width:100%; }
    .dback{ display:inline-block; }
    .fsmob{ display:block; }
    .topbar .brand{ display:none; }
    .topsearch{ max-width:none; height:36px; padding:0 10px; }
    .topsearch input{ font-size:16px; }
    .topsearch input::placeholder{ font-size:13px; }
    .chips{ display:flex; gap:8px; overflow-x:auto; margin-top:10px; padding-bottom:2px; scrollbar-width:none; }
    .chips::-webkit-scrollbar{ display:none; }
    .chip{ flex:0 0 auto; padding:7px 14px; border-radius:999px; background:#fff; border:1px solid var(--line2); font-size:13px; font-weight:600; color:var(--text); white-space:nowrap; }
    .chip.active{ background:var(--accent); color:#fff; border-color:var(--accent); }
    .chip .cc{ opacity:.65; margin-left:4px; font-size:11px; }
    .listpane,.detail,#home,#board,#calendar,#mail,#admin,#settings{ padding-bottom:74px; }
    .dwrap{ padding-bottom:90px; }
    /* ボトムシート化 */
    .modal{ align-items:flex-end; }
    .modal .mbox > .dlg-head, .modal .mbox > #mcHead, #forcePwModal .mbox > h3, #yearEvModal .ye-head{ border-radius:22px 22px 0 0; }
    .modal .mbox{ width:100%; max-width:100%; border-radius:22px 22px 0 0; max-height:90vh; overflow-y:auto; padding-bottom:0; animation:sheetUp .28s cubic-bezier(.2,.8,.2,1); }
    /* 2026年09月: 幅を個別に決めているダイアログ(予定・メール作成・フォルダ権限・年間イベント)もスマホでは画面いっぱいにする */
    #evModal .mbox, #mailComposeModal .mbox, #folderAclModal .mbox, #yearEvModal .mbox{ width:100% !important; max-width:100% !important; resize:none; }
    #evFindModal .mbox{ width:100%; max-width:100%; }
    #evFindModal .mbox > .ev-head{ border-radius:22px 22px 0 0; }
    #evFindModal .fm-cond{ grid-template-columns:minmax(0,1fr); }
    .fm-grid th.tm{ width:44px; }
    .fm-grid th,.fm-grid td{ height:42px; padding:0 1px; }
    .fm-grid td.fc small{ display:none; }   /* スマホは幅が狭いので名前は出さず、選んだときの下の文で知らせる */
    /* 片手モード: 保存/作成/送信ボタンを下端に固定(スクロール不要で届く) */
    .modal .mbtns{ position:sticky; bottom:0; background:var(--card); margin:18px -22px 0; padding:13px 22px calc(13px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); z-index:2; }
    /* タブバー */
    /* 高さはセーフエリア(iPhoneホームバー領域)の分を足す。56px固定だとPWAで文字が枠からはみ出す */
    .tabbar{ display:flex; position:fixed; left:0; right:0; bottom:0; height:calc(56px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom);
      background:rgba(248,248,250,.86); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
      border-top:.5px solid var(--line); z-index:45; }
    .tabbar button{ flex:1; border:none; background:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:10px; font-weight:600; color:var(--sub); position:relative; transition:transform .1s; }
    .tabbar button:active{ transform:scale(.9); }
    .tabbar button .ti{ font-size:21px; line-height:1; }
    .tabbar button.active{ color:var(--accent); }
    .tabbar .tnew .ti{ color:var(--accent); }
    .tbadge{ position:absolute; top:4px; left:calc(50% + 6px); min-width:16px; height:16px; padding:0 4px; background:var(--red); color:#fff; border-radius:999px; font-size:10px; font-weight:700; line-height:16px; text-align:center; }
  }
  /* ===== モバイル最適化(視認性・操作性) ===== */
  @media (max-width:900px){
    /* 入力欄は16px=iOSの自動ズーム防止＋タップしやすく */
    .modal input,.modal select,.modal textarea,.richedit,.sec input.txt,.sec textarea,.cmtadd textarea,.maddrow input,.mc-field,#mcBody{ font-size:16px; }
    /* コメント欄はモバイルでは最初から広め(約4行)＋書いた量に応じて自動で広がる(cmtAutoGrow) */
    .cmtadd textarea{ min-height:104px; }
    .modal input:not([type=checkbox]):not([type=radio]),.modal select{ padding:13px 14px; }
    /* ボタンのタップ領域を確保 */
    .ok,.cancel{ padding:12px 18px; font-size:15px; }
    /* フィルタチップ大きめ */
    .chip{ padding:9px 15px; font-size:14px; }
    /* タスク/インボックス一覧カード */
    .item{ padding:15px 16px; border-radius:16px; margin-bottom:11px; }
    .item .it-ttl{ font-size:16px; line-height:1.45; }
    .item .l1{ gap:9px; }
    .item .l2{ font-size:13px; }
    .item .dot{ width:12px; height:12px; }
    .ststt{ font-size:12px; padding:3px 10px; }
    /* タスク詳細: 状態ステップ/チェックリスト/コメントを押しやすく */
    .dttl{ font-size:21px; }
    .steps{ gap:4px; }
    .steps .step{ padding:11px 4px; font-size:13px; }
    .chk{ padding:11px 2px; gap:11px; }
    .chk input[type=checkbox]{ width:26px; height:26px; }
    .chk .ct{ font-size:15px; line-height:1.5; }
    /* ホーム */
    .statcard{ min-width:96px; padding:18px 12px; }
    .statcard .n{ font-size:32px; }
    .statcard .lb{ font-size:13px; }
    .hello-date{ font-size:20px; }
    .hbox{ padding:15px 15px; }
    .hbox h4{ font-size:16px; }
    /* お知らせ */
    .annrow{ padding:13px 12px; }
    .annrow-ttl{ font-size:16.5px; }
    /* カレンダー: ヘッダー折返し・セルと予定を読みやすく */
    .calhd{ flex-wrap:wrap; gap:8px; }
    .calhd h2{ font-size:18px; min-width:auto; }
    .calcell{ min-height:96px; padding:5px 6px; }
    .calcell .cdnum{ font-size:13px; }
    .caldow{ font-size:12px; padding:8px 0; }
    .cev{ font-size:calc(10px*var(--cfs,1)); padding:1px 4px; line-height:1.25; -webkit-line-clamp:2; }
    .cev .cev-t{ display:block; }
    /* 管理画面の表は横スクロールで全列に到達 */
    .tblwrap .atbl{ min-width:580px; }
    .chips{ -webkit-overflow-scrolling:touch; }
    /* メール一覧: 行を広く・文字を大きく */
    .mlrow{ padding:11px 12px; }
    .mfrom{ font-size:15px; }
    .msub2{ font-size:15px; line-height:1.45; }
    .mprev2{ font-size:13px; }
    .mlchk{ width:22px; height:22px; }
    .mflag{ font-size:18px; }
    /* メール本文 */
    .rsub{ font-size:18px; line-height:1.4; }
    .rbody{ font-size:15px; line-height:1.9; }
    .mailbtn{ padding:11px 16px; font-size:14px; }
    /* 操作ボタンは2列グリッドで揃える(右寄せの不揃いを解消)。返信は目立つよう全幅 */
    .mailactbar{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:12px 0 4px; }
    .mailactbar .mailbtn{ margin-left:0 !important; width:100%; justify-content:center; }
    .mailactbar .reply{ grid-column:1 / -1; }
    /* ☰ で開く左メニュー(ドロワー) */
    .navtoggle{ display:inline-flex; align-items:center; justify-content:center; }
    .nav{ display:block; position:fixed; top:0; left:0; bottom:0; width:82%; max-width:320px; z-index:60;
      transform:translateX(-100%); transition:transform .25s cubic-bezier(.2,.8,.2,1);
      box-shadow:2px 0 18px rgba(23,31,56,.28); padding:14px 12px; overflow-y:auto; -webkit-overflow-scrolling:touch; }
    body.nav-open .nav{ transform:translateX(0); }
    body.nav-open .navbackdrop{ display:block; position:fixed; inset:0; background:rgba(0,0,0,.42); z-index:55; }
    .nav .v{ padding:13px 12px; font-size:15px; }
    .nav .v .cnt{ font-size:12px; }
    .nav .newbtn{ padding:13px; font-size:15px; }
    /* 人間工学: 操作要素のタップ領域を最低44px前後に・誤タップ低減 */
    /* スマホは横幅が足りないので「前の週/次の週」を1行に収める。高さ44pxは維持(指で押しやすい大きさ) */
    .calhd .calnavgrp{ width:100%; gap:6px; }
    .calhd .calnav{ flex:1 1 0; justify-content:center; padding:0 10px; font-size:13.5px; min-width:0; }
    .calhd .caltoday{ flex:0 0 auto; padding:0 14px; }
    .calhd .calttl{ order:-1; width:100%; text-align:center; font-size:19px; margin:0 0 4px; }
    .calvb{ min-height:42px; padding:0 16px; font-size:14px; }
    .calzoom .calzb{ width:38px; height:42px; font-size:18px; }
    .calhd .cancel{ min-height:42px; padding:9px 16px; }
    .mlchk{ width:24px; height:24px; }
    .mflag{ font-size:22px; padding:3px 6px; }
    .mstatus button{ padding:10px 14px; }
    .steps .step{ min-height:48px; }
    .mread-back,.dback{ font-size:16px; padding:10px 4px; min-height:40px; }
    .navtoggle{ font-size:26px; padding:6px 10px; }
    #logoutBtn{ padding:9px 16px; }
    /* 親指ゾーンの作成ボタン(FAB): 画面ごとの主要「作成」を右下に */
    #fab[data-show="1"]{ display:inline-flex; position:fixed; right:16px; bottom:74px; height:56px; border-radius:28px; padding:0 20px 0 16px; gap:8px;
      background:var(--accent); color:#fff; line-height:1; align-items:center; justify-content:center;
      border:none; box-shadow:0 6px 18px rgba(0,122,255,.45); z-index:46; }
    #fab .fabic{ font-size:26px; } #fab .fablbl{ font-size:15px; font-weight:800; }
    /* タブバー: 少し大きく押しやすく(高さはセーフエリア分を足す) */
    .tabbar{ height:calc(60px + env(safe-area-inset-bottom)); }
    .tabbar button .ti{ font-size:23px; }
    .tabbar button{ font-size:11px; gap:4px; }
    /* --- モバイル人間工学の追加改善 --- */
    /* メール: 操作類を詰めて一覧を早く見せる。未選択の一括操作バーは隠す */
    .mailtop{ gap:7px; margin-bottom:8px; }
    .mailtop h2{ font-size:17px !important; }
    .mailtop .ok{ padding:8px 13px !important; font-size:12.5px !important; }
    .mailsubtabs{ gap:5px; margin-bottom:7px; }
    .mailsubtabs .chip{ padding:7px 11px; font-size:12.5px; }
    .mailwrap{ gap:6px; }
    .mailbulk{ padding:7px 10px; gap:7px; font-size:12px; margin-bottom:8px; }
    .mailbulk button{ padding:7px 11px !important; }
    .mailbulk.emptybulk{ display:none; }
    .maillistfull .mlhead{ display:none; }   /* 列見出しはモバイルでは省略(1行1件で自明) */
    /* ステータスタブは横スクロール1行に(縦2段で場所を取らない) */
    .mailsubtabs{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:2px; margin-bottom:5px; }
    .mailsubtabs .chip{ flex:0 0 auto; white-space:nowrap; }
    /* ページャは1行に圧縮(件数レンジ表記は省略し「1/26」で把握) */
    .mailpager{ gap:5px; padding:1px 0 4px; font-size:12px; flex-wrap:nowrap; }
    .mp-range{ display:none; }
    .mp-btn{ padding:6px 10px; flex:0 0 auto; }
    .mp-size{ padding:5px 6px; font-size:12px; flex:0 0 auto; margin-left:auto; }
    .mp-pos{ flex:0 0 auto; }
    /* メンバー管理: 横長テーブルはスマホでは1人1カードに(横スクロール不要・操作ボタンに届く) */
    .memtbl thead{ display:none; }
    .memtbl, .memtbl tbody, .memtbl tr, .memtbl td{ display:block; width:100%; box-sizing:border-box; }
    .memtbl tr{ border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin-bottom:10px; background:var(--card,#fff); }
    .memtbl td{ padding:2px 0; border:none !important; }
    .memtbl td:first-child{ font-weight:800; font-size:15px; }
    .memtbl td:nth-child(2){ font-size:12px; }
    .memtbl td:nth-child(3), .memtbl td:nth-child(4){ display:inline-block; width:auto; margin-right:10px; }
    .memtbl td:last-child{ display:flex; flex-wrap:wrap; gap:7px; padding-top:9px; }
    .memtbl td:last-child button{ min-height:40px; padding:8px 13px; font-size:13px; border-radius:9px; }
    /* カレンダー: メンバー名列を細くして時間帯を広く。並べ替えグリップはモバイルでは隠す */
    .calgrpname{ width:104px; padding:8px 6px; }
    .calgrpname .gnh{ display:none; }
    .calhd{ gap:7px; }
    /* 操作の集約: ⚙で副次操作を開閉。＋予定はFABに任せて隠す */
    .calhd .calopttgl{ display:inline-flex; align-items:center; min-height:40px; }
    .calhd .calopts{ display:none; width:100%; }
    body.calopts-open .calhd .calopts{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:8px 0 2px; }
    .calhd .calnewbtn{ display:none; }
    /* ホーム: 挨拶を大きすぎない大きさに */
    .hello{ font-size:24px; }
  }
  /* 高齢者配慮: かんたん表示(高コントラスト・余白広め・補助文字をさらに濃く) */
  body.easy-view{ --sub:#3f4552; }
  body.easy-view .hitem,body.easy-view .mlrow,body.easy-view .nav .v,body.easy-view .cmt .body,body.easy-view .rbody{ line-height:1.95; }
  body.easy-view .hitem,body.easy-view .mlrow{ padding-top:14px; padding-bottom:14px; }
  /* 上部の文字サイズボタン */
  .fsbtn{ border:none; background:rgba(255,255,255,.22); color:#fff; border-radius:999px; padding:6px 12px; font-size:13px; font-weight:800; cursor:pointer; flex:0 0 auto; display:flex; align-items:center; gap:5px; }
  .fsbtn:active{ transform:scale(.95); }
  .fsbtn .fsa{ font-size:16px; line-height:1; }
  /* カレンダー操作の集約: 副次操作(サイズ/目盛り/時間帯/メンバー)。PCではインライン表示、モバイルは⚙で開閉 */
  .calopts{ display:contents; }
  .calopttgl{ display:none; background:#eef2f8; color:#27384f; border:1px solid #d3dde9; border-radius:9px; padding:7px 12px; font-size:13px; font-weight:700; cursor:pointer; }
  .calopttgl:active{ transform:scale(.96); }
  body.calopts-open .calopttgl{ background:#27384f; color:#fff; border-color:#27384f; }
  /* 狭い画面: 上部のログイン名は隠してログアウトを確実に押せるように(名前は左メニュー/設定で確認可) */
  .mailbulk button{ white-space:nowrap; }
  /* 🔄最新にする: スマホでは文字を隠してアイコンだけにするが、指で押しやすい大きさ(40px角)は確保する */
  #topRefreshBtn{ font-size:15px; }
  @media(max-width:600px){ .topbar{ gap:7px; padding:0 9px; } .topbar #meName{ display:none; } .topbar .brand{ display:none; } .topbar .brandlogo{ height:40px; } .topsearch{ min-width:0 !important; max-width:none; } .topbar .me button{ padding:6px 10px; } .fsbtn #fsLabel{ display:none; }
    #topRefreshBtn .rfl{ display:none; }
    #topRefreshBtn{ min-width:40px; min-height:40px; justify-content:center; padding:6px 10px; font-size:17px; } }
  /* メール送受信の進捗バー（画面右下に出る小さなカード。描き直しの影響を受けないようbody直下に置く） */
  #mailProgBox{ position:fixed; right:18px; bottom:22px; width:330px; max-width:calc(100vw - 24px); background:var(--card,#fff); color:var(--fg,#1a1a1a);
    border:.5px solid var(--line); border-radius:14px; box-shadow:0 10px 34px rgba(0,0,0,.16); padding:13px 15px; z-index:98;
    opacity:0; transform:translateY(10px); transition:opacity .2s, transform .2s; pointer-events:none; }
  #mailProgBox.on{ opacity:1; transform:translateY(0); }
  #mailProgBox .mpTitle{ font-size:13.5px; font-weight:800; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
  #mailProgBox .mpBar{ height:8px; border-radius:99px; background:rgba(127,127,127,.18); overflow:hidden; }
  #mailProgBox .mpBar i{ display:block; height:100%; width:0; border-radius:99px; background:linear-gradient(90deg,#2e8b8b,#3fb0a5); transition:width .35s ease; }
  #mailProgBox .mpText{ font-size:11.5px; color:var(--sub); margin-top:7px; line-height:1.6; }
  #mailProgBox.done .mpBar i{ background:linear-gradient(90deg,#2f9e44,#51cf66); }
  @media(max-width:600px){ #mailProgBox{ right:10px; left:10px; width:auto; bottom:74px; } }

  /* ===== 起動中の進捗表示（黒×ゴールドのキービジュアル） =====
     画面が出るまでに時間が掛かるときだけ見せる。0.45秒より早く開けた場合は
     フェードイン前に消えるので、一瞬チラつくことはない。
     配色はダークモードの設定に関係なく黒×金で固定（起動の絵づかいを一定にするため）。 */
  #boot{ position:fixed; inset:0; z-index:99999; overflow:hidden; padding:24px;
         display:flex; flex-direction:column; align-items:center; justify-content:center;
         background:#0c0d10; color:#e8dcc2; text-align:center;
         opacity:0; animation:bootIn .3s ease .45s forwards; }
  #boot.hide{ display:none; }
  @keyframes bootIn{ to{ opacity:1; } }
  /* 背後でゆっくり呼吸する金色の光 */
  #boot .bootglow{ position:absolute; left:50%; top:44%; width:760px; height:760px; max-width:150vw; max-height:150vw;
                   transform:translate(-50%,-50%); pointer-events:none;
                   background:radial-gradient(circle,rgba(201,168,106,.20) 0%,rgba(201,168,106,.07) 34%,transparent 66%);
                   animation:bootBreath 4.5s ease-in-out infinite; }
  @keyframes bootBreath{ 0%,100%{ opacity:.75; transform:translate(-50%,-50%) scale(1); }
                         50%{ opacity:1; transform:translate(-50%,-50%) scale(1.07); } }
  /* 細かい粒子＝紙のような質感 */
  #boot .bootgrain{ position:absolute; inset:0; opacity:.05; pointer-events:none;
                    background-image:radial-gradient(#fff 1px,transparent 1px); background-size:3px 3px; }
  /* エマを囲む金の輪（ゆっくり回る＝動いていることが一目でわかる） */
  #boot .bootring{ position:relative; width:112px; height:112px; border-radius:50%; flex:0 0 auto;
                   display:flex; align-items:center; justify-content:center;
                   background:radial-gradient(circle at 32% 28%,#22242b,#0f1014);
                   box-shadow:0 0 0 1px rgba(201,168,106,.55), 0 0 44px rgba(201,168,106,.22), inset 0 1px 0 rgba(255,255,255,.06); }
  #boot .bootring img{ width:64px; height:64px; object-fit:contain; filter:drop-shadow(0 3px 10px rgba(0,0,0,.6)); }
  #boot .bootring::before{ content:''; position:absolute; inset:-9px; border-radius:50%;
                    background:conic-gradient(from 0deg,transparent 0deg,rgba(201,168,106,.85) 60deg,transparent 130deg,transparent 360deg);
                    -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));
                    mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));
                    animation:bootSpin 3.4s linear infinite; }
  @keyframes bootSpin{ to{ transform:rotate(360deg); } }
  #boot .bootname{ position:relative; margin-top:30px; }
  #boot .bootname .en{ font-family:Georgia,"Times New Roman","Yu Mincho","Hiragino Mincho ProN",serif;
                       font-size:19px; letter-spacing:.34em; color:#e8dcc2; font-style:italic; }
  #boot .bootname .en b{ font-style:normal; font-weight:400; }
  #boot .bootname .line{ width:150px; height:1px; margin:15px auto;
                         background:linear-gradient(90deg,transparent,rgba(201,168,106,.9),transparent); }
  #boot .bootname .ja{ font-size:12.5px; letter-spacing:.46em; text-indent:.46em; color:rgba(255,255,255,.62); font-weight:500; }
  /* 進捗（画面の下寄せ） */
  #boot .bootfoot{ position:absolute; left:0; right:0; bottom:13%; padding:0 20px; }
  #boot .bootbar{ width:min(300px,72vw); height:1.5px; margin:0 auto; background:rgba(255,255,255,.13);
                  border-radius:99px; overflow:hidden; position:relative; }
  #boot .bootbar i{ position:absolute; left:0; top:0; bottom:0; width:0; border-radius:99px;
                    background:linear-gradient(90deg,#8d7238,#c9a86a 45%,#f0dfae 78%,#c9a86a);
                    box-shadow:0 0 14px rgba(201,168,106,.7); transition:width .5s cubic-bezier(.4,0,.2,1); }
  #boot .boottext{ margin-top:17px; font-size:12px; letter-spacing:.2em; color:rgba(232,220,194,.85);
                   line-height:1.8; min-height:1.5em; }
  #boot .bootpct{ margin-top:7px; font-size:10.5px; letter-spacing:.3em; color:rgba(201,168,106,.6); font-family:Georgia,serif; }
  #boot .boothint{ margin-top:16px; font-size:12px; line-height:1.9; color:rgba(255,255,255,.6); }
  #boot .bootbtn{ margin-top:10px; border:1px solid rgba(201,168,106,.55); background:transparent; color:#e8dcc2;
                  border-radius:10px; padding:9px 18px; font-size:13px; font-weight:700; letter-spacing:.06em; cursor:pointer; }
  #boot .bootsig{ position:absolute; bottom:20px; left:0; right:0; text-align:center;
                  color:rgba(255,255,255,.28); font-size:10px; letter-spacing:.34em; }
  @media(max-width:600px){
    #boot .bootring{ width:96px; height:96px; } #boot .bootring img{ width:54px; height:54px; }
    #boot .bootname .en{ font-size:16px; letter-spacing:.28em; }
    #boot .bootname .ja{ font-size:11.5px; letter-spacing:.38em; text-indent:.38em; }
    #boot .bootfoot{ bottom:11%; }
  }

  /* 白い文字を乗せる青い所は --accent-on に（明るい画面4.02・暗い画面2.63 → どちらも4.5以上に・2026年10月） */
  .modal .mbtns .ok, .rgnew, .rgmhead, .modal .mbox > .dlg-head, .modal .mbox > #mcHead, #forcePwModal .mbox > h3, #evModal .ev-head, #evFindModal .mbox > .ev-head, #yearEvModal .ye-head,
  #evModal .evb-ribbon .rb.ok, .fm-pick .ok, #login .primary, .nav .newbtn, .nav .fbnav.active, .nav .v.active, .cwcard .cwapprove, .cmtadd button, .mailread-head, .mbadge.nr,
  .mailalert .ma-btn, .mread .mstatus button.on, .rctab.active, .rgchip.sel, .fbcmt-add button, .mstatus button.on, .calvb.on, .hann-cnt, .nmasel .aselb.on, .mtab.on, .cl-today,
  .ibx-newtag, .chip.active, .calcell.today .cdnum, [style*="background:var(--accent);color:#fff"]{ background:var(--accent-on)!important; }
  .nav .fbnav.active, .rctab.active, .rgchip.sel, .mread .mstatus button.on, .nmasel .aselb.on, .mtab.on, .chip.active{ border-color:var(--accent-on)!important; }
  .tdkv-acts .rgnew{ background:#fff!important; } body.dark .tdkv-acts .rgnew{ background:#e7e9ee!important; }   /* ToDo の見出しの白いボタンはそのまま */
/* ===== スケジュールの見た目 案A「手帳・紙」（2026年10月 見本） =====
   配置・ボタン・文言・動きは変えず、見た目だけ。効く範囲はスケジュール画面（body.view-calendar #calendar）・
   予定にマウスを乗せたときの詳細（body.view-calendar #evPop）・予定の編集ダイアログ（#evModal）だけ。
   予定の色（人ごと・種類ごと・Google取込の #4285F4）は、左の太い帯＋淡い地で残す。🔒・Ⓖの印もそのまま。
   採用するときは index.html の style の開きタグ の最後（style の閉じタグ の直前）へ、このファイルの中身をそのまま貼る。 */

/* --- 色の素（この範囲の中だけで置き換える） --- */
body.view-calendar #calendar, #evModal, body.view-calendar #evPop{
  --bg:#f6f1e7; --card:#fffdf8; --line:#e4dccd; --line2:#d3c7b2; --hover:#f7efe0; --sel:#f3e8d2;
  --text:#2f2a24; --sub:#7b6f60;
  --pa-ink:#2f2a24; --pa-indigo:#2c4f86; --pa-paper:#f6f1e7; --pa-sheet:#fffdf8; --pa-tint:rgba(255,253,248,.82);
  --pa-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 1px 2px rgba(70,50,20,.06), 0 6px 18px rgba(70,50,20,.07);
  --pa-serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho","BIZ UDPMincho","Noto Serif JP",serif;
}
body.dark.view-calendar #calendar, body.dark #evModal, body.dark.view-calendar #evPop{
  --bg:#3a3631; --card:#45403a; --line:#5a534a; --line2:#6a6258; --hover:#4f4942; --sel:#575045;
  --text:#ece5d8; --sub:#b3a893;
  --pa-ink:#ece5d8; --pa-indigo:#9db8e6; --pa-paper:#3a3631; --pa-sheet:#45403a; --pa-tint:rgba(69,64,58,.74);
  --pa-shadow:0 1px 2px rgba(0,0,0,.4), 0 6px 18px rgba(0,0,0,.35);
}

/* --- 紙の地（ごく薄いざらつき） --- */
body.view-calendar #calendar{
  background-color:var(--pa-paper);
  /* 2026年10月: ざらつきの模様(SVGのフィルタ)は、Edgeの環境によって真っ黒な四角で描かれ地が黒くなったため外した（v584） */
  color:var(--pa-ink);
}

/* --- 上の帯（期間の移動・表示の切り替え） --- */
body.view-calendar #calendar .calhd{ background:var(--pa-paper); }
body.view-calendar #calendar .calhd .calttl{ font-family:var(--pa-serif); font-weight:700; color:var(--pa-ink); letter-spacing:.06em; }
body.view-calendar #calendar .calhd .calnav{
  border:1px solid var(--line2); background:var(--pa-sheet); color:var(--pa-indigo);
  box-shadow:var(--pa-shadow); border-radius:10px;
  transition:background .2s, color .2s, box-shadow .2s, transform .08s;
}
body.view-calendar #calendar .calhd .calnav:hover{ background:#f1e8d6; color:var(--pa-indigo); box-shadow:0 1px 2px rgba(70,50,20,.08), 0 8px 22px rgba(70,50,20,.12); }
body.dark.view-calendar #calendar .calhd .calnav:hover{ background:#544c42; }
body.view-calendar #calendar .calhd .calnav:focus:not(:focus-visible){ background:var(--pa-sheet); color:var(--pa-indigo); }
body.view-calendar #calendar .calhd .caltoday{
  border:1px solid var(--line2); background:var(--pa-sheet); color:var(--pa-ink); border-radius:10px; box-shadow:var(--pa-shadow);
  transition:background .2s, color .2s;
}
body.view-calendar #calendar .calhd .caltoday:hover{ background:#f1e8d6; color:var(--pa-indigo); border-color:var(--line2); }
body.dark.view-calendar #calendar .calhd .caltoday:hover{ background:#544c42; }
body.view-calendar #calendar .calhd .calnewbtn{ border-radius:10px; box-shadow:0 1px 2px rgba(20,60,30,.2), 0 6px 16px rgba(20,80,40,.18) !important; }
body.view-calendar #calendar .calvsw{ border:1px solid var(--line2); border-radius:10px; background:var(--pa-sheet); box-shadow:var(--pa-shadow); }
body.view-calendar #calendar .calvb{ transition:filter .15s; }
body.view-calendar #calendar .calvb:hover{ filter:brightness(.96); }
body.view-calendar #calendar .calzoom{ border:1px solid var(--line2); background:var(--pa-sheet); }
body.view-calendar #calendar .calhd select{ background:var(--pa-sheet); color:var(--pa-ink); border-color:var(--line2) !important; }
body.view-calendar #calendar .calhd .cancel{ border-radius:10px; box-shadow:0 1px 2px rgba(0,0,0,.08); }
body.view-calendar #calendar .calopttgl{ background:var(--pa-sheet); color:var(--pa-ink); border-color:var(--line2); }
body.calopts-open.view-calendar #calendar .calopttgl{ background:var(--pa-indigo); color:#fff; border-color:var(--pa-indigo); }

/* --- 月の表 --- */
body.view-calendar #calendar .calgrid{ border-color:var(--line); border-radius:14px; box-shadow:var(--pa-shadow); }
body.view-calendar #calendar .caldow{ background:#efe7d8; color:var(--sub); letter-spacing:.1em; }
body.dark.view-calendar #calendar .caldow{ background:#4a443d; }
body.view-calendar #calendar .caldow.sun{ color:#c2413b; } body.view-calendar #calendar .caldow.sat{ color:#2f62b8; }
body.view-calendar #calendar .calcell{ background:var(--pa-sheet); transition:background .2s; }
body.view-calendar #calendar .calcell:hover{ background:var(--hover); }
body.view-calendar #calendar .calcell.other{ background:#f3ede2; }
body.dark.view-calendar #calendar .calcell.other{ background:#36322d; }
body.view-calendar #calendar .calcell .cdnum{ font-family:Georgia,"Times New Roman",var(--pa-serif); font-weight:600; }
body.view-calendar #calendar .calcell .cdsun{ color:#c2413b; } body.view-calendar #calendar .calcell .cdsat{ color:#2f62b8; }
body.view-calendar #calendar .calcell.today{ background:#fff7e3; }
body.dark.view-calendar #calendar .calcell.today{ background:#4f4630; }
body.view-calendar #calendar .calcell.today .cdnum{ background:#c2413b !important; color:#fff; box-shadow:0 2px 6px rgba(194,65,59,.35); }

/* --- 予定の札：左に色の帯＋淡い地の「付せん」。色の意味はそのまま --- */
body.view-calendar #calendar :is(.cev,.adev,.tev,.gbar,.cspan):not(.task){
  background-image:linear-gradient(90deg, transparent 0 4px, var(--pa-tint) 4px) !important;
  color:var(--pa-ink) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 1px 2px rgba(70,50,20,.10), 0 3px 8px rgba(70,50,20,.06);
  transition:box-shadow .2s, transform .2s, filter .2s;
}
body.dark.view-calendar #calendar :is(.cev,.adev,.tev,.gbar,.cspan):not(.task){ box-shadow:0 1px 3px rgba(0,0,0,.45); }
body.view-calendar #calendar :is(.cev,.adev,.tev,.gbar):not(.task){ border-radius:6px; }
body.view-calendar #calendar :is(.cev,.adev,.tev,.gbar,.cspan):not(.task):hover{
  box-shadow:0 2px 4px rgba(70,50,20,.14), 0 10px 22px rgba(70,50,20,.14); filter:saturate(1.15);
}
body.view-calendar #calendar :is(.tev,.gbar) b{ font-family:Georgia,"Times New Roman",sans-serif; font-weight:700; }
body.view-calendar #calendar .cev .cev-t{ font-family:Georgia,"Times New Roman",sans-serif; }
body.view-calendar #calendar .gbar.part{ border-color:rgba(120,100,70,.55); }
body.view-calendar #calendar .gbadge{ box-shadow:0 0 0 1px rgba(66,133,244,.45); }
body.view-calendar #calendar :is(.cev,.adev).task{ background:#fbe9e2; color:#a8402f; border-radius:6px; box-shadow:0 1px 0 rgba(168,64,47,.15); }

/* --- 週・日の表 --- */
body.view-calendar #calendar .calgridv{ border-color:var(--line); border-radius:14px; background:var(--pa-sheet); box-shadow:var(--pa-shadow); }
body.view-calendar #calendar .calgutter .ghead, body.view-calendar #calendar .caltcol .chead{ background:var(--pa-sheet); }
body.view-calendar #calendar .caltcol .chead.thead-today{ background:#fff3d6; color:#8a4b12; }
body.dark.view-calendar #calendar .caltcol .chead.thead-today{ background:#3a3018; color:#f3d79a; }
body.view-calendar #calendar .calgutter .ghour{ font-family:Georgia,"Times New Roman",sans-serif; color:#9a8c78; }

/* --- グループの表 --- */
body.view-calendar #calendar .calgrp{ border-color:var(--line); border-radius:14px; box-shadow:var(--pa-shadow); background:var(--pa-sheet); }
body.view-calendar #calendar .calgrpname{ border-right-color:#cdbb9c; font-family:var(--pa-serif); color:var(--pa-ink); }
body.view-calendar #calendar .calgrprow.headrow .calgrpname{ background:linear-gradient(180deg,#3d5f95,#2c4f86); color:#fff; }
body.view-calendar #calendar .calgrprow.headrow .calgrptrack{ background:#efe7d8; }
body.dark.view-calendar #calendar .calgrprow.headrow .calgrptrack{ background:#4a443d; }

/* --- リスト --- */
body.view-calendar #calendar .cl-day{ background:var(--pa-sheet); border:1px solid var(--line); border-radius:14px; box-shadow:var(--pa-shadow); }
body.view-calendar #calendar .cl-day.today{ box-shadow:0 0 0 2px #c2413b, var(--pa-shadow); }
body.view-calendar #calendar .cl-hd{ font-family:var(--pa-serif); letter-spacing:.04em; }
body.view-calendar #calendar .cl-today{ background:#c2413b !important; }
body.view-calendar #calendar .cl-ev{ border-top:1px dashed var(--line); transition:background .2s; }
body.view-calendar #calendar .cl-bar{ width:5px; flex-basis:5px; border-radius:3px; }
body.view-calendar #calendar .cl-whosel{ background:var(--pa-sheet); border-color:var(--line2); }
body.view-calendar #calendar .cl-whosel.on{ border-color:var(--pa-indigo); color:var(--pa-indigo); }

/* --- マウスを乗せたときの詳細 --- */
body.view-calendar #evPop{ background:var(--pa-sheet); border:1px solid var(--line2); border-radius:12px; color:var(--pa-ink);
  box-shadow:0 2px 6px rgba(70,50,20,.10), 0 18px 40px rgba(70,50,20,.18); }
body.view-calendar #evPop .ep-title{ font-family:var(--pa-serif); font-size:14.5px; letter-spacing:.03em; }
body.view-calendar #evPop .ep-note{ border-top:1px dashed var(--line2); }

/* --- 予定の編集ダイアログ（見出しは青のまま） --- */
#evModal.modal{ background:rgba(45,36,24,.38); }
@supports (backdrop-filter:blur(2px)){ #evModal.modal{ backdrop-filter:blur(2px); } }
#evModal .mbox{ background:var(--pa-sheet); border-radius:18px; box-shadow:0 0 0 1px rgba(120,100,70,.14), 0 30px 80px rgba(50,35,15,.32); color:var(--pa-ink); }
#evModal .mbox > .ev-head{ background:linear-gradient(180deg,#2f6fd0,#1f5bb6) !important; border-radius:18px 18px 0 0; box-shadow:0 1px 0 rgba(255,255,255,.18) inset; }
body.dark #evModal .mbox > .ev-head{ background:linear-gradient(180deg,#2a5fb4,#1d4c98) !important; }
#evModal .mbox.dlgmax > .ev-head{ border-radius:0; }
#evModal .ev-head h3{ font-family:var(--pa-serif); font-weight:700; letter-spacing:.06em; }
#evModal .evb-tabs{ background:#f1eadc; border-bottom-color:var(--line); }
body.dark #evModal .evb-tabs{ background:#4a443d; }
#evModal .evb-tabs button{ transition:color .2s, background .2s; }
#evModal .evb-tabs button.on{ background:var(--pa-sheet); color:var(--pa-indigo); border-bottom-color:#2f6fd0; border-radius:10px 10px 0 0; }
#evModal .evb-ribbon{ background:var(--pa-sheet); border-bottom-color:var(--line); }
#evModal .evb-grp{ border-right-color:var(--line); }
#evModal .evb-gname{ font-family:var(--pa-serif); letter-spacing:.08em; }
#evModal .evb-ribbon .rb{ border-radius:10px; transition:background .2s, border-color .2s, box-shadow .2s; }
#evModal .evb-ribbon .rb:hover{ background:#f6eedf; border-color:var(--line2); box-shadow:0 2px 6px rgba(70,50,20,.08); }
body.dark #evModal .evb-ribbon .rb:hover{ background:#544c42; }
#evModal .evb-ribbon .rb.ok{ background:linear-gradient(180deg,#2f78dc,#1f5fbf); box-shadow:0 2px 6px rgba(31,95,191,.3); }
#evModal .evb-ribbon .rb.ok:hover{ background:linear-gradient(180deg,#2a6cc8,#1a52a6); }
#evModal .evb-info{ background:#fbf1d3; border-bottom-color:#eadcae; color:#5b4710; }
#evModal .evb-grid .lb{ color:var(--pa-ink); }
#evModal input:not([type=checkbox]):not([type=radio]), #evModal select, #evModal #evNote, #evModal .evb-tok{
  background:#fffaeb; box-shadow:inset 0 0 0 1px #eadcb8; border-radius:10px;
}
body.dark #evModal input:not([type=checkbox]):not([type=radio]), body.dark #evModal select, body.dark #evModal #evNote, body.dark #evModal .evb-tok{ background:#332f1d; box-shadow:inset 0 0 0 1px #4d4630; }
#evModal input:not([type=checkbox]):not([type=radio]):focus, #evModal select:focus, #evModal #evNote:focus{ box-shadow:inset 0 0 0 1px #c9a959, 0 0 0 3px rgba(201,169,89,.25); }
#evModal .evb-grid .lb.btn button{ background:#f3ecdf; border-color:var(--line2); border-radius:10px; }
#evModal .evb-grid .lb.btn button:hover{ background:#ece1cc; }
body.dark #evModal .evb-grid .lb.btn button{ background:#4f4942; }
#evModal .evb-memo, #evModal .evb-foot{ border-top:1px dashed var(--line2); }
#evModal .evb-state{ background:#f1eadc; }
#evModal .evb-state.on{ background:#e3f1e2; }
body.dark #evModal .evb-info{ background:#3a3418; color:#f1e7b8; border-bottom-color:#5a5226; }
body.dark #evModal .evb-state{ background:var(--hover); }
body.dark #evModal .evb-state.on{ background:#1f3a29; color:#8fe0a9; }

/* ===== 案Bの「動き」を重ねる（2026年10月・上村さん「案Aの背景に案Bの動き」） =====
   色・地・付せんの見た目は案Aのまま。浮く・押し込む・ふわっと開く・すりガラスの動きだけを足す。
   動きを減らす設定の人には、開くときの動きを出さない。 */
body.view-calendar #calendar, #evModal, body.view-calendar #evPop{ --pm-ease:cubic-bezier(.2,.8,.2,1); }
/* 上の帯のボタン：乗せると少し浮き、押すと沈む */
body.view-calendar #calendar .calhd :is(.calnav,.caltoday,.calnewbtn,.calopttgl,.cancel){
  transition:background .25s var(--pm-ease), color .25s var(--pm-ease), box-shadow .25s var(--pm-ease), transform .25s var(--pm-ease);
}
body.view-calendar #calendar .calhd :is(.calnav,.caltoday,.calnewbtn,.calopttgl):hover{ transform:translateY(-1px); }
body.view-calendar #calendar .calhd :is(.calnav,.caltoday,.calnewbtn,.calopttgl):active{ transform:translateY(0) scale(.97); }
body.view-calendar #calendar .calvb{ transition:transform .2s var(--pm-ease), box-shadow .2s var(--pm-ease), filter .2s; }
body.view-calendar #calendar .calvb:hover{ transform:translateY(-1px); }
body.view-calendar #calendar .calvb:active{ transform:scale(.97); }
/* 日のます目：色の変わり方をなめらかに */
body.view-calendar #calendar .calcell{ transition:background .25s var(--pm-ease); }
/* 予定の付せん：乗せるとふわっと浮く */
body.view-calendar #calendar :is(.cev,.adev,.tev,.gbar,.cspan):not(.task){
  transition:transform .22s var(--pm-ease), box-shadow .22s var(--pm-ease), filter .22s;
}
body.view-calendar #calendar :is(.cev,.adev,.tev,.gbar,.cspan):not(.task):hover{
  transform:translateY(-1px);
  box-shadow:0 2px 3px rgba(70,50,20,.10), 0 10px 22px -4px rgba(70,50,20,.28);
}
body.view-calendar #calendar :is(.tev,.gbar):not(.task):active{ transform:none; }
/* リスト：行に乗せると少し右へ */
body.view-calendar #calendar .cl-day{ transition:box-shadow .25s var(--pm-ease); }
body.view-calendar #calendar .cl-ev{ transition:background .2s var(--pm-ease), transform .2s var(--pm-ease); }
body.view-calendar #calendar .cl-ev:hover{ transform:translateX(2px); }
/* マウスを乗せたときの詳細：すりガラス */
@supports (backdrop-filter:blur(4px)) or (-webkit-backdrop-filter:blur(4px)){
  body.view-calendar #evPop{ -webkit-backdrop-filter:blur(16px) saturate(1.3); backdrop-filter:blur(16px) saturate(1.3); }
}
/* 予定の編集ダイアログ：後ろの画面がぼけ、ふわっと開く */
@supports (backdrop-filter:blur(4px)) or (-webkit-backdrop-filter:blur(4px)){ #evModal.modal{ -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); } }
@media (prefers-reduced-motion:no-preference){
  #evModal.modal.show .mbox{ animation:gwaIn .32s var(--pm-ease); }
  @keyframes gwaIn{ from{ opacity:0; transform:translateY(14px) scale(.985); } to{ opacity:1; transform:none; } }
}
#evModal .evb-tabs button{ transition:background .2s var(--pm-ease), color .2s var(--pm-ease); }
#evModal .evb-ribbon .rb{ transition:background .2s var(--pm-ease), border-color .2s, transform .2s var(--pm-ease), box-shadow .2s var(--pm-ease); }
#evModal .evb-ribbon .rb:hover{ transform:translateY(-1px); box-shadow:0 4px 12px rgba(70,50,20,.12); }
#evModal .evb-ribbon .rb:active{ transform:scale(.97); }
#evModal input:not([type=checkbox]):not([type=radio]), #evModal select, #evModal #evNote{ transition:box-shadow .2s var(--pm-ease), background .2s; }
