/* fc-honbu-app v2 — 資金管理アプリ（SAKIMAWARI準拠テーマ）に合わせたスタイル。ライト固定。
   色は必ずここのCSS変数だけを使う。総合判定の4色（青・黄・赤・黒）は意味色でアクセントとは別扱い。 */
:root{
  color-scheme: light;
  --ink:#1a2333; --paper:#eef1f6; --mist:#e6eaf1; --slate:#5b6b82; --line:#d5dce6;
  --in:#5e8c61; --out:#a94442; --alert:#a08427; --white:#fff; --card:#fff;
  --sub1:#aab6c6; --sub2:#4a7ba6; --gold:#b87333; --grey:#c8d2e0; --blue:#3d5a99; --purple:#8a7ab5;
  --st-blue:#1F5FA8; --st-blue-bg:#E1ECF8;
  --st-yellow:#9A6B05; --st-yellow-bg:#F8EED6;
  --st-red:#B23124; --st-red-bg:#F8E2DE;
  --st-black:#2A2F33; --st-black-bg:#DFE3E4;
  --jp:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  --num:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  --r:12px;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--jp);font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-weight:700;line-height:1.35}
.num{font-family:var(--num);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ---------- header ---------- */
header.top{background:var(--blue);color:#fff;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:20}
header.top h1{font-size:16px;letter-spacing:.06em;display:flex;align-items:center;gap:8px;margin-right:auto;white-space:nowrap}
header.top h1 .logo{width:24px;height:24px;border-radius:5px;background:#fff;color:var(--blue);display:grid;place-items:center;font-size:12px;font-weight:800}
header.top .chip{font-size:11px;background:rgba(255,255,255,.18);border-radius:6px;padding:3px 8px;white-space:nowrap}
header.top .hbtn{color:#fff;font-size:12px;background:rgba(255,255,255,.18);border-radius:6px;padding:4px 9px;white-space:nowrap}
header.top .hbtn kbd{font:inherit;opacity:.8;margin-left:4px}

/* ---------- tabs ---------- */
nav.tabs{position:sticky;top:52px;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:0;padding:0 8px;overflow-x:auto;z-index:19}
nav.tabs button{padding:10px 12px 8px;font-size:12px;border-bottom:3px solid transparent;color:var(--slate);white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:1px}
nav.tabs button .ic{font-size:18px;line-height:1.1}
nav.tabs button[aria-selected="true"]{color:var(--blue);border-bottom-color:var(--blue);font-weight:700}
nav.tabs button .n{position:absolute;transform:translate(14px,-4px);background:#d63636;color:#fff;border-radius:10px;font-size:9.5px;min-width:16px;height:16px;line-height:16px;padding:0 4px;text-align:center}
nav.tabs button{position:relative}

main{padding:12px 12px 80px;max-width:1180px;margin:0 auto}
section.card,.card,section.card.brief.x{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px 10px;margin:0 0 11px}
h2.sec{font-size:13px;color:var(--blue);margin:0 0 10px;display:flex;align-items:center;gap:8px}
h2.sec .count{margin-left:auto;font-weight:400;color:var(--slate);font-size:11.5px}
h2.sec a{font-weight:400;font-size:11.5px}
.sub{color:var(--slate);font-size:12px}
.note{color:var(--slate);font-size:12px;margin:4px 0 0;line-height:1.7}
.warn{color:var(--out)}
.ok{color:var(--in)}

/* ---------- gate (login) ---------- */
.gate{min-height:70vh;display:grid;place-items:center;padding:24px 12px}
.gate-in{width:100%;max-width:440px}
.gate h1{font-size:20px;margin-bottom:6px}
.gate .lede{color:var(--slate);font-size:13px;margin:0 0 16px}
/* ログイン画面の右に出す「使い方」（2026-10-05 本部指示）。
   ⚠ 横に並べるのは広い画面だけ。**media query を使わず flex-wrap で折り返す**＝
     狭い画面では自然にフォームの下へ回る（.gate-in が DOM で先なので順番は「フォーム → 使い方」のまま）。
     media query を足すと、ファイル末尾でないと後ろのルールに負ける（2026-10-04 に踏んだ）。
   ⚠ .gate は place-items:center なので、.gate-cols 自身に width:100% を持たせる。 */
.gate-cols{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;justify-content:center;width:100%;max-width:900px}
/* ⚠ 横に並ぶ境目は この2つの flex-basis の合計＋gap（400+300+14＝714px）。
   ⚠ **合計を 740px より大きくしない。** 800px 前後の窓（ノートの半画面・この確認用ペイン）で
     折り返して「右に出ない」ように見える（2026-10-05 に踏んだ）。 */
.gate-cols>.gate-in{flex:0 1 400px;max-width:420px}
.gate-help{flex:1 1 300px;min-width:250px;max-width:420px}
.gate-help .card{margin:0 0 10px}
.gate-help .card:last-child{margin-bottom:0}
.gate-help .note{margin:0}
.gate-help .note+.note{margin-top:7px}
.gate-help ul.gh-list+.note{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.gate-help ol.gh-steps{margin:0;padding-left:1.25em;font-size:12.5px;color:var(--slate);line-height:1.8}
.gate-help ol.gh-steps+.note{margin-top:7px}
.gate-help ol.gh-steps b{color:var(--ink)}
.gate-help ul.gh-list{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.gate-help ul.gh-list li{font-size:12.5px;line-height:1.7}
.gate-help ul.gh-list li>b{display:block}
.gate-help ul.gh-list li>span{color:var(--slate)}
.gate-help .gh-mail{word-break:break-all;font-family:var(--num)}
.choice{display:grid;gap:10px}
.choice button{display:flex;gap:12px;align-items:flex-start;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.choice button:hover{border-color:var(--blue)}
.choice .mark{width:34px;height:34px;flex:none;border-radius:8px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:700;font-size:13px}
.choice .k{font-weight:700;font-size:14px}
.choice .d{font-size:12px;color:var(--slate);line-height:1.6}
.field{display:grid;gap:5px;margin-bottom:12px}
.field label{font-size:12px;color:var(--slate)}
.field select,.field input,.field textarea{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 11px;width:100%;font-size:14px}
.btn{background:var(--blue);color:#fff;border-radius:7px;padding:9px 14px;font-weight:700;font-size:12.5px;white-space:nowrap}
.btn.sec{background:var(--sub1);color:#fff}
.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink)}
.btn.danger{background:var(--out)}
.btn:disabled{opacity:.5;cursor:default}
.hint{font-size:12px;color:var(--slate);margin-top:8px}
.err{color:var(--out);font-size:12.5px;min-height:19px}

/* ---------- kpi tiles ---------- */
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0 0 12px}
.kpi > div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;text-align:center}
.kpi small{display:block;font-size:10.5px;color:var(--slate);margin-bottom:2px}
.kpi .num{font-size:19px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .num small{display:inline;font-size:11px;color:var(--slate);margin-left:2px}
.kpi .d{display:block;font-size:11px;margin-top:2px}
.up{color:var(--in)} .dn,.down{color:var(--out)} .flat{color:var(--slate)}
.delta{font-size:11.5px;font-family:var(--num)}

/* ---------- tags / pills ---------- */
.tag{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;white-space:nowrap;vertical-align:middle}
.t-blue{background:var(--st-blue-bg);color:var(--st-blue)}
.t-yellow{background:var(--st-yellow-bg);color:var(--st-yellow)}
.t-red{background:var(--st-red-bg);color:var(--st-red)}
.t-black{background:var(--st-black-bg);color:var(--st-black)}
.t-plain{background:var(--mist);color:var(--slate)}
.t-green{background:#e2ebe2;color:var(--in)}
.pill{display:inline-block;font-size:11px;border-radius:999px;padding:1px 8px;border:1px solid var(--line);color:var(--slate);white-space:nowrap}
.pill.on{background:var(--blue);color:#fff;border-color:var(--blue)}

/* ---------- lists / rows ---------- */
.rows{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:6px 1fr auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--mist);width:100%;text-align:left;background:none}
.rows .row:first-child{border-top:0}
.row:hover{background:var(--paper)}
.row .stripe{width:4px;height:30px;border-radius:2px}
.row .nm{font-weight:600;font-size:13.5px}
.row .meta{font-size:11.5px;color:var(--slate);display:flex;gap:10px;flex-wrap:wrap}
.row .rt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.row .more{grid-column:1/-1;font-size:12px;color:var(--slate);line-height:1.7;padding-left:18px;white-space:pre-wrap}
.row .pbar{grid-column:1/-1;height:3px;background:var(--mist);border-radius:2px;overflow:hidden;margin:4px 0 2px 18px}
.row .pbar i{display:block;height:100%}
.empty{color:var(--slate);font-size:12.5px;padding:10px 0}

/* ---------- school list ---------- */
.areahead{display:flex;align-items:baseline;gap:10px;margin:14px 0 8px}
.areahead h3{font-size:13px;color:var(--blue)}
.areahead .n{font-size:11.5px;color:var(--slate)}
.areahead .bar{flex:1;height:1px;background:var(--line)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.scard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-align:left;display:flex;flex-direction:column;width:100%;border-left-width:4px}
.scard:hover{border-color:var(--blue);border-left-color:inherit}
.scard .hd{padding:10px 12px 6px;display:flex;align-items:flex-start;gap:8px}
.scard .nm{font-weight:700;font-size:13.5px}
.scard .corp{font-size:11px;color:var(--slate)}
.scard .k3{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--mist);background:var(--paper)}
.scard .k3 div{padding:7px 8px;border-right:1px solid var(--mist);text-align:center}
.scard .k3 div:last-child{border-right:0}
.scard .k3 .k{font-size:10px;color:var(--slate)}
.scard .k3 .v{font-family:var(--num);font-size:14px;font-weight:600}
.scard .k3 .d{font-size:10px;font-family:var(--num)}
.scard .bar{height:3px;background:var(--mist)} .scard .bar i{display:block;height:100%}
.scard .badges{display:flex;gap:4px;flex-wrap:wrap;padding:6px 12px 8px}

/* ---------- carte (school detail) ---------- */
.carte-head{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.carte-head h2{font-size:18px}
.carte-head .sub{margin-top:2px}
.carte-head .right{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
/* 「← ◯◯にもどる」はチャットのトップ戻りと同じ小さなチップにそろえる（2026-09-26） */
.backlink{color:var(--slate);font-size:12px;font-weight:600;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 11px;margin:0 0 10px;display:inline-block}
.backlink:hover{border-color:var(--blue);color:var(--blue)}
/* 📋タスクなどの入口。折り返さず1行で横スクロール（段が増えると押す場所を探すことになる） */
nav.subtabs{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;padding:0 0 10px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
nav.subtabs button{flex:none;border-radius:8px;padding:6px 10px;font-size:12px;background:#fff;border:1px solid var(--line);color:var(--slate);white-space:nowrap;position:relative}
nav.subtabs button[aria-selected="true"]{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:700}
nav.subtabs button .n{position:absolute;top:-6px;right:-6px;background:#d63636;color:#fff;border-radius:10px;font-size:9.5px;min-width:16px;height:16px;line-height:16px;padding:0 4px;text-align:center}
.two{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:11px;align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr}}

/* ---------- monthly table (スプシ形式・12ヶ月横持ち) ---------- */
.mt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px}
.mt{border-collapse:separate;border-spacing:0;font-size:12.5px;min-width:100%}
.mt th,.mt td{padding:6px 8px;white-space:nowrap;border-bottom:1px solid var(--mist);text-align:right}
.mt th{font-weight:500;color:var(--slate);position:sticky;top:0;background:#fff;z-index:2;border-bottom:1px solid var(--line)}
.mt th small{display:block;font-size:10px}
.mt th.fc,.mt td.fc{background:#eef3fb}
.mt th.cur,.mt td.cur{background:#fff7dc}
.mt th.lab,.mt td.lab{text-align:left;position:sticky;left:0;background:#fff;z-index:1;font-weight:500;color:var(--ink);min-width:9em;border-right:1px solid var(--line)}
.mt th.lab{z-index:3}
.mt tr.h td{background:var(--mist);color:var(--slate);font-size:11px;padding:3px 8px}
.mt tr.h td.lab{background:var(--mist)}
.mt tr.t td{font-weight:700;border-top:1px solid var(--line)}
.mt tr.sb td.lab{padding-left:18px;font-weight:400;color:var(--slate)}
.mt td.dn{color:var(--out)} .mt td.hi{color:var(--in)}
.mt td.num{font-variant-numeric:tabular-nums}
.mt td.odd{background:#fdebd0!important;color:#8a4b00}
.mt td.est{color:var(--slate);font-style:italic}
.mt td input{width:7.5em;font-size:12px;padding:2px 4px;border:1px solid var(--line);border-radius:4px;text-align:right;background:#fff}
@media(max-width:720px){.mt{font-size:11.5px}.mt th,.mt td{padding:5px 6px}.mt th.lab,.mt td.lab{min-width:7.5em}}

/* ---------- charts (inline svg) ---------- */
.chart{width:100%;height:auto;overflow:visible}
.chart text{font-family:var(--num);font-size:11px;fill:var(--slate)}
.chart .grid{stroke:var(--mist)}
.chart .act{stroke:var(--ink);stroke-width:2;fill:none}
.chart .plan{stroke:var(--sub2);stroke-width:2;fill:none;stroke-dasharray:5 4}
.chart .tgt{stroke:var(--alert);stroke-width:1.5;fill:none;stroke-dasharray:3 3}
.chart .fc{stroke:var(--ink);stroke-width:2;fill:none;stroke-dasharray:6 4;opacity:.6}
.chart .bp{stroke:var(--purple);stroke-width:1.5;fill:none;stroke-dasharray:2 3}
.rec-h{font-size:12.5px;margin:12px 0 2px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-top:1px solid var(--mist);padding-top:9px}
.rec-h:first-of-type{border-top:0;padding-top:0}
.rec-h .count{font-size:11px;font-weight:400;color:var(--slate)}
.chart .band{fill:var(--sub1);opacity:.25}
.chart .bar{fill:var(--sub2)} .chart .bar.cur{fill:var(--blue)}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--slate);margin-top:6px}
.legend i{display:inline-block;width:18px;border-top:2px solid var(--ink);vertical-align:middle;margin-right:5px}
.legend i.plan{border-top:2px dashed var(--sub2)} .legend i.tgt{border-top:2px dashed var(--alert)} .legend i.fc{border-top:2px dashed var(--ink);opacity:.6} .legend i.bp{border-top:2px dotted var(--purple)}

/* ---------- chat ---------- */
.rooms{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 8px}
.rooms button{position:relative;border-radius:8px;padding:6px 10px;font-size:12px;background:var(--sub1);color:#fff;font-weight:600}
.rooms button[aria-pressed="true"]{background:var(--blue);box-shadow:0 2px 5px rgba(61,90,153,.35)}
.rooms .n{position:absolute;top:-6px;right:-6px;background:#d63636;color:#fff;border-radius:12px;font-size:9.5px;min-width:16px;height:16px;line-height:16px;padding:0 4px;text-align:center}
.roomhead{background:var(--blue);color:#fff;border-radius:12px 12px 0 0;padding:8px 14px;font-weight:700;font-size:13px;display:flex;gap:8px;align-items:center}
.roomhead span:last-of-type{margin-left:auto;font-weight:400;font-size:10.5px;opacity:.85}
.msgs{background:#eef2fa;border:2px solid var(--blue);border-top:0;border-radius:0 0 12px 12px;padding:8px 10px;max-height:56vh;overflow:auto;display:flex;flex-direction:column;gap:6px}
.msg{padding:0;max-width:88%}
.msg.mine{align-self:flex-end;text-align:right}
.msg .h{font-size:10px;color:var(--slate);margin-bottom:1px}
.msg .h b{font-weight:600;color:var(--ink);margin-right:4px}
.msg .bubble{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 12px;text-align:left;font-size:13px;white-space:pre-wrap;word-break:break-word}
.msg.mine .bubble{background:#dbe7fb}
.msg.line .bubble{background:#e6f5e2;border-color:#bfe3b5}
.msg.request .bubble{background:#fff3cd;border-color:#e0b93d}
.msg.day{align-self:center;font-size:11px;color:var(--slate);padding:6px 0 2px}
.msg .acts{margin-top:3px;display:flex;gap:6px;justify-content:flex-end}
.msg .acts button{font-size:11px;color:var(--blue);text-decoration:underline}
.composer{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:8px;display:grid;gap:8px}
.composer .line1{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.composer select{border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;background:#fff}
.composer textarea{width:100%;min-height:64px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;resize:vertical;font-size:13px}
.drafts{display:grid;gap:8px;margin-top:6px}
.draft{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12.5px;white-space:pre-wrap}
.draft .tone{font-size:11px;color:var(--blue);font-weight:700;margin-bottom:3px}
.draft .use{margin-top:0}
.draft .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.inbox .row{grid-template-columns:6px 1fr auto}

/* 受信箱の上の1行（区分・絞り込み・見え方の切り替え）。ピルの行を増やさない（2026-09-26） */
.inboxbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.inboxbar .rooms{margin:0}
.inboxbar select{border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;background:#fff}
.viewtoggle{display:flex;gap:0;margin-left:auto;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.viewtoggle button{padding:6px 10px;font-size:12px;background:#fff;color:var(--slate);font-weight:600;white-space:nowrap}
.viewtoggle button + button{border-left:1px solid var(--line)}
.viewtoggle button[aria-pressed="true"]{background:var(--blue);color:#fff}
.subtabs .back{background:var(--paper);color:var(--slate);font-weight:600}

/* 🗂 事業所ごとのカード（一覧と同じ中身を別の見え方で） */
.chatcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px}
.chatcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.chatcard.active{border-color:var(--blue);box-shadow:0 0 0 2px rgba(61,90,153,.12)}
.chatcard .hd{display:flex;gap:6px;align-items:center;justify-content:space-between;font-size:13.5px}
.chatcard .sb{font-size:11px;color:var(--slate)}
.chatcard .ms{font-size:11.5px;color:var(--sub);line-height:1.6;min-height:2.6em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.chatcard .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.chatcard .acts .btn{flex:1 1 auto}
.chatcard .acts .btn.on{border-color:var(--blue);color:var(--blue);font-weight:700}
.chatcard .acts .n{background:#d63636;color:#fff;border-radius:10px;font-size:9.5px;min-width:16px;height:16px;line-height:16px;padding:0 4px;margin-left:4px;display:inline-block;text-align:center}

/* 🤖 出た案について Claude と往復して直す（2026-09-26）。チャット欄の中なので浮かせない */
.aichat{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;margin-top:8px}
.aichat h4{font-size:12.5px;color:var(--blue);margin:0 0 4px}
.aichat textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;font-family:inherit;margin-top:6px}
.aichat .actions{margin-top:6px}
.aimsgs{display:grid;gap:6px;margin:6px 0}
.aim{border-radius:9px;padding:7px 9px;font-size:12.5px}
.aim.hq{background:var(--paper);border:1px solid var(--line)}
.aim.ai{background:#f2f6fd;border:1px solid #d7e2f4}
.aim .who{font-size:11px;color:var(--slate);font-weight:700;margin-bottom:2px}
.aim .tx{white-space:pre-wrap;line-height:1.7}
.aim .draft{margin-top:6px;background:#fff}

/* ---------- issues ---------- */
.issue{border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:8px;background:#fff}
.issue .t{font-weight:700;font-size:13.5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.issue .b{font-size:12.5px;color:var(--ink);margin-top:3px;line-height:1.65}
.issue .src{font-size:11px;color:var(--slate);margin-top:4px;padding-left:8px;border-left:2px solid var(--line);white-space:pre-wrap}
.issue .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.issue .acts button{font-size:11.5px;border:1px solid var(--line);border-radius:6px;padding:3px 8px;background:#fff}
.issue.high{border-left:4px solid var(--out)}
.issue.mid{border-left:4px solid var(--alert)}
.issue.low{border-left:4px solid var(--sub1)}
.person{display:inline-flex;align-items:center;gap:4px;background:#efe9f8;color:var(--purple);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}

/* ---------- checklist ---------- */
.checklist{display:flex;flex-direction:column}
.chk{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--mist)}
.chk:first-child{border-top:0}
.chk input{margin-top:4px;accent-color:var(--blue)}
.chk .t{font-size:13px}
.chk .m{font-size:11.5px;color:var(--slate)}
.chk.done .t{color:var(--slate);text-decoration:line-through}

/* ---------- home ---------- */
.today{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.today .card{margin:0}
section.card.brief{background:linear-gradient(135deg,var(--blue),#2d4b75);color:#fff;border:0}
.brief h2{color:#fff;font-size:15px;margin-bottom:6px}
.brief p{margin:0;font-size:13px;line-height:1.7;opacity:.95}
.brief .pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.brief .pills span{border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:3px 9px;font-size:11px;background:rgba(255,255,255,.1)}

/* ---------- palette ---------- */
.palette{position:fixed;inset:0;background:rgba(20,30,50,.45);z-index:50;display:grid;place-items:start center;padding:10vh 12px}
.palette .box{width:100%;max-width:640px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.palette input{width:100%;border:0;border-bottom:1px solid var(--line);padding:14px 16px;font-size:15px}
.palette .res{max-height:60vh;overflow:auto}
.palette .item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;padding:9px 14px;border-top:1px solid var(--mist);font-size:13px}
.palette .item:hover,.palette .item[aria-selected="true"]{background:var(--paper)}
.palette .item .kind{font-size:10.5px;color:var(--slate);white-space:nowrap}
.palette .item .p{font-size:11px;color:var(--slate)}
.palette .item .ic{font-size:16px}

/* ---------- misc ---------- */
.filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 10px}
.filters select,.filters input{border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;background:#fff}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th,.tbl td{padding:7px 8px;border-bottom:1px solid var(--mist);text-align:right;white-space:nowrap}
.tbl th{font-weight:500;color:var(--slate);font-size:11.5px}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl td{font-family:var(--num)}
.tbl td:first-child{font-family:var(--jp)}
.tbl tr.click{cursor:pointer} .tbl tr.click:hover td{background:var(--paper)}
.tbl-wrap{overflow-x:auto}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:9px 14px;border-radius:8px;font-size:12.5px;z-index:60;box-shadow:0 6px 20px rgba(0,0,0,.3);max-width:min(560px,92vw);white-space:pre-line;line-height:1.55;text-align:left}
/* もう一度押すと確定するボタン（format.js の confirmTwice）。1回目で黄色くなる */
.or,.btn.or,.sk-btn.or{background:var(--st-yellow-bg)!important;color:var(--st-yellow)!important;border:1px solid var(--st-yellow)!important;font-weight:700}
/* 🔔 目標のアラートの板ごと畳む。ふだんは1行だけ（2026-10-03 本部指示） */
.sk-alertbox>summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;cursor:pointer;list-style:none;font-size:13px}
.sk-alertbox>summary::-webkit-details-marker{display:none}
.sk-alertbox>summary::before{content:"▸";color:var(--slate)}
.sk-alertbox[open]>summary::before{content:"▾"}
.sk-alertbox[open]>summary{margin-bottom:6px}
.sk-alertbox>summary .n{color:var(--slate);font-size:11.5px}
.sk-alertbox>summary .lv{margin-left:auto;font-size:12px;letter-spacing:.5px}
/* 🔔 目標のアラート。児童1人＝1行で畳む（日報の一覧と同じ形） */
.sk-goalalert{border-bottom:1px solid var(--line)}
.sk-goalalert>summary{padding:9px 2px;cursor:pointer;font-size:13px;list-style:none}
.sk-goalalert>summary::-webkit-details-marker{display:none}
.sk-goalalert>summary::before{content:"▸ ";color:var(--slate)}
.sk-goalalert[open]>summary::before{content:"▾ "}
.sk-goalalert[open]>summary{border-bottom:1px dashed var(--line)}
/* 🌱そだちの「通った回数」の行。目標の行と見分けがつくように薄く敷く */
.sd-matrix tr.sd-visit th,.sd-matrix tr.sd-visit td{background:var(--mist);font-weight:600}
/* 文字を入れてもらう欄（format.js の askText）。⚠ prompt() は例外を投げる環境がある */
.askwrap{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}
.askbox{background:#fff;border-radius:12px;padding:16px;width:min(520px,100%);box-shadow:0 12px 40px rgba(0,0,0,.28)}
.askmsg{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;white-space:pre-line;line-height:1.6}
.askbox input,.askbox textarea{width:100%;box-sizing:border-box}
.askbox .acts{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}
.foot{color:var(--slate);font-size:11.5px;padding:16px 0 0;text-align:center}
details.more>summary{cursor:pointer;color:var(--blue);font-size:12px;list-style:none}
details.more>summary::before{content:"▸ "}
details.more[open]>summary::before{content:"▾ "}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:11px}
.cal .dh{text-align:center;color:var(--slate);padding:2px 0}
.cal .d{min-height:54px;border:1px solid var(--mist);border-radius:6px;padding:2px 4px;background:#fff}
.cal .d.other{background:var(--paper);color:var(--sub1)}
.cal .d.today{border-color:var(--blue)}
.cal .d .n{font-size:10px;color:var(--slate)}
.cal .ev{display:block;font-size:10px;background:var(--st-blue-bg);color:var(--st-blue);border-radius:4px;padding:0 3px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal .ev.mt{background:#efe9f8;color:var(--purple)}
.cal .ev.due{background:var(--st-red-bg);color:var(--st-red)}
.funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;text-align:center}
.funnel div{background:var(--paper);border-radius:8px;padding:8px 4px}
.funnel .v{font-family:var(--num);font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.funnel .k{font-size:10.5px;color:var(--slate)}
.ratio{font-size:10.5px;color:var(--slate)}

/* ---------- mobile: bottom bar ---------- */
@media (max-width:720px){
  nav.tabs{position:fixed;top:auto;bottom:0;left:0;right:0;border-top:1px solid var(--line);border-bottom:0;padding:0 0 env(safe-area-inset-bottom);justify-content:space-around;z-index:21}
  nav.tabs button{flex:1;padding:6px 0 8px;font-size:9px;border-bottom:0;white-space:normal;line-height:1.15;text-align:center;word-break:keep-all}
  nav.tabs button[aria-selected="true"]{border-bottom:0}
  main{padding-bottom:96px}
  header.top h1 span.t{display:none}
  /* ⚠ **ヘッダーの中身が画面より広いと、ページ全体が横にずれる（2026-10-04 に実測：375pxの画面で546px）。**
     そうなると下の固定タブまで546pxになり、会話を上下に送るたび指が横に滑って過去が追えない。
     ヘッダーの中だけで横に逃がし、開発用の「Supabase ◯行」は携帯では出さない。 */
  header.top{overflow-x:auto;scrollbar-width:none}
  header.top::-webkit-scrollbar{display:none}
  header.top #synclabel{display:none}
  /* 部屋の説明（「本部と自校のオーナーだけが見られます」）は携帯では畳む＝そのぶん会話を長く */
  .sk-roomhead .sub{display:none}
  .kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .funnel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .funnel .v{font-size:15px}
  .toast{bottom:110px}
}

/* ---------- HQ app shell / mobile concept v101 ---------- */
.app-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:2px 0 18px;padding:4px 2px}
.app-page-head>div{min-width:0}.app-page-head h1{margin:3px 0 3px;font-size:28px;line-height:1.15;letter-spacing:-.045em;color:#102a50}
.app-page-head p{margin:0;color:#71839d;font-size:13px}.app-eyebrow{display:block;color:#0d63c9;font-size:10px;font-weight:900;letter-spacing:.18em}
.app-date,.page-count{flex:none;padding:8px 12px;border-radius:999px;background:#e9f3ff;color:#0d5dbd;font-size:11px;font-weight:800}
.hq-quick-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.hq-quick-stats button{border:1px solid #dce8f6;border-radius:18px;background:#fff;padding:15px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;text-align:left;box-shadow:var(--shadow-sm);color:var(--ink)}
.hq-quick-stats button:hover{border-color:#91b9e8;transform:translateY(-1px)}
.qs-icon{grid-row:1/3;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-weight:900}.qs-icon.blue{background:#e6f1ff;color:#0964d2}.qs-icon.amber{background:#fff3d9;color:#cc8000}.qs-icon.red{background:#ffebec;color:#df4149}
.hq-quick-stats small{font-size:11px;color:#71839d;font-weight:700}.hq-quick-stats b{font-size:22px;line-height:1.1}.hq-quick-stats i{font-size:10px;font-style:normal;margin-left:3px;color:#8392a8}
.school-filters>.sec,.inbox-card>.sec{margin-bottom:12px}.school-filters .filters{display:grid;grid-template-columns:auto auto minmax(220px,1fr);gap:9px}
body[data-view="schools"][data-detail="false"] .scard{border:1px solid #dce8f6}
body[data-view="schools"][data-detail="false"] .areahead{margin-top:20px}
.inbox-title{margin-bottom:10px}.inbox-card .inboxbar{background:#f5f9ff;border:1px solid #e1ebf7;border-radius:14px;padding:9px}
.company-kpi-card>.kpi{grid-template-columns:repeat(3,minmax(0,1fr))}
body[data-view="company"] .linechart{background:linear-gradient(180deg,#f7fbff,#fff);border-radius:14px}

@media (max-width:720px){
  header.top{background:linear-gradient(135deg,#082e70 0%,#0b56b4 74%,#1872d1 100%);box-shadow:none}
  header.top h1 .logo{width:116px;background:transparent;padding:0;filter:brightness(0) invert(1)}
  header.top h1 .t{font-size:10px}.app-page-head{align-items:flex-start;margin:0 0 13px;padding:0 1px}
  .app-page-head h1{font-size:21px;margin-top:2px}.app-page-head p{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:255px}.app-eyebrow{font-size:8px}.app-date,.page-count{font-size:9px;padding:6px 8px}
  body[data-view="home"] main{padding-top:13px}
  .hq-quick-stats{gap:7px;margin-bottom:11px}.hq-quick-stats button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:11px 10px;border-radius:14px;min-width:0}.qs-icon{width:30px;height:30px;border-radius:10px}.hq-quick-stats small{font-size:10px}.hq-quick-stats b{font-size:20px}
  .home-month{background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px;margin-bottom:10px}.home-month label,.home-month .note{display:none}.home-month select{width:100%;border:0;background:#f3f7fc;font-weight:800}
  .home-brief{background:linear-gradient(135deg,#0a4ba4,#1471d5)!important;border:0!important;border-radius:17px!important}.home-brief h2{font-size:15px}.home-brief p{font-size:11px;line-height:1.65}.home-brief .pills{gap:5px}.home-brief .pills span{font-size:9.5px}
  body[data-view="home"] main>.kpi{display:none}
  body[data-view="home"] .today{display:block}.today>.card{min-height:0}
  body[data-view="home"] .today>.card .rows>.row:nth-child(n+5){display:none}
  .school-filters{padding:10px!important;background:transparent!important;border:0!important;box-shadow:none!important}.school-filters>.sec{display:none}.school-filters .filters{grid-template-columns:1fr 1fr}.school-filters .filters input{grid-column:1/-1;grid-row:1;height:42px;border-radius:13px;padding-left:14px}.school-filters .filters select{height:36px;font-size:11px}
  body[data-view="schools"][data-detail="false"] .areahead{margin:14px 3px 7px}body[data-view="schools"][data-detail="false"] .grid{gap:8px}
  body[data-view="schools"][data-detail="false"] .scard{border-radius:15px;box-shadow:0 3px 12px rgba(25,69,129,.06)}body[data-view="schools"][data-detail="false"] .scard:hover{transform:none}
  body[data-view="chat"] main{padding-left:9px;padding-right:9px}.inbox-card{padding:10px!important;border:0!important;box-shadow:none!important;background:transparent!important}.inbox-card>.sec{display:none}.inbox-card .inboxbar{padding:7px;background:#fff}.inbox-card .viewtoggle{display:none}.inbox-card .inboxbar input{order:-1;width:100%;flex-basis:100%;height:40px;border-radius:12px}.inbox-card .rows{background:#fff;border:1px solid #dce8f6;border-radius:15px;padding:2px 10px;margin-top:9px}.inbox-card .row{min-height:70px}
  body[data-view="company"] nav.subtabs button:not(:first-child){display:none}body[data-view="company"] nav.subtabs{display:none}.company-kpi-card{border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}.company-kpi-card>.sec{display:none}.company-kpi-card>.filters{background:#fff;border:1px solid var(--line);padding:8px;border-radius:13px}.company-kpi-card>.kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.company-kpi-card>.kpi>div{border-radius:14px}.company-kpi-card .tbl-wrap{border-radius:14px;border:1px solid var(--line);background:#fff}
  body:not(.fc-mode) nav.tabs button:nth-child(4),body:not(.fc-mode) nav.tabs button:nth-child(5),body:not(.fc-mode) nav.tabs button:nth-child(6){display:none}
  body:not(.fc-mode) nav.tabs{justify-content:space-around;overflow:hidden;padding-left:8px;padding-right:8px}body:not(.fc-mode) nav.tabs button{flex:1 1 20%;min-width:0;font-size:9px}body:not(.fc-mode) nav.tabs button .ic{font-size:18px}
}

/* ---------- 全社KPI横断：校名固定＋全項目前月比 ---------- */
.tbl.xt th,.tbl.xt td{white-space:nowrap;vertical-align:top;padding:7px 10px}
.tbl.xt th.lab,.tbl.xt td.lab{position:sticky;left:0;background:#fff;z-index:2;min-width:9em;border-right:1px solid var(--line);text-align:left}
.tbl.xt thead th{position:sticky;top:0;background:#fff;z-index:1}
.tbl.xt thead th.lab{z-index:3}
.tbl.xt td .dd{display:block;font-size:10.5px;font-family:var(--num);line-height:1.3}
.tbl.xt tr.click:hover td.lab{background:var(--paper)}
/* 本部内ルーム */
.internal .roomhead{background:var(--purple)}
.internal .msgs{border-color:var(--purple);background:#f3effa}
.internal .msg.mine .bubble{background:#e6dcf5}
/* ホーム：拠点の一覧 */
.tbl.mon th.lab,.tbl.mon td.lab{position:sticky;left:0;background:#fff;z-index:1;text-align:left;min-width:9em}
.tbl.mon td{vertical-align:top;padding:9px 8px}
.tbl.mon td .dd{display:block;font-size:10.5px;font-family:var(--num)}
.tbl.mon td.issue-cell{white-space:normal;font-family:var(--jp);font-size:12px;line-height:1.55;min-width:22em;max-width:40em;text-align:left;color:var(--ink-2, var(--ink))}
.tbl.mon th.l{text-align:left}
@media (max-width:860px){.two[style]{grid-template-columns:1fr !important}}
/* 案件の操作行 */
.row .taskctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:6px}
.row .taskctl select,.row .taskctl input{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:12px;background:#fff}
.row .taskctl .sub{font-size:11px}
.kpi > div.warnTile{border-color:var(--out)} .kpi > div.warnTile .num{color:var(--out)}

/* ホームの表示月切替 */
.filters.home-month{margin:0 0 10px;gap:8px}
.filters.home-month label{font-size:12px;color:var(--sub);font-weight:600}
.filters.home-month .note{font-size:11.5px;color:var(--sub)}
.btn.sm{padding:5px 9px;font-size:12px}

/* 予定（前月末時点）の値 */
.tbl .plan{color:var(--blue);font-weight:600}

/* チャット：区分タブ・一斉送信・定型文 */
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.subtabs button{position:relative;border-radius:999px;padding:6px 12px;font-size:12.5px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:600}
.subtabs button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.subtabs .n{position:absolute;top:-6px;right:-6px;background:#d63636;color:#fff;border-radius:12px;font-size:9.5px;min-width:16px;height:16px;line-height:16px;padding:0 4px;text-align:center}
.rows.inbox .row.active{background:#eef2fa;border-radius:8px}
.chkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:0 12px}
.chkgrid .chk{padding:5px 0;border-top:0}
h3.sub{font-size:12px;color:var(--blue);margin:12px 0 6px;font-weight:700}
.filters label{font-size:12px;color:var(--slate)}
input.wide{flex:1;min-width:12em}
.tpl{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px;background:#fff}
.tpl textarea,.card textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;resize:vertical;margin-top:6px}
.card input[type=email],.card input[type=text],.card input:not([type]){border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;background:#fff}
.bcdetail{border-left:3px solid var(--blue);padding:6px 0 6px 10px;margin:4px 0 10px}
a.btn.disabled{opacity:.5;pointer-events:none}
code{background:var(--paper);border-radius:4px;padding:0 4px;font-size:11.5px}

.drafthost:empty{display:none}

/* スマホのチャット：一覧⇄部屋の切替、部屋の高さを画面に合わせる */
@media (max-width:860px){
  .chat-mobile .btn.back{margin:0 0 8px;width:100%;text-align:left}
  .chat-mobile .msgs{max-height:calc(100dvh - 330px);min-height:220px}
  .chat-mobile .card{margin-bottom:8px}
}

/* 監査：月次点検の行 */
.audit-row{display:grid;grid-template-columns:4px minmax(0,1fr) minmax(0,1fr);gap:8px 10px;padding:8px 0;border-top:1px solid var(--mist);align-items:start}
.audit-row .stripe{width:4px;border-radius:2px;align-self:stretch;min-height:36px}
.audit-row .t{font-size:13px}
.audit-row .m{font-size:11.5px;color:var(--slate);margin-top:2px}
.audit-row .note-d{color:var(--out)}
.audit-row .ctl{display:grid;gap:4px}
.audit-row .ctl select,.audit-row .ctl input{border:1px solid var(--line);border-radius:7px;padding:5px 7px;font-size:12px;background:#fff;width:100%}
.audit-row .ctl select:disabled{background:var(--paper);color:var(--slate)}
@media (max-width:720px){.audit-row{grid-template-columns:4px minmax(0,1fr)}.audit-row .ctl{grid-column:2}}

/* ---------- 📱 事業所アプリ（SAKIMAWARI形式）。FCモードは下部固定の9タブ ---------- */
body.fc-mode main{max-width:720px;padding:14px 14px calc(86px + env(safe-area-inset-bottom))}
body.fc-mode nav.tabs{position:fixed;top:auto;bottom:0;left:0;right:0;border-top:1px solid var(--line);border-bottom:0;padding:0 max(0px,calc((100vw - 720px)/2)) env(safe-area-inset-bottom);justify-content:space-around;z-index:21;overflow:visible}
body.fc-mode nav.tabs button{flex:1;min-width:0;padding:8px 0 10px;font-size:10px;border-bottom:0;white-space:nowrap;line-height:1.2}
body.fc-mode nav.tabs button .ic{font-size:17px}
body.fc-mode nav.tabs button[aria-selected="true"]{border-bottom:0}
body.fc-mode nav.tabs button .n{transform:translate(9px,-3px)}
header.top .chip.me{background:none;text-align:right;line-height:1.3;font-size:11.5px;padding:0}
.sk{font-size:14px}
.sk h2{font-size:13px;color:var(--blue);margin-bottom:6px}
.sk textarea,.sk input:not([type=checkbox]),.sk select{font:inherit;font-size:14px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;width:100%;margin:4px 0;background:#fff}
.sk textarea{min-height:56px}
.sk details summary{cursor:pointer;font-size:12.5px;color:var(--blue);margin-top:6px}
.sk-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin-bottom:11px}
.sk-panel.sk-alert{border-left:4px solid var(--out)}
.sk-panel.sk-notice{border-left:4px solid var(--gold)}
.sk-panel.sk-gold{border-left:5px solid var(--alert)}
.sk-scope{font-size:10.5px;color:#fff;background:var(--sub2);border-radius:10px;padding:1px 9px;display:inline-block;margin-bottom:8px}
.sk-scope select.sk-inline{width:auto;display:inline;font-size:11px;padding:0 4px;margin:0;border:0;border-radius:6px;color:var(--ink);background:#fff}
.sk-item{border:1px solid var(--line);border-left-width:4px;border-radius:8px;padding:7px 10px;margin:6px 0;font-size:12.5px;background:#fff;overflow:hidden}
.sk-item .m{font-size:10.5px;color:var(--slate)}
.sk-item.p60{border-left-color:var(--sub2)}.sk-item.p30{border-left-color:var(--gold)}.sk-item.p7{border-left-color:var(--out)}
/* 🎙️ 支援記録（2026-09-22） */
.sk-record-block{border:1px solid var(--line);border-radius:10px;padding:10px;margin:10px 0;background:#fafcff}
.sk-record-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px;color:var(--blue)}
.sk-clamp{max-height:4.6em;overflow:hidden}
.sk-copyfields{margin-top:8px;border-top:1px dashed var(--line,#dde3ee);padding-top:8px}
.sk-copygroup{margin:14px 0 4px;font-weight:700;color:var(--blue);font-size:13px}
.sk-empty{opacity:.55}
.sk-label{display:block;font-size:12px;font-weight:700;color:var(--blue);margin-top:10px}
.sk-check{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;margin:12px 0}.sk-check input{width:auto!important;margin-top:3px!important}
.sk-record-preview{display:grid;gap:4px;margin:8px 0;padding:9px;background:#f6f8fc;border-radius:8px;white-space:pre-wrap}.sk-record-preview b{color:var(--blue);margin-top:4px}.sk-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.sk-question-list{display:grid;gap:7px;margin:10px 0}.sk-question-list>div{padding:8px 10px;border-left:4px solid var(--blue);background:#f6f8fc;border-radius:7px;font-size:12px}.sk-question-list span{display:block;color:var(--slate);font-size:11px;margin-top:2px}.sk textarea.sk-record-combined{min-height:150px;line-height:1.65}
.sk-date-search{display:grid;grid-template-columns:auto minmax(135px,1fr) auto auto;gap:6px;align-items:center}.sk-date-search input{margin:0!important}@media(max-width:540px){.sk-date-search{grid-template-columns:1fr 1fr}.sk-date-search input{grid-column:1/-1;grid-row:1}}
/* 支援記録：種別の切り替え（📝日報／📊アセスメント／📋個別支援計画／📅モニタリング） */
.sk-seg{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:8px 0}
/* 🎙️支援タブの入口。本部の⚙️管理メニュー（.adminmenu）と同じ見た目にそろえてある */
.sk-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px;margin-top:4px}
.sk-menu-item{display:flex;gap:11px;align-items:flex-start;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 13px;width:100%}
.sk-menu-item:hover{border-color:var(--blue);background:#f7f9fd}
.sk-menu-item .ic{font-size:21px;line-height:1.1}
.sk-menu-item .tx{display:flex;flex-direction:column;gap:3px}
.sk-menu-item .tx b{font-size:13.5px}
.sk-menu-item .tx .d{font-size:11.5px;color:var(--slate);line-height:1.6}
.sk-menu-item .tx .m{font-size:11px;color:var(--blue)}
/* 種別を選んだあとの見出し */
.sk-scope2{font-size:13px;font-weight:700;color:var(--blue);margin:9px 0 7px}
/* 支援記録の順送り（2026-09-29 本部「70代の人が触っても分かるように」）：大きめの字・1画面に1つの質問 */
.sk-easy{font-size:14px}
.sk-easy .sk-easy-q{font-size:15px;line-height:1.7;margin:2px 0 10px}
.sk-easy .sk-btn.wide{min-height:52px;font-size:16px;font-weight:700}
.sk-easy .sk-btn.ghost{min-height:40px;font-size:14px}
.sk-easy .sk-chip{font-size:14px;padding:9px 14px}
.sk-easy textarea,.sk-easy input,.sk-easy select{font-size:16px}
.sk-easy .sk-record-head b{font-size:14px}
.sk-easy .sk-label{font-size:13px}
.sk-easy .sk-check{font-size:14px}.sk-easy .sk-check input{width:20px!important;height:20px}
.sk-steps{display:flex;gap:6px;margin:6px 0 10px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.sk-stepdot{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--slate);background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;white-space:nowrap}
.sk-stepdot .n{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--line);color:#fff;font-weight:700;font-size:12px}
.sk-stepdot.now{border-color:var(--blue);color:var(--blue);font-weight:700}.sk-stepdot.now .n{background:var(--blue)}
.sk-stepdot.done{color:var(--blue)}.sk-stepdot.done .n{background:var(--blue);opacity:.55}
.sk-easy-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
/* 録音中の覆い（支援記録）。画面の上に固定して質問を見せ続ける。2026-09-30 */
.sk-rec-overlay{position:fixed;top:0;left:0;right:0;z-index:60;background:#fff;border-bottom:3px solid var(--blue);box-shadow:0 6px 18px rgba(0,0,0,.18);padding:10px 12px 12px;max-height:82vh;overflow:auto;-webkit-overflow-scrolling:touch}
.sk-rec-head{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--blue);margin-bottom:6px}
.sk-rec-dot{width:12px;height:12px;border-radius:50%;background:#d23c3c;animation:sk-rec-blink 1s infinite}
@keyframes sk-rec-blink{0%,100%{opacity:1}50%{opacity:.25}}
.sk-rec-overlay .sk-question-list{margin:6px 0}.sk-rec-overlay .sk-question-list>div{font-size:13px}.sk-rec-overlay .sk-question-list span{font-size:12px}
.sk-rec-live{font-size:14px;line-height:1.6;color:var(--ink);background:#f6f8fc;border-radius:8px;padding:8px 10px;margin:8px 0;min-height:44px}
.sk-rec-overlay .sk-btn.wide{min-height:48px;font-size:16px;font-weight:700}
.sk-due{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6}
.sk-due:last-of-type{border-bottom:0}.sk-due>div{flex:1;min-width:0}.sk-due>div b{font-size:15px}.sk-due .sk-btn{flex:0 0 auto;white-space:nowrap}
/* 「言葉＋短い説明」で選ぶ5段階（どれだけ手を貸したか） */
.sk-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px;margin:4px 0}
.sk-level{font:inherit;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 6px;text-align:center;cursor:pointer;line-height:1.35}
.sk-level b{display:block;font-size:15px;color:var(--ink)}
.sk-level small{display:block;font-size:11.5px;color:var(--slate);margin-top:2px}
.sk-level.on{border-color:var(--blue);background:#eef3fb;box-shadow:inset 0 0 0 1px var(--blue)}.sk-level.on b{color:var(--blue)}
.sk-easy-menu .sk-menu-item{padding:14px 15px;min-height:64px}
/* 🎬 支援メニューのいちばん上に置くデモの帯（2026-10-06 本部「探しづらい」）。
   記録の種類（＝書くもの）と並べず、1本だけ色を付けて切り離す */
/* 💬 そだちの目標ごとのコメント（2026-10-06）。⚠ 社内だけ。数字のとなりに「なぜ」を残す場所 */
.sd-notes{margin-top:10px}
.sd-notes>summary .n{margin-left:8px;font-size:11px;color:var(--blue)}
.sd-note{border-left:3px solid var(--blue);white-space:normal}
.sd-note .sk-mini{margin-bottom:4px}
.sk-btn.xs{min-height:24px;padding:2px 8px;font-size:11px}
.sd-noteform{margin-top:8px}
.sd-noteinput{width:100%;font-size:16px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;resize:vertical}
.sk-demobar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#f2f6fd;border:1px solid var(--blue);border-radius:12px;padding:13px 14px;margin:0 0 12px}
.sk-demobar .sk-btn{flex:0 0 auto;min-height:48px;font-size:16px;font-weight:700;white-space:nowrap}
.sk-demobar .d{flex:1 1 260px;font-size:12.5px;color:var(--slate);line-height:1.65}
.sk-easy-menu .sk-menu-item .ic{font-size:26px}
.sk-easy-menu .sk-menu-item .tx b{font-size:16px}
.sk-easy-menu .sk-menu-item .tx .d{font-size:13px}
.sk-easy-menu .sk-menu-item .tx .m{font-size:12px}
.sk-seg button{font-size:11px;font-weight:700;padding:8px 2px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--slate);cursor:pointer;line-height:1.35}
.sk-seg button.on{background:var(--blue);border-color:var(--blue);color:#fff}
.sk-chips{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0}
.sk-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer}
.sk-chip.on{background:#eef3fb;border-color:var(--blue);color:var(--blue);font-weight:700}
button.sk-chip{font:inherit;font-size:12px;line-height:1.2}   /* 児童を選ぶチップ（支援記録） */
#sr-kids .sk-mini{margin:8px 0 3px}
.sk-chip input{width:auto!important;margin:0!important}
.sk-warns{display:grid;gap:4px;margin:8px 0;padding:9px 11px;background:#fdf6e6;border:1px solid var(--gold);border-radius:9px;font-size:11.5px;line-height:1.6;color:var(--st-yellow)}
.sk-item.done{opacity:.55}.sk-item.done .tx{text-decoration:line-through}
.sk-link{cursor:pointer}.sk-link:hover{background:#f7f9fc}
.sk-chk{float:right;width:18px;height:18px;cursor:pointer;margin:2px 0 4px 8px}
.sk-badge{display:inline-block;color:#fff;border-radius:4px;padding:0 6px;font-size:9.5px;margin-right:4px;vertical-align:1px}
.sk-badge.b-r{background:var(--out)}.sk-badge.b-o{background:var(--gold)}.sk-badge.b-g{background:var(--in)}.sk-badge.b-p{background:var(--purple)}.sk-badge.b-b{background:var(--blue)}.sk-badge.gr{background:var(--slate)}
.sk-badges{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 0}
.sk-stats{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.sk-stat{flex:1;min-width:92px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;text-align:center}
.sk-stat .v{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.sk-stat .l{font-size:9.5px;color:var(--slate)}
.sk-stat .d{font-size:9.5px;color:var(--slate);font-variant-numeric:tabular-nums}
.sk-stat.warn .v{color:var(--out)}.sk-stat.ok .v{color:var(--in)}
.sk-btn{border:none;border-radius:7px;padding:6px 12px;font-size:11.5px;cursor:pointer;font-family:inherit;color:#fff;margin:4px 4px 0 0;background:var(--slate)}
.sk-btn.g{background:var(--in)}.sk-btn.o{background:var(--gold)}.sk-btn.gr{background:var(--slate)}.sk-btn.bl{background:var(--blue)}
.sk-btn.wide{width:100%;padding:11px;font-size:14px;margin:8px 0 0}
.sk-two{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 0}
.sk-two .sk-btn{width:100%;padding:11px;font-size:14px;margin:0}
@media(max-width:360px){.sk-two{grid-template-columns:1fr}}
.sk-bar{height:6px;border-radius:3px;background:#e8ecf3;margin:4px 0;overflow:hidden}
.sk-bar span{display:block;height:100%;background:var(--blue)}
.sk-btn.sm{padding:2px 8px;font-size:10.5px}
.sk-btn.qa{background:var(--blue);margin-bottom:6px}
.sk-btn:disabled{opacity:.5}
.sk-card30{background:linear-gradient(135deg,#3d5a99,#4a7ba6);color:#fff;border-radius:12px;padding:13px 15px;margin-bottom:11px}
.sk-card30 .d{font-size:10px;opacity:.8}.sk-card30 .t{font-weight:700;font-size:14.5px;margin:2px 0}.sk-card30 .b{font-size:12px;line-height:1.7}
.sk-note{font-size:10.5px;color:var(--slate);margin-top:6px;line-height:1.6}
.sk-note.b{font-weight:700;color:var(--ink);font-size:11px}
.sk-sub{font-size:11px;color:var(--slate);font-weight:400}
.sk-mini{font-size:11px !important;color:var(--slate) !important}
.sk-sum.g{color:var(--in) !important;font-weight:700;font-size:13px !important}.sk-sum.o{color:var(--gold) !important;font-weight:700;font-size:13px !important}
.sk-feed{font-size:12px;border-bottom:1px dashed var(--line);padding:6px 0}
.sk-feed .m{font-size:10.5px;color:var(--slate)}
.sk-log{font-size:11px;background:#fdf6ec;border-radius:6px;padding:4px 8px;margin:4px 0;white-space:pre-wrap}
.sk-log.ok{background:#eef4ee}.sk-log.bad{background:#f8e2de;color:var(--out)}
.sk-quote{font-size:12.5px;white-space:pre-wrap;background:#faf7ef;border-radius:8px;padding:8px 10px}
.sk-grow{margin-top:8px;font-size:12px;background:#f6f2ea;border-radius:8px;padding:7px 10px;line-height:1.9}.sk-grow.ok{background:#eef4ee}
.sk-q{font-size:14px;margin:4px 0 10px;font-weight:600}
.sk-moods{display:flex;gap:8px;margin:8px 0}
.sk-moods button{font-size:26px;border:2px solid transparent;border-radius:10px;padding:2px 6px}
.sk-moods button.on{border-color:var(--blue);background:#eef2fa}
.sk-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.sk-chips button{font-size:12px;background:#fff;border:1px solid var(--grey);border-radius:999px;padding:5px 11px}
.sk-row{display:flex;gap:6px}.sk-row>*{flex:1}
/* 区分の切り替えは折り返さず1行で横スクロール（本部の nav.subtabs と同じ考え方。2026-09-26） */
.sk-pills{display:flex;gap:5px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 6px;padding-bottom:2px;scrollbar-width:thin}
.sk-pills button{flex:none}
.sk-pills button{border-radius:999px;padding:5px 11px;font-size:12px;background:#fff;border:1px solid var(--line);color:var(--slate)}
.sk-pills button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}
.sk-embedded{max-width:720px}
.sk-layers{display:flex;gap:6px;margin-bottom:8px}
.sk-layers button{flex:1;position:relative;border-radius:10px;padding:10px 4px;font-weight:700;font-size:13px;background:#dde4ee;color:var(--blue)}
.sk-layers button.staff{background:#e2ebe2;color:var(--in)}
.sk-layers button.on.owner{background:var(--blue);color:#fff}.sk-layers button.on.staff{background:var(--in);color:#fff}
/* 話題タグは13種あるので、2段に折り返さず1行で横スクロールする（2026-09-26） */
.sk-topics{display:flex;gap:5px;margin:0 0 8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 0 4px;scrollbar-width:thin}
.sk-topics button{flex:none;position:relative;font-size:12px;padding:5px 10px;border-radius:7px;background:var(--sub1);color:#fff}
.sk-topics button.on{font-weight:700}
.sk-layers .n,.sk-topics .n{position:absolute;top:-6px;right:-6px;background:#d63636;color:#fff;border-radius:12px;font-size:9px;min-width:15px;height:15px;line-height:15px;padding:0 3px;text-align:center}
.sk-urgent{color:#fff;background:var(--out);border-radius:8px;padding:6px 10px;margin-bottom:6px;font-weight:700;font-size:12px}
.sk-roomhead{color:#fff;border-radius:12px 12px 0 0;padding:9px 14px;font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sk-roomhead span:last-of-type{margin-left:auto;font-weight:400;font-size:10.5px;opacity:.85}
.sk-members{display:flex;gap:6px 5px;flex-wrap:wrap;align-items:flex-start;background:#fff;border:2px solid;border-top:none;padding:7px 10px 5px}
.sk-members>.sk-sub{font-size:10px;padding-top:7px}
.sk-members .av{display:flex;flex-direction:column;align-items:center;width:38px}
.sk-members .av span{width:27px;height:27px;border-radius:50%;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--slate)}
.sk-members .av span.hq{background:var(--blue)}.sk-members .av span.ow{background:var(--alert)}.sk-members .av span.st{background:var(--in)}
.sk-members .av.pend{opacity:.45}
.sk-members .av small{font-size:8.5px;color:var(--slate);max-width:38px;overflow:hidden;white-space:nowrap}
.sk-older{background:#fff;border:2px solid;border-top:none;padding:2px 10px}
.sk-older summary{font-size:11.5px !important;color:var(--slate) !important;padding:4px 0;margin:0 !important}
.sk-chatbox{max-height:52vh;overflow-y:auto;border:2px solid;border-top:none;border-radius:0 0 12px 12px;padding:10px 12px;margin-bottom:8px}
.sk-msg{margin:7px 0}
.sk-msg.mine{text-align:right}
.sk-msg .h{font-size:10px;color:var(--slate)}
.sk-msg .bubble{display:inline-block;background:#fff;border:1px solid var(--grey);border-radius:12px;padding:6px 12px;max-width:85%;text-align:left;font-size:13px;white-space:pre-wrap;word-break:break-word;cursor:pointer;user-select:text}
.sk-msg.mine .bubble{background:#dbe7fb}
.sk-tag{display:inline-block;font-size:9px;border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--slate);background:#fff}
.sk-tag.y{background:#fff3cd;border-color:#e0b93d;color:#7a5c1e}
.sk-rx{border:none;border-radius:10px;padding:2px 9px;font-size:11.5px;margin-top:2px;background:#eef1f5;color:var(--slate)}
.sk-rx.on{background:#ffe1a8;color:#8a5a00;font-weight:700}
.sk b.warn,.sk .warn{color:var(--out)}

/* ⚙️ 管理タブ：利用者一覧 */
.row.admin-row{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:8px 2px;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.row.admin-row .t{flex:1;min-width:14em;font-size:13px}
.row.admin-row .t .sub{font-size:11.5px;color:var(--slate)}
.row.admin-row .s{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:7em}
.row.admin-row .s .sub{font-size:10.5px;color:var(--slate)}
.row.admin-row .a{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.btn.sm{padding:4px 10px;font-size:11.5px}
.subtabs.tops button{font-weight:700}
/* 本部が事業所チャットで使うClaudeの返信案 */
.sk-draft{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0;font-size:12.5px}
.sk-draft .t{font-size:11px;color:var(--blue);font-weight:700;margin-bottom:2px}
.sk-draft .b{white-space:pre-wrap}
.sk-draft .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.sk-draft .acts .sk-btn{margin:0}
/* 本部だけの道具（返信案・カルテ）は1行にまとめる。文字とボタンが混ざらないように */
.sk-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
/* 決定のボタンは1行にまとめる（📥申請・判断など）。sk-btn の余白は行側で持つ */
.sk-item .acts,.sk-panel .acts,.sk-chk .acts,details .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.sk-item .acts .sk-btn,.sk-panel .acts .sk-btn,.sk-chk .acts .sk-btn,details .acts .sk-btn{margin:0}
.adminmenu-item.quiet{opacity:.6}
.sk-panel.flash{animation:rxflash 1.4s ease-out}
.sk-tools .sk-btn{margin:0}
.sk-btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);text-decoration:none;display:inline-block}

/* ⚙️ 管理タブのメニュー */
.adminmenu{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:6px}
.adminmenu-item{display:flex;gap:12px;align-items:flex-start;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;width:100%}
.adminmenu-item:hover{border-color:var(--blue);background:#f7f9fd}
.adminmenu-item .ic{font-size:22px;line-height:1.1}
.adminmenu-item .tx{display:flex;flex-direction:column;gap:3px}
.adminmenu-item .tx b{font-size:14px}
.adminmenu-item .tx .d{font-size:11.5px;color:var(--slate);line-height:1.6}
.adminmenu-item .tx .m{font-size:11px;color:var(--blue)}
.quote{background:#faf7ef;border-radius:8px;padding:9px 12px;font-size:13.5px;margin:8px 0;white-space:pre-wrap}
.quote .sub{font-size:11px;color:var(--slate);margin-top:4px}
/* ⚠ 上の .backlink（チップ）が正。ここで色と字だけ上書きしていた古い指定は残さない */

/* 送信取り消し */
.msg .bubble.deleted,.sk-msg .bubble.deleted{background:var(--mist);border-color:var(--line);color:var(--slate);font-size:12px}
.msg .unsend,.sk-unsend{font-size:10.5px;color:var(--slate);text-decoration:underline;margin-top:2px;display:inline-block}
.msg .unsend:hover,.sk-unsend:hover{color:var(--out)}

/* 資料の添付（2026-09-16）。チャット・申請・監査・お知らせで共通に使う */
.att{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0}
.att .chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;border:1px solid var(--line);background:#fff;border-radius:999px;
  padding:3px 10px;font-size:11.5px;color:var(--blue);cursor:pointer;text-align:left}
.att .chip:hover{border-color:var(--blue);background:#f2f6fd}
.att .chip b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14em}
.att .chip small{color:var(--slate)}
.att .chip.rm{color:var(--out);border-style:dashed}
/* 📷 写真は中身を出す（2026-10-04）。書類のチップと同じ .att の中に並ぶが、枠も余白も持たない */
.att .chip.ph{padding:0;border-radius:10px;overflow:hidden;background:#eef2f8;max-width:100%}
.att .chip.ph .nm{padding:6px 10px;font-size:11.5px;color:var(--slate)}
.att img.thumb{max-width:min(240px,62vw);max-height:200px;border-radius:9px;border:1px solid var(--line);display:block;cursor:pointer}
.att .chip.ph img.thumb{border:0;border-radius:10px}
.attpick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:5px 0;font-size:12px;color:var(--slate)}
.attpick input[type=file]{font-size:11.5px;max-width:100%}
.msg .att,.sk-msg .att{justify-content:flex-start}
.sk-msg.mine .att{justify-content:flex-end}
/* 招待の仮パスワード表示（2026-09-17）。描き直しで消えないよう body 直下に重ねて出す */
.cred-overlay{position:fixed;inset:0;background:rgba(20,30,50,.5);z-index:60;display:grid;place-items:center;padding:12px}
.credbox{width:100%;max-width:560px;background:#fff;border-radius:12px;padding:16px 18px;box-shadow:0 20px 60px rgba(0,0,0,.35);border-top:4px solid var(--blue)}
.credbox h3{margin:0 0 6px;font-size:14px;color:var(--blue)}
.credbox pre{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;white-space:pre-wrap;word-break:break-all;font-size:13px;user-select:all;margin:8px 0}
.credrow{display:flex;gap:8px;justify-content:flex-end}
/* 複数校に紐づくFCアカウントの校切り替え（2026-09-17） */
header.top .hselect{font-size:12px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.15);color:#fff;border-radius:6px;padding:3px 6px;max-width:11em}
header.top .hselect option{color:var(--ink)}
/* 本部 → 事業所アプリの表示切り替え（2026-09-17） */
.previewbar{position:sticky;top:0;z-index:22;background:#fff4d6;color:#6b4e00;border-bottom:1px solid #f0d58a;font-size:12.5px;padding:7px 12px;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.pick-overlay{position:fixed;inset:0;background:rgba(20,30,50,.5);z-index:60;display:grid;place-items:center;padding:12px}
.pickbox{width:100%;max-width:520px;max-height:84vh;display:flex;flex-direction:column;gap:8px;background:#fff;border-radius:12px;padding:16px 18px;box-shadow:0 20px 60px rgba(0,0,0,.35);border-top:4px solid var(--blue)}
.pickbox h3{margin:0;font-size:14px;color:var(--blue)}
.pickbox input{border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:13px}
.picklist{overflow:auto;display:flex;flex-direction:column;gap:4px}
.pickhd{font-size:11.5px;color:var(--slate);margin-top:6px}
.pickitem{display:flex;justify-content:space-between;gap:8px;text-align:left;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;font-size:13px;cursor:pointer}
.pickitem:hover{border-color:var(--blue);background:#f2f6fd}
.pickitem small{color:var(--slate);font-size:11px}
/* 数字タブ（SAKIMAWARI 準拠・2026-09-18） */
.sk-per{font-size:12.5px;color:var(--blue);font-weight:700;font-variant-numeric:tabular-nums;margin-left:6px}
.sk-alerts{margin-top:8px;font-size:12px;line-height:1.9;color:#8a3b3b}
.sk-alerts div+div{margin-top:2px}
/* メンバーのMTGカレンダー（Googleカレンダー準拠・2026-09-18） */
.gcal-hd{display:flex;align-items:center;gap:6px;margin:6px 0 8px}
.gcal-hd b{font-size:15px}
.gcal-hd .sp{flex:1}
.gcal-nav{width:28px;height:28px;border-radius:50%;border:0;background:transparent;font-size:16px;color:var(--slate)}
.gcal-nav:hover{background:var(--mist)}
.gcal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;max-width:340px;justify-items:center}
.gcal-w{width:40px;text-align:center;font-size:11px;color:var(--slate);padding:4px 0}
.gcal-d{position:relative;width:40px;height:40px;border:0;background:transparent;border-radius:50%;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer}
.gcal-d:hover{background:var(--mist)}
.gcal-d.other{color:var(--grey)}
.gcal-d.today{color:var(--blue);font-weight:700}
.gcal-d.sel{background:var(--blue);color:#fff;font-weight:600}
.gcal-dot{position:absolute;left:50%;transform:translateX(-50%);bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--blue)}
.gcal-d.sel .gcal-dot{background:#fff}
.gcal-day{display:flex;margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:420px}
.gcal-axis{flex:0 0 52px;position:sticky;left:0;background:#fff;z-index:2;border-right:1px solid var(--line)}
.gcal-corner{height:28px;font-size:9.5px;color:var(--slate);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line)}
.gcal-hour{height:48px;font-size:10px;color:var(--slate);text-align:right;padding-right:6px;transform:translateY(-6px)}
.gcal-col{flex:1;min-width:130px;border-right:1px solid var(--line)}
.gcal-colhd{height:28px;display:flex;align-items:center;justify-content:center;font-size:11.5px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}
.gcal-colhd.today{color:var(--blue);font-weight:700}
.gcal-area{position:relative;height:768px}
.gcal-line{position:absolute;left:0;right:0;height:1px;background:var(--line)}
.gcal-ev{position:absolute;left:3px;right:3px;border-radius:6px;padding:3px 5px;font-size:10.5px;line-height:1.3;overflow:hidden;border-left:3px solid}
.gcal-ev b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcal-ev small{color:inherit;opacity:.75}
.gcal-ev.app{background:#e8effb;border-color:var(--blue);color:#1f3a70}
.gcal-ev.kida{background:#fdf3d8;border-color:#e0a800;color:#6b4e00}
.gcal-ev.busy{background:#f0f1f4;border-color:var(--grey);color:var(--slate)}
/* ふさがっている時間。何の予定かは出さず、斜線で塞ぐだけ（2026-09-30 本部指示） */
.gcal-ev.mask{background:repeating-linear-gradient(45deg,#e6e8ee,#e6e8ee 5px,#dcdfe6 5px,#dcdfe6 10px);border-color:var(--grey);border-left-color:var(--grey);cursor:not-allowed}
/* 選べない時間帯（9:00より前・19:00以降） */
.gcal-off{position:absolute;left:0;right:0;background:#f4f5f7;opacity:.85;pointer-events:none}
.gcal-bar{display:flex;gap:6px;align-items:center;margin:10px 0 0;flex-wrap:wrap}
.gcal-day{scroll-snap-type:x proximity}
.gcal-col{scroll-snap-align:start}
.sk-chips button.on{background:var(--blue);color:#fff;border-color:var(--blue)}

/* 絵文字リアクションと返信（2026-09-23）。本部の画面（.msg）と事業所アプリ（.sk-msg）で同じ見た目にする */
.rx-row,.sk-rxrow{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:3px;position:relative}
.sk-msg.mine .sk-rxrow,.msg.mine .rx-row{justify-content:flex-end}
.rx,.sk-rx{border:1px solid var(--line);background:#fff;border-radius:999px;padding:1px 9px;font-size:11.5px;color:var(--slate);line-height:1.7;cursor:pointer}
.rx:hover,.sk-rx:hover{border-color:var(--blue);color:var(--blue)}
.rx.on,.sk-rx.on{background:#fff3d6;border-color:#e8c46a;color:#8a5a00;font-weight:700}
.rx.add,.sk-rx.add{color:var(--sub1)}
/* ⚠ 絵文字の選択は「浮かせない」。チャット欄は overflow:auto なので、浮かせると上や横にはみ出したぶんが
   切られて見えなくなる（2026-09-23 に本部内チャットで実際に見えなくなった）。行の中に並べる */
.rx-pick,.sk-rxpick{display:flex;gap:2px;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:2px 6px;box-shadow:0 2px 8px rgba(20,30,50,.12)}
.rx-pick button,.sk-rxpick button{border:none;background:none;font-size:17px;line-height:1;padding:3px 4px;border-radius:7px;cursor:pointer}
.rx-pick button:hover,.sk-rxpick button:hover{background:var(--mist)}
/* 返信の引用（押すと元の発言へ飛ぶ） */
.msg .reply-q,.sk-quote{display:block;max-width:85%;text-align:left;border:none;border-left:3px solid var(--blue);background:#f3f6fb;
  border-radius:0 8px 8px 0;padding:3px 9px;margin-bottom:2px;font-size:11.5px;color:var(--slate);cursor:pointer;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg.mine .reply-q,.sk-msg.mine .sk-quote{margin-left:auto}
.msg .reply-q:hover,.sk-quote:hover{background:#e8eefa}
.msg .reply-q b,.sk-quote b{color:var(--blue);font-weight:700}
.msg.flash .bubble,.sk-msg.flash .bubble{animation:rxflash 1.2s ease-out}
@keyframes rxflash{0%{box-shadow:0 0 0 3px #ffd97a}100%{box-shadow:0 0 0 3px rgba(255,217,122,0)}}
/* 入力欄の上に出す「◯◯に返信中」 */
.replybar,.sk-replybar{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--slate);background:#f3f6fb;
  border-left:3px solid var(--blue);border-radius:0 8px 8px 0;padding:4px 9px;margin:4px 0}
.replybar .q,.sk-replybar{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.replybar .x,.sk-replybar button{border:none;background:none;color:var(--slate);font-size:13px;cursor:pointer;padding:0 2px;flex:none}
.replybar .x:hover,.sk-replybar button:hover{color:var(--out)}
/* 行そのものは幅いっぱいにする。吹き出しの幅に引きずられると、絵文字の選択や引用が右にはみ出して
   .msgs（overflow:auto）に切られてしまう（2026-09-23）。吹き出しの折り返し幅は従来どおり88% */
.msgs .msg:not(.day){align-self:stretch;max-width:100%}
.msgs .msg:not(.day) .bubble{max-width:88%}
.msgs .msg .reply-q{max-width:88%}
/* @で宛先を選ぶ（2026-09-23）。⚠ 浮かせない＝入力欄の下にそのまま出す（overflow:auto に切られないため） */
.mentions{display:flex;flex-direction:column;gap:2px;margin-top:4px;border:1px solid var(--line);border-radius:9px;
  background:#fff;padding:4px;max-height:168px;overflow:auto;box-shadow:0 2px 8px rgba(20,30,50,.10)}
.mentions .m{text-align:left;border:none;background:none;border-radius:7px;padding:6px 9px;font-size:13px;color:var(--ink);cursor:pointer}
.mentions .m.on,.mentions .m:hover{background:#eef2fa;color:var(--blue);font-weight:600}
.mention{color:var(--blue);font-weight:700;background:#eef2fa;border-radius:5px;padding:0 3px}
/* @で名指しされた発言（2026-09-23）。自分宛てだけ左に赤い線と「あなた宛て」を出す */
.sk-tag.r{background:#fdecec;border-color:#e0a0a0;color:#a33}
.msg.tome .bubble,.sk-msg.tome .bubble{border-left:3px solid var(--out);background:#fff7f7}
.msgs .msg.tome .h b,.sk-msg.tome .h{color:var(--out)}

/* ホームの折りたたみ（2026-09-24）。上＝今日手を動かすもの、下＝眺める数字。
   中身は今までと同じカードをそのまま入れているだけ。 */
.home-fold{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin:10px 0}
.home-fold>summary{cursor:pointer;font-size:12.5px;color:var(--blue);font-weight:700;list-style:none}
.home-fold>summary::-webkit-details-marker{display:none}
.home-fold>summary::before{content:"▸ "}
.home-fold[open]>summary::before{content:"▾ "}
.home-fold[open]>summary{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--mist)}
.home-fold>.card,.home-fold>.tiles{margin-left:0;margin-right:0}

/* ---------- 🛍️ 申請タブのギャラリー（2026-09-26。Notionのギャラリービューの見せ方に合わせた） ----------
   カード＝上に絵（区分の絵文字）、下に品目名と1行の説明。押すとその品目の操作になる。 */
.gal-head{display:flex;align-items:center;gap:8px;margin:16px 0 8px}
.gal-head .chip{font-size:12.5px;font-weight:700;background:var(--mist);color:var(--ink);border-radius:6px;padding:3px 9px}
.gal-head .n{font-size:11.5px;color:var(--slate)}
.gal-head .note{margin:0 0 0 auto;font-size:11px;text-align:right}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}
.gal-card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;text-align:left;padding:0}
.gal-card .thumb{height:96px;display:grid;place-items:center;font-size:38px;background:var(--mist);border-bottom:1px solid var(--line);position:relative}
.gal-card .thumb .st{position:absolute;top:6px;left:6px;font-size:9.5px;border-radius:4px;padding:1px 6px;background:rgba(255,255,255,.9);color:var(--slate)}
.gal-card .body{padding:9px 11px 11px;display:flex;flex-direction:column;gap:3px;flex:1}
.gal-card .t{font-size:13px;font-weight:700;line-height:1.35}
.gal-card .d{font-size:11px;color:var(--slate);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gal-card .m{font-size:10.5px;color:var(--slate);font-variant-numeric:tabular-nums}
.gal-card .acts{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:6px}
.gal-card .acts .sk-btn{margin:0}
.gal-card:hover{border-color:var(--grey)}
.gal-card.on{border-color:var(--blue);box-shadow:0 0 0 2px #dde4ee}
.gal-card.late .thumb{background:var(--st-red-bg)}
.gal-card.soon .thumb{background:var(--st-yellow-bg)}
.gal-card.done .thumb{background:#eef4ee}
.gal-card.done .t{color:var(--slate)}
@media(max-width:400px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gal-card .thumb{height:80px;font-size:32px}}
/* サイズごとの枚数（注文依頼書と同じ形） */
.sizegrid{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.sizegrid label{font-size:11px;color:var(--slate);text-align:center;display:block}
.sizegrid input{width:62px !important;text-align:right;margin:2px 0 0 !important}
.sizegrid .tot{align-self:flex-end;font-size:12px;color:var(--ink);font-weight:700;padding-bottom:8px}

/* =====================================================================
   会話内の検索と LINE 風の画面（2026-09-30）。本部の画面（.msg / .chatwrap）と事業所アプリ（.sk-msg / .sk-chatwrap）で同じ見た目
   ===================================================================== */
/* 枠を画面の高さに合わせ、上＝部屋の名前・中＝会話（ここだけスクロール）・下＝入力欄。高さは fitChat() が入れる */
.chatwrap.fit,.sk-chatwrap{display:flex;flex-direction:column;min-height:0}
.chatwrap.fit>*,.sk-chatwrap>*{flex:none}
.chatwrap.fit>.msgswrap,.sk-chatwrap>.sk-chatboxwrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
/* ⚠ 保険（2026-10-01）。高さは JS（fitChat）が入れるが、入らなかったときに max-height:none だと
   会話欄が中身ぶん伸びて、入力欄も🤖のボタンも画面の下へ消える。入るまでは 58vh で止めておく。 */
.chatwrap.fit .msgs,.sk-chatwrap .sk-chatbox{flex:1 1 auto;min-height:260px;max-height:58vh;margin-bottom:0}
[data-fit-chat="ok"] .msgs,[data-fit-chat="ok"] .sk-chatbox{max-height:none}
/* 入力欄は下に固定。長くなったら入力欄の中だけスクロール（会話欄を潰さない） */
.chatwrap.fit .composer{max-height:40%;overflow:auto;margin-top:8px;padding:8px 10px}
.sk-chatwrap .sk-panel{max-height:40%;overflow:auto;margin:8px 0 0;padding:8px 10px}
/* 🤖 返信案と「Claudeと相談」（2026-10-01）。会話欄と入れ替えて同じ大きさで出す。
   ⚠ 作成欄（上の max-height:40%・overflow:auto）の中に置かない＝相談欄も送信ボタンも切られて見えなくなる。 */
.draftwrap,.sk-draftwrap{display:none}
.drafting>.draftwrap,.drafting>.sk-draftwrap{display:flex;flex-direction:column;min-height:0;gap:6px}
/* 案を見ている間は会話欄と作成欄を畳む＝狭い画面でも相談欄まで届く（案を採れば会話へ戻る） */
.chatwrap.fit.drafting>.msgswrap,.sk-chatwrap.drafting>.sk-chatboxwrap,
.chatwrap.fit.drafting>.composer,.sk-chatwrap.drafting>.sk-compose,
.sk-chatwrap.drafting>.sk-members-d,.sk-chatwrap.drafting>.sk-topics{display:none}
.chatwrap.fit.drafting>.draftwrap,.sk-chatwrap.drafting>.sk-draftwrap{flex:1 1 auto}
.drafting>.draftwrap>.drafthost,.drafting>.sk-draftwrap>#sk-drafts{flex:1 1 auto;min-height:0;overflow:auto;display:grid;gap:8px;align-content:start}
.draftwrap>.backlink,.sk-draftwrap>.backlink{flex:none;align-self:flex-start;margin:0}
.msgswrap,.sk-chatboxwrap{position:relative}
/* ⬇ 最新へ／新着 n件。会話欄の外（親）に置いてあるので overflow に切られない */
.tobottom{position:absolute;right:14px;bottom:12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--blue);font-weight:700;font-size:12px;padding:6px 12px;box-shadow:0 3px 10px rgba(20,30,50,.18);cursor:pointer;z-index:2}
.tobottom:hover{border-color:var(--blue)}
/* 🔍 見出しの右のボタンと、その下に出る検索バー（会話欄の外） */
.roomhead .sbtn,.sk-roomhead .sbtn{border:none;background:rgba(255,255,255,.22);color:#fff;border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer;flex:none;margin-left:6px}
.roomhead .sbtn:hover,.sk-roomhead .sbtn:hover{background:rgba(255,255,255,.4)}
.chatsearch{display:flex;align-items:center;gap:6px;background:#fff;border:2px solid var(--blue);border-top:0;padding:6px 10px}
.internal .chatsearch{border-color:var(--purple)}
.sk-chatwrap .chatsearch{border-color:var(--line);border-width:0 0 1px}
.chatsearch .ic{font-size:13px;flex:none}
.chatsearch input{flex:1;min-width:0;border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:13px;margin:0;width:auto}
.chatsearch .cnt{font-size:11.5px;color:var(--slate);white-space:nowrap;min-width:3.5em;text-align:center;font-variant-numeric:tabular-nums}
.chatsearch .nv,.chatsearch .x{border:1px solid var(--line);background:#fff;border-radius:7px;padding:3px 8px;font-size:12px;cursor:pointer;color:var(--ink);flex:none}
.chatsearch .nv:disabled{opacity:.4;cursor:default}
.chatsearch .x{border:none;color:var(--slate)}
.msg mark,.sk-msg mark{background:#ffe680;color:inherit;border-radius:3px;padding:0 1px}
.msg.cur .bubble,.sk-msg.cur .bubble{box-shadow:0 0 0 3px #ffb02e}
.msgs .more,.sk-chatbox .more{align-self:center;display:block;border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;font-size:11.5px;color:var(--blue);cursor:pointer;margin:2px auto 6px}
/* 受信箱の1行に置く検索欄 */
.inboxbar input[type=search]{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12.5px;min-width:11em;flex:1;background:#fff}
/* 吹き出しの横に時刻。同じ人の続けての発言は名前を省く（LINEと同じ）。日付は真ん中のチップ */
.msg .b,.sk-msg .b{display:flex;align-items:flex-end;gap:5px}
.msg.mine .b,.sk-msg.mine .b{flex-direction:row-reverse}
.msg .b .t,.sk-msg .b .t{font-size:9.5px;color:var(--slate);white-space:nowrap;flex:none;padding-bottom:2px;font-variant-numeric:tabular-nums}
.msg.cont,.sk-msg.cont{margin-top:-3px}
.msg.cont .h,.sk-msg.cont .h{display:none}
.msg.day span,.sk-msg.day span{background:rgba(40,60,100,.10);border-radius:999px;padding:2px 11px;font-size:11px;color:var(--slate)}
.sk-msg.day{text-align:center;margin:10px 0 4px}
/* 閲覧メンバーは畳んでおく（会話の場所を広く取る） */
.sk-members-d{background:#fff;border:2px solid;border-top:none;padding:0 10px}
.sk-members-d summary{font-size:11px !important;color:var(--slate) !important;padding:5px 0;margin:0 !important;cursor:pointer}
.sk-members-d .sk-members{border:none;padding:2px 0 6px}

/* 「＋ この中にいないお子さん」（2026-09-30）。児童を選ぶパネルの下に畳んである入口 */
.sk-newkid{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfd}
.sk-newkid input[type=text]{width:100%;box-sizing:border-box}
/* 入力欄は1行（話題・本文・送信）。縦に伸びる入力欄が会話欄を食っていた（2026-09-30 本部の指摘） */
.sendrow,.sk-sendrow{display:flex;gap:6px;align-items:flex-end}
.sendrow .tawrap,.sk-sendrow .tawrap{flex:1;min-width:0}
.sendrow textarea,.sk-sendrow textarea{margin:0;min-height:46px;max-height:180px;width:100%}
.sendrow .btn.send,.sk-sendrow .sk-btn.send{flex:none;margin:0;padding:12px 16px;font-size:13px;font-weight:700}
.sk-sendrow .sk-tagsel{flex:none;width:6.5em;margin:0;padding:11px 4px;font-size:12.5px}
.sk-chatwrap .attpick,.chatwrap.fit .attpick{margin:4px 0 0;font-size:11px;flex-wrap:nowrap}
.sk-chatwrap .attpick label,.chatwrap.fit .attpick>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.sk-chatwrap .attpick input[type=file],.chatwrap.fit .attpick input[type=file]{flex:none;max-width:55%}
.sk-chatwrap .sk-tools{margin-bottom:6px}
/* 受信箱で部屋を開いているときは会話の列を広くする */
.two.chat-open{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}

/* 🌱 そだち（社内だけ）。2026-10-02。既存の変数だけを使う＝新しい色を作らない */
.sd-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sd-matrix{border-collapse:collapse;width:100%;min-width:520px;font-size:12.5px}
.sd-matrix th,.sd-matrix td{border:1px solid var(--line);padding:6px 8px;text-align:center;font-variant-numeric:tabular-nums}
.sd-matrix thead th{background:#f4f6fa;color:var(--slate);font-size:11.5px;font-weight:600;white-space:nowrap}
.sd-matrix tbody th{text-align:left;font-weight:600;white-space:nowrap;background:#fafbfd}
.sd-matrix tbody th .m{display:block;font-weight:400;font-size:11px;color:var(--slate)}
.sd-matrix .sd-na{color:var(--sub1)}   /* ⚠ --mist だと空白に見えて「記録が無い」のか「画面の不具合」か分からない */
.sd-matrix .sd-up{background:#eef7f0;color:var(--in);font-weight:700}
.sd-matrix .sd-down{background:#fdf2f2;color:var(--out)}
.sd-matrix .sd-goal{background:#f7f4fb;color:var(--purple);font-weight:700}
.sd-ar{font-size:9px;vertical-align:1px}
/* 計画時 → いま → 目標。⚠ 矢印で繋ぐ＝3つの関係が一目で分かるように（2026-10-02） */
.sd-prog{display:flex;align-items:center;gap:8px;margin:10px 0 6px;font-size:11.5px;color:var(--slate);flex-wrap:wrap}
.sd-prog span{display:flex;flex-direction:column;line-height:1.25}
.sd-prog b{color:var(--ink);font-size:16px;font-variant-numeric:tabular-nums}
.sd-prog .sd-now b{color:var(--blue);font-size:19px}
.sd-prog .sd-to b{color:var(--purple)}
.sd-prog .sd-arrow{color:var(--grey);font-size:16px;align-self:center}
/* 伸び率のバー。⚠ 6pxだと見えないので太くし、いまの位置に数字を乗せる */
.sd-barwrap{margin:2px 0 10px}
.sd-bar{position:relative;height:12px;border-radius:6px;background:#e8ecf3;overflow:visible}
.sd-bar>span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--sub2),var(--blue))}
.sd-bar.done>span{background:linear-gradient(90deg,var(--in),#6fae73)}
.sd-bar>i{position:absolute;top:-3px;transform:translateX(-50%);max-width:none;font-style:normal;font-size:10.5px;font-weight:700;
  color:#fff;background:var(--blue);border-radius:9px;padding:1px 6px;white-space:nowrap}
.sd-bar.done>i{background:var(--in)}
/* 上がった月の行（励みになるところなので少しだけ強く出す） */
.sk-item.p-up{border-left:3px solid var(--in);background:#f3f9f5}

/* 🌱そだちのグラフ。⚠ 既定の .chart より線を太くする（毎月ながめるものなので読みやすさを優先） */
.sd-chart .act{stroke-width:2.6}
.sd-chart .tgt{stroke:var(--purple);stroke-width:1.8;stroke-dasharray:4 3}
.sd-chart .bp{stroke:var(--grey);stroke-width:1.5;stroke-dasharray:2 3}
.sd-chart text{font-size:10.5px}

/* 📣体験会の聴き取り・観察チェック。1行1問＋答えのボタンを横に（紙と同じ形）。2026-10-02 */
.sv-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.45}
.sv-row:last-of-type{border-bottom:0}
.sv-q{flex:1;min-width:0}
.sv-a{flex:0 0 auto;display:flex;gap:4px}
.sv-b{font:inherit;font-size:12px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 9px;cursor:pointer;color:var(--slate);white-space:nowrap}
.sv-b.on{border-color:var(--blue);background:#eef3fb;color:var(--blue);font-weight:700}
.sv-head{margin:12px 0 2px;font-weight:700;color:var(--blue)}
/* 観察チェックの○△×—は正方形にそろえる */
.sv-a .sv-b{min-width:34px;text-align:center}
/* 会話欄を長く（2026-10-02 本部「返信の欄をつぶさずに会話の欄をもっと長く」）：
   閲覧メンバー・🤖返信案・📇カルテは見出しの右の小さなボタンへ、添付は送信行の 📎 へ。部屋切替と話題の行は薄く */
.sk-chatwrap .sk-layers{margin-bottom:5px}
.sk-chatwrap .sk-layers button{padding:7px 4px;font-size:12.5px}
.sk-chatwrap .sk-topics{padding:3px 0 2px;margin-bottom:5px}
.sk-roomhead .sbtn{text-decoration:none;margin-left:4px}
.sk-members-d{background:#fff;border:2px solid;border-top:none;padding:4px 10px 0}
.sk-chatwrap .sk-panel{padding:6px 8px}
.sk-compose .attpick,.chatwrap.fit .composer .attpick{display:none}
.sendrow .btn.att,.sk-sendrow .sk-btn.att{flex:none;margin:0;padding:11px 10px;font-size:13px;background:#fff;border:1px solid var(--line);color:var(--ink)}

/* ── 🖨 印刷ビュー（2026-10-03。docs/要件-支援の予実管理.md §7）────────────
   ⚠ PDFのライブラリを入れない。**ブラウザの印刷 → PDFで保存**でまかなう
     （ビルド無しの構成で日本語フォントを埋め込むと崩れる）。
   ⚠ 自動ダウンロードはChromeに止められる。印刷ビューなら踏まない。 */
#sk-print{display:none}
body.printing #sk-print{display:block;position:fixed;inset:0;z-index:200;background:#fff;overflow:auto;padding:18px}
body.printing{overflow:hidden}
.pr-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:6px;margin-bottom:12px}
.pr-head h1{font-size:16px;margin:0}
.pr-head .pr-sub{font-size:12px;color:var(--slate)}
.pr-stamp{margin-left:auto;font-size:11px;border:1px solid var(--out);color:var(--out);border-radius:4px;padding:1px 6px}
.pr-row{display:flex;gap:10px;border-bottom:1px solid var(--line);padding:6px 0;font-size:12.5px;line-height:1.7}
.pr-row>.k{flex:0 0 150px;font-weight:700;color:var(--slate)}
.pr-row>.v{flex:1;white-space:pre-wrap}
.pr-foot{margin-top:14px;font-size:11px;color:var(--slate);border-top:1px solid var(--line);padding-top:6px}
.pr-bar{position:sticky;top:0;background:#fff;display:flex;gap:8px;padding-bottom:10px;margin-bottom:4px}
.pr-table{width:100%;border-collapse:collapse;font-size:11.5px;font-variant-numeric:tabular-nums}
.pr-table th,.pr-table td{border:1px solid var(--line);padding:4px 6px;text-align:left}
.pr-table th{background:var(--mist)}
#sk-print textarea{width:100%;box-sizing:border-box}
@media print{
  body.printing>*{display:none!important}
  body.printing #sk-print{display:block!important;position:static;padding:0;overflow:visible}
  .pr-bar{display:none!important}
  .pr-row{break-inside:avoid}
  @page{margin:14mm}
}

/* 📅1ヶ月のまとめの紙（2026-10-03 本部「項目ごとに分けて、グラフも」）。
   ⚠ グラフのライブラリを入れない。横棒は div の幅で描く（印刷でも崩れない）。
   ⚠ ここに段階（全介助…自立）は出さない。数えるのは 通った日数 と 取り組んだ日数 だけ。 */
.pr-box{border:1px solid var(--line);border-radius:8px;margin:0 0 10px;overflow:hidden;break-inside:avoid}
.pr-box.warn{border-color:var(--alert);color:var(--ink)}  /* ⚠ .warn{color:var(--out)} を打ち消す＝枠と見出しだけ色を付け、本文は黒 */
.pr-box-h{background:var(--mist);padding:6px 10px;font-weight:700;font-size:12.5px;display:flex;align-items:baseline;gap:8px}
.pr-box.warn .pr-box-h{background:#F8EED6}
.pr-box-h .pr-cnt{margin-left:auto;font-weight:400;font-size:11px;color:var(--slate)}
.pr-box-b{padding:8px 10px;font-size:12.5px;line-height:1.8;white-space:pre-wrap}
.pr-box-h2{font-size:13px;font-weight:700;color:var(--blue);margin:14px 0 6px}
.pr-sub2{font-weight:700;font-size:11.5px;color:var(--slate);margin-top:4px}
/* 裏づけの場面。**本文より弱く見せる**＝主役は「この1か月の姿」の地の文 */
.pr-ev{margin-top:6px;padding-left:10px;border-left:2px solid var(--line);
  font-size:11.5px;line-height:1.75;color:var(--slate)}
.pr-try{margin-top:8px;background:var(--mist);border-radius:6px;padding:7px 9px;font-size:12px}
.pr-note{margin-top:6px;font-size:11.5px;color:var(--slate)}
/* ⚠ 棒は **pr-gb**。pr-bar にしない＝印刷ビューの操作バー（.pr-bar）と同じ名前で、
   @media print の display:none を拾って**印刷すると棒が全部消える**（2026-10-03 に踏んだ）。 */
.pr-bars{display:flex;flex-direction:column;gap:4px}
.pr-gb{display:flex;align-items:center;gap:8px;font-size:11.5px;font-variant-numeric:tabular-nums}
.pr-gb>.l{flex:0 0 34px;color:var(--slate)}
.pr-gb>.g{flex:1;background:var(--mist);border-radius:4px;height:12px;overflow:hidden}
.pr-gb>.g>i{display:block;height:100%;background:var(--blue)}
.pr-gb>.n{flex:0 0 44px;text-align:right}
.pr-gb.one{margin:2px 0 6px}
.pr-gb.one>.n{flex:0 0 72px}
/* 0日の目標。枠を立てず薄い1行で出す（「記録がありませんでした」の枠が並ぶと読みにくい） */
.pr-thin{display:block;border:1px dashed var(--line);border-radius:8px;
  padding:6px 10px;margin:0 0 10px;font-size:12px;color:var(--slate);break-inside:avoid}
.pr-thin>span{display:block;margin-top:2px;font-size:11.5px}
/* 確認したスタッフの署名（ひとことの下） */
.pr-sign{margin-top:8px;padding-top:6px;border-top:1px dotted var(--line);
  font-size:11.5px;color:var(--slate);text-align:right}
/* 📷 紙に載せる写真。2列。印刷で枠をまたいで切らない */
.pr-photos{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pr-photos img{width:100%;height:auto;border-radius:6px;border:1px solid var(--line);break-inside:avoid}
@media (max-width:420px){ .pr-photos{grid-template-columns:1fr} }
/* 📷 入力画面の写真。外す✕は右上に重ねる */
.sk-photos{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.sk-photos figure{position:relative;margin:0;width:96px;height:96px}
.sk-photos img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.sk-photos .x{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--slate);font-size:12px;line-height:1;cursor:pointer}
/* 🖨 **紙（PDF）でも画面と同じに見せる。**
   ⚠ ブラウザは既定で背景色・背景画像を印刷しない＝枠の見出し・棒・引用の下地が全部白く抜ける。
     1つずつ指定すると必ず足し忘れるので、**この紙の中は丸ごと exact** にする（2026-10-03 本部
     「出力した時に同じ表示になるように」）。 */
@media print{
  #sk-print, #sk-print *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* 枠・写真・薄い行は途中で切らない */
  .pr-box,.pr-thin,.pr-photos img,.pr-try{break-inside:avoid}
  /* 見出しだけ次の紙に残らないように */
  .pr-box-h2{break-after:avoid}
  /* 画面では読みやすさのため広げている写真を、紙では小さめに（1枚で1ページ使わない） */
  .pr-photos img{max-height:72mm;object-fit:cover}
}


/* ---------- 携帯：入力の1行（2026-10-04） ----------
   ⚠ **このブロックはファイルの一番下に置く。** 同じ強さ（.sk-sendrow .sk-tagsel）の指定が
   上の方（.sk-sendrow の並び）にあり、@media は強さを足さないので、先に書くと負ける。
   375pxの画面だと本文の欄が137pxしかなく、置き文字が3行に折れて読めない（実測）。 */
@media (max-width:720px){
  .sk-sendrow .sk-tagsel{width:4.4em;padding:11px 2px;font-size:11.5px}
  .sendrow .btn.send,.sk-sendrow .sk-btn.send{padding:12px 11px}
  .sendrow .btn.att,.sk-sendrow .sk-btn.att{padding:11px 7px}
}

/* 📜 AIが作ったもの（支援タブ）。⚠ 中身の形が種別ごとに違うので、入れ子でも読める見た目にする */
.sk-acc{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:0 0 8px;background:#fff}
.sk-acc>summary{cursor:pointer;font-size:13px;list-style:none}
.sk-acc>summary::-webkit-details-marker{display:none}
.sk-acc>summary::before{content:"▸ ";color:var(--slate)}
.sk-acc[open]>summary::before{content:"▾ "}
.sk-pre{white-space:pre-wrap;font-size:12.5px;line-height:1.8}
table.sk-kv{width:100%;border-collapse:collapse;margin:4px 0;font-size:12.5px}
table.sk-kv>tbody>tr>th{width:33%;text-align:left;vertical-align:top;color:var(--blue);font-weight:700;background:#f6f8fc;border:1px solid var(--line);padding:5px 7px}
table.sk-kv>tbody>tr>td{vertical-align:top;border:1px solid var(--line);padding:5px 7px}

/* 🎬 デモ（説明用）の番号。上から順になぞれば説明が一周する形にしてある */
.demo-step{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--blue);color:#fff;font-size:11.5px;font-weight:700;margin-right:6px}
/* 🤖 本部がClaudeと話しながら直す欄（2026-10-06）。⚠ 外に出る媒体（HP・LP）のページだけに置く */
.lpai-log{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.lpai-log .sk-log{white-space:normal;line-height:1.7}
.lpai-log .sk-log.ai{background:#f2f6fd;border-left:3px solid var(--blue)}
.lpai textarea{width:100%;font-size:16px}
/* 🆘 うまくいかない（2026-10-06）。⚠ どの画面からでも押せるよう、各タブの最後に出す */
.sk-trouble{border-color:#e4b9b9}
.sk-trouble>summary{font-size:14px}
.sk-trouble textarea{width:100%;font-size:16px;margin-top:6px}
.sk-log.bad{background:#fdf2f2;border-left:3px solid #c0504d;white-space:pre-wrap}

/* ========================================================================== */
/* 2026-10-07 visual refresh                                                   */
/*                                                                            */
/* 表示だけを統一するレイヤー。DOM・ID・イベント・保存処理は変更しない。       */
/* 既存画面の機能を保ったまま、PC / 携帯の全画面に同じデザイン言語を適用する。 */
/* ========================================================================== */
:root{
  --ink:#10294d;
  --paper:#f4f7fc;
  --mist:#edf3fb;
  --slate:#6b7f9d;
  --line:#dbe7f5;
  --in:#128454;
  --out:#e54f54;
  --alert:#b86c00;
  --sub1:#a7b8d1;
  --sub2:#2e70c9;
  --gold:#d98a1c;
  --grey:#d7e2f0;
  --blue:#1158b7;
  --purple:#7659ba;
  --st-blue:#0d5dca;
  --st-blue-bg:#e9f3ff;
  --st-yellow:#a96500;
  --st-yellow-bg:#fff2d8;
  --st-red:#c83f45;
  --st-red-bg:#ffeaeb;
  --st-black:#25364f;
  --st-black-bg:#e8edf4;
  --r:16px;
  --shadow:0 10px 30px rgba(22,70,135,.08);
  --shadow-sm:0 4px 16px rgba(22,70,135,.07);
}

html,body{background:var(--paper);color:var(--ink)}
body{min-height:100vh;background-image:linear-gradient(180deg,#f7faff 0,#f4f7fc 420px)}
a{color:#0767d7;text-underline-offset:2px}
button,input,select,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(17,88,183,.24);outline-offset:2px
}

header.top{
  background:linear-gradient(135deg,#0b3f8f 0%,#1267cc 100%);
  min-height:64px;padding:calc(env(safe-area-inset-top) + 12px) 22px 12px;
  box-shadow:0 6px 22px rgba(9,52,120,.17)
}
header.top h1{font-size:17px;letter-spacing:.035em;gap:10px}
header.top h1 .logo{
  width:32px;height:32px;border-radius:10px;color:#0d55b2;font-size:14px;
  box-shadow:0 4px 12px rgba(0,0,0,.12)
}
header.top .chip,header.top .hbtn{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
  border-radius:999px;padding:6px 11px;backdrop-filter:blur(8px)
}
header.top .hbtn:hover{background:rgba(255,255,255,.23)}

nav.tabs{
  top:64px;padding:0 14px;background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(184,204,230,.7);box-shadow:0 4px 18px rgba(28,71,132,.05);
  backdrop-filter:blur(14px)
}
nav.tabs button{padding:12px 14px 10px;font-size:12px;min-width:74px;transition:.18s ease}
nav.tabs button .ic{font-size:19px}
nav.tabs button[aria-selected="true"]{color:var(--blue);border-bottom-color:var(--blue)}

main{padding:20px 18px 96px;max-width:1240px}
section.card,.card,section.card.brief.x,.sk-panel,.carte-head,.scard,.chatcard,.adminmenu-item,.sk-menu-item{
  border-color:var(--line);box-shadow:var(--shadow-sm)
}
section.card,.card,section.card.brief.x{padding:17px 18px 15px;margin-bottom:14px}
h2.sec{font-size:14px;color:var(--ink);margin-bottom:13px}
h2.sec::before{content:"";width:4px;height:18px;border-radius:4px;background:var(--blue);flex:none}
.sub,.note,.hint{color:var(--slate)}

.gate{padding:38px 16px;place-items:start center}
.gate-cols{gap:22px;max-width:980px}
.gate-cols>.gate-in{flex-basis:430px;max-width:450px}
.gate-help{flex-basis:330px;max-width:450px}
.gate h1{font-size:26px;letter-spacing:-.02em}
.choice{gap:12px}
.choice button{
  border-color:var(--line);border-radius:18px;padding:18px;gap:14px;box-shadow:var(--shadow-sm);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease
}
.choice button:hover{transform:translateY(-2px);border-color:#8bb7eb;box-shadow:var(--shadow)}
.choice .mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#0d4b9f,#2b76d6)}
.choice .k{font-size:15px}.choice .d{font-size:12.5px}
.field select,.field input,.field textarea,.composer textarea,.composer select{
  min-height:44px;border-color:var(--line);border-radius:12px;padding:10px 12px;background:#fff
}
.field input:focus,.field select:focus,.field textarea:focus,.composer textarea:focus{
  border-color:#78a9e5;box-shadow:0 0 0 4px rgba(17,88,183,.08)
}
.btn,.sk-btn{border-radius:11px;min-height:38px;box-shadow:none;transition:transform .15s ease,filter .15s ease}
.btn:hover,.sk-btn:hover{filter:brightness(.97)}
.btn:active,.sk-btn:active{transform:scale(.98)}
.btn.ghost,.sk-btn.ghost{background:#fff;border-color:var(--line)}

.kpi{gap:12px;margin-bottom:15px}
.kpi>div,.sk-stat{
  border-color:var(--line);border-radius:15px;padding:13px 12px;background:linear-gradient(180deg,#fff,#fbfdff);
  box-shadow:var(--shadow-sm);text-align:left
}
.kpi small,.sk-stat .l{color:var(--slate);font-weight:600}
.kpi .num,.sk-stat .v{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.025em}
.tag,.pill,.sk-badge{border-radius:999px}

.row{padding:12px 7px;border-top-color:var(--line);border-radius:10px;transition:background .15s ease}
.row:hover{background:#f3f8ff}
.row .nm{font-size:14px}.row .stripe{border-radius:999px}
.grid{gap:13px}
.scard{border-radius:17px;background:#fff;transition:transform .18s ease,box-shadow .18s ease}
.scard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.scard .hd{padding:14px 14px 9px}.scard .nm{font-size:14.5px}
.scard .k3{background:#f6f9fe}.scard .k3 div{padding:9px 8px}
.carte-head{border-radius:18px;padding:17px 18px;margin-bottom:13px}
.carte-head h2{font-size:21px}
.backlink,nav.subtabs button,.sk-pills button,.sk-chip,.sk-topics button{
  border-radius:999px;border-color:var(--line)
}
nav.subtabs{gap:7px;padding-bottom:12px}
nav.subtabs button{padding:8px 13px;background:#fff}
nav.subtabs button[aria-selected="true"],.sk-pills button[aria-pressed="true"]{
  background:linear-gradient(135deg,#0d50aa,#1b6dd0);box-shadow:0 5px 14px rgba(17,88,183,.19)
}
.mt-wrap{border-radius:14px;background:#fff}.mt th{background:#f8fbff}
.roomhead,.sk-roomhead{background:linear-gradient(135deg,#0d4a9d,#1769cb);border-radius:16px 16px 0 0}
.msgs,.sk-chatbox{background:#f0f6ff;border-color:#1762bd;border-radius:0 0 16px 16px}
.msg .bubble,.sk-msg .bubble{border-color:var(--line);box-shadow:0 3px 10px rgba(25,65,120,.05)}
.msg.mine .bubble,.sk-msg.mine .bubble{background:#dcecff;border-color:#bfdbfb}
.composer,.sk-compose{border-radius:16px;border-color:var(--line);box-shadow:var(--shadow-sm)}
.adminmenu,.sk-menu{gap:12px}
.adminmenu-item,.sk-menu-item{border-radius:16px;padding:15px 16px;transition:.18s ease}
.adminmenu-item:hover,.sk-menu-item:hover{background:#f5f9ff;transform:translateY(-1px);box-shadow:var(--shadow)}
.adminmenu-item .ic,.sk-menu-item .ic{width:38px;height:38px;border-radius:12px;background:#e8f2ff;display:grid;place-items:center;font-size:20px}
.sk-card30,section.card.brief{
  background:linear-gradient(135deg,#0b448f 0%,#1168cf 100%);border-radius:18px;box-shadow:0 12px 30px rgba(12,75,155,.18)
}
.sk-item{border-color:var(--line);border-radius:12px;padding:10px 12px}
.sk-item:hover{background:#f8fbff}
.sk-stat{text-align:center}
.sk-stat .v{font-size:21px}
.sk-layers button{border-radius:12px;background:#eaf1fb}
.sk-alertbox,.sk-acc{border-radius:14px}

@media (min-width:721px){
  body:not(.fc-mode) main{padding-top:24px}
  .today{gap:14px}
  .today>.card{min-height:150px}
}

@media (max-width:720px){
  body{background:#f3f7fc}
  header.top{
    min-height:calc(env(safe-area-inset-top) + 64px);padding:calc(env(safe-area-inset-top) + 11px) 16px 11px;
    gap:7px;overflow:visible
  }
  header.top h1{font-size:15px;letter-spacing:0;min-width:0}
  header.top h1 .t{overflow:hidden;text-overflow:ellipsis}
  header.top h1 .logo{width:30px;height:30px;border-radius:9px}
  header.top .chip{display:none}
  header.top .hbtn{font-size:0;width:36px;height:36px;padding:0;display:grid;place-items:center;border-radius:50%}
  header.top .hbtn:first-letter{font-size:16px}
  header.top .hbtn kbd{display:none}
  nav.tabs{
    position:fixed;top:auto;bottom:0;left:0;right:0;padding:5px 4px calc(6px + env(safe-area-inset-bottom));
    border:0;border-top:1px solid var(--line);border-radius:20px 20px 0 0;
    box-shadow:0 -10px 30px rgba(17,63,123,.11);justify-content:flex-start;overflow-x:auto
  }
  nav.tabs button{flex:1 0 64px;min-width:64px;padding:5px 4px 2px;font-size:9.5px;border:0;gap:2px}
  nav.tabs button .ic{font-size:20px;width:36px;height:28px;border-radius:12px;display:grid;place-items:center}
  nav.tabs button[aria-selected="true"]{border:0}
  nav.tabs button[aria-selected="true"] .ic{background:#e5f0ff;color:#075dc8}
  main,body.fc-mode main{padding:15px 12px calc(94px + env(safe-area-inset-bottom));max-width:720px}
  section.card,.card,section.card.brief.x{padding:15px 14px 13px;border-radius:16px;margin-bottom:11px}
  h2.sec{font-size:14px}
  .gate{padding:24px 6px 100px}
  .gate h1{font-size:23px}
  .gate-cols{gap:12px}.gate-help{min-width:0}
  .choice button{padding:16px 14px;border-radius:16px}
  .choice .mark{width:40px;height:40px}
  .kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .kpi>div{padding:12px 11px;min-width:0}
  .kpi .num{font-size:22px}
  .grid{grid-template-columns:1fr;gap:10px}
  .scard{border-left-width:1px}
  .scard .hd::before{content:"🏢";width:36px;height:36px;border-radius:50%;background:#e9f3ff;display:grid;place-items:center;flex:none}
  .carte-head{padding:15px 14px;border-radius:16px}.carte-head h2{font-size:19px}
  nav.subtabs{margin-right:-12px;padding-right:12px}
  .row{grid-template-columns:5px minmax(0,1fr) auto;gap:9px;padding:11px 4px}
  .row .rt{gap:5px}.row .meta{gap:6px}
  .adminmenu,.sk-menu{grid-template-columns:1fr;gap:9px}
  .adminmenu-item,.sk-menu-item{padding:13px 14px;border-radius:15px}
  .sk-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .sk-stat{min-width:0;margin:0}
  .two.chat-open{grid-template-columns:1fr}
  .msgs,.sk-chatbox{max-height:58vh}
  .composer,.sk-compose{position:sticky;bottom:76px;z-index:8}
}

@media (max-width:390px){
  header.top h1 .t{max-width:170px}
  .kpi .num{font-size:20px}
  .row .rt .tag:nth-child(n+2){display:none}
}

/* ---------- branded sign-in entrance ---------- */
header.top h1 .logo{
  width:154px;height:38px;padding:6px 10px;border-radius:10px;background:#fff;
  display:flex;align-items:center;justify-content:center;overflow:hidden
}
header.top h1 .logo img{display:block;width:100%;height:100%;object-fit:contain}
header.top h1 .t{font-size:13px;font-weight:700;letter-spacing:.08em;border-left:1px solid rgba(255,255,255,.35);padding-left:11px}

.gate{
  position:relative;isolation:isolate;min-height:calc(100vh - 64px);overflow:hidden;
  background:
    radial-gradient(circle at 8% 16%,rgba(35,115,214,.11),transparent 28%),
    radial-gradient(circle at 92% 78%,rgba(38,145,195,.10),transparent 30%),
    linear-gradient(145deg,#f8fbff 0%,#eff5fd 100%)
}
.gate::before,.gate::after{
  content:"";position:absolute;z-index:-1;border-radius:50%;border:1px solid rgba(35,107,197,.10)
}
.gate::before{width:420px;height:420px;left:-245px;bottom:-215px;box-shadow:0 0 0 65px rgba(35,107,197,.025)}
.gate::after{width:300px;height:300px;right:-170px;top:-130px;box-shadow:0 0 0 48px rgba(35,107,197,.025)}
.gate-cols{align-items:stretch;max-width:1060px;gap:24px}
.gate-cols>.gate-in{
  flex:1 1 450px;max-width:500px;position:relative;background:rgba(255,255,255,.94);
  border:1px solid rgba(205,221,241,.95);border-radius:28px;padding:34px 36px 32px;
  box-shadow:0 24px 70px rgba(27,72,135,.13);overflow:hidden
}
.gate-cols>.gate-in::after{
  content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-72px;bottom:-75px;
  background:linear-gradient(135deg,rgba(17,88,183,.06),rgba(22,119,211,.14));pointer-events:none
}
.gate-brand{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-bottom:30px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.gate-brand img{display:block;width:min(100%,285px);height:auto}
.gate-brand span{font-size:10px;font-weight:800;letter-spacing:.22em;color:#3671bb}
.gate h1{font-size:30px;letter-spacing:-.035em;color:#0d294f;margin-bottom:9px}
.gate .lede{font-size:13.5px;line-height:1.85;margin-bottom:24px}
.gate .field{gap:7px;margin-bottom:16px}
.gate .field label{font-size:11.5px;font-weight:700;letter-spacing:.04em;color:#59708f}
.gate .field input,.gate .field select,.gate .field textarea{
  min-height:52px;border-radius:14px;border-color:#cfdef0;font-size:15px;background:#fbfdff
}
.gate .field input::placeholder{color:#9cacbf}
#g-email+*,#g-pw+*{position:relative}
#g-login{min-width:124px;min-height:46px;border-radius:13px;background:linear-gradient(135deg,#0c4b9f,#176bd0);box-shadow:0 8px 18px rgba(14,82,169,.2)}
#g-send{min-height:46px;border-radius:13px;color:#315172}
.gate-help{display:flex;flex-direction:column;justify-content:center;max-width:470px}
.gate-help .card{
  border-color:rgba(205,221,241,.9);border-radius:20px;padding:18px 20px;
  background:rgba(255,255,255,.82);box-shadow:0 12px 36px rgba(27,72,135,.075);backdrop-filter:blur(12px)
}
.gate-help h2.sec::before{height:20px}
.gate-help h2.sec{font-size:14px}
.gate-help .card:nth-child(n+3){display:none}

@media (max-width:720px){
  header.top h1 .logo{width:128px;height:34px;padding:5px 8px}
  header.top h1 .t{font-size:10px;padding-left:8px}
  .gate{min-height:calc(100vh - 64px);padding:18px 8px 104px}
  .gate-cols{gap:12px}
  .gate-cols>.gate-in{flex-basis:100%;padding:25px 20px 23px;border-radius:22px}
  .gate-brand{margin-bottom:22px;padding-bottom:18px;align-items:center;text-align:center}
  .gate-brand img{width:min(100%,250px)}
  .gate h1{font-size:25px}
  .gate .lede{font-size:12.5px;line-height:1.75}
  .gate .field input,.gate .field select,.gate .field textarea{font-size:16px}
  .gate-help{display:none}
  #gate-email>div[style]{display:grid!important;grid-template-columns:1fr;gap:8px!important}
  #g-login,#g-send{width:100%}
  #g-login{grid-row:1}
  #g-send{grid-row:2}
}

/* ---------- unified line icons + FC app refresh v102 ---------- */
.nav-svg{display:block;width:1.35em;height:1.35em;margin:auto;overflow:visible}
nav.tabs button .ic{display:grid;place-items:center}
nav.tabs button .ic .nav-svg{width:21px;height:21px}
nav.tabs button[aria-selected="true"] .nav-svg{stroke-width:2.2}
.sk-pills .nav-svg{display:inline-block;width:15px;height:15px;vertical-align:-3px;margin-right:3px}

body.fc-mode{background:linear-gradient(180deg,#f1f6fd 0,#f7f9fc 360px)}
body.fc-mode header.top{background:linear-gradient(135deg,#072d70,#0a55b5 72%,#176fd0);box-shadow:0 8px 26px rgba(7,48,114,.16)}
body.fc-mode main{max-width:820px;padding-top:17px}
body.fc-mode nav.tabs{background:rgba(255,255,255,.96);border-top-color:#d9e5f4;box-shadow:0 -10px 30px rgba(20,60,115,.11);backdrop-filter:blur(16px)}
body.fc-mode nav.tabs button{color:#7890ad;transition:color .16s ease,transform .16s ease}
body.fc-mode nav.tabs button[aria-selected="true"]{color:#0962c8;font-weight:800}
body.fc-mode nav.tabs button[aria-selected="true"] .ic{background:#e7f1ff}

.fc-page-head{margin-bottom:14px;padding:0 2px}.fc-page-head h1{font-size:24px}.fc-page-head p{font-weight:600}
.fc-school-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#0a4ea7,#1475d5);color:#fff;font-size:11px;font-weight:900;letter-spacing:.04em;box-shadow:0 7px 16px rgba(9,85,181,.2)}
.fc-home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 11px}
.fc-home-stats button{display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;gap:0 8px;align-items:center;text-align:left;background:#fff;border:1px solid #dbe7f5;border-radius:15px;padding:11px;box-shadow:0 4px 14px rgba(21,66,125,.06);color:#102a50}
.fc-home-stats small{font-size:10px;color:#74869f;font-weight:700}.fc-home-stats b{font-size:20px;line-height:1.05}.fhs-ic{grid-row:1/3;width:34px;height:34px;border-radius:11px;display:grid;place-items:center}.fhs-ic .nav-svg{width:18px;height:18px}.fhs-ic.blue{background:#e6f1ff;color:#0964d2}.fhs-ic.amber{background:#fff2d6;color:#c37a00}.fhs-ic.green{background:#e4f7ed;color:#148552}
.sk-panel{border-color:#dbe6f4;border-radius:17px;padding:15px 16px;margin-bottom:12px;box-shadow:0 5px 18px rgba(22,65,123,.055)}
.sk h2{display:flex;align-items:center;gap:7px;color:#15345d;font-size:14px;margin-bottom:10px}.sk h2::before{content:"";width:4px;height:18px;border-radius:4px;background:#1267cc;flex:none}
.sk-card30{border-radius:18px;padding:17px 18px;background:linear-gradient(135deg,#073f91,#0d66ca 66%,#1478da);box-shadow:0 12px 28px rgba(8,71,154,.2)}
.sk-card30 .d{font-size:10px;letter-spacing:.08em;text-transform:uppercase}.sk-card30 .t{font-size:17px;margin:5px 0}.sk-card30 .b{font-size:12.5px}
.sk-scope{background:#e7f1ff;color:#0d5dbd;border-radius:999px;padding:5px 10px;font-weight:700}
.sk-item{border-color:#dde7f3;border-left-width:1px;border-radius:13px;padding:10px 12px;margin:7px 0;background:#fff}.sk-item.p60{border-left:4px solid #6d91bd}.sk-item.p30{border-left:4px solid #e6a526}.sk-item.p7{border-left:4px solid #e14f58}
.sk-item:hover{background:#f7faff}.sk-item .m{font-size:11px;line-height:1.55}
.sk-btn{border-radius:11px;min-height:36px;padding:7px 13px;font-weight:700}.sk-btn.bl{background:linear-gradient(135deg,#0b51ab,#146dce)}.sk-btn.wide{min-height:45px}
.sk textarea,.sk input:not([type=checkbox]),.sk select{border-color:#d4e1f1;border-radius:12px;background:#fbfdff;min-height:43px}.sk textarea:focus,.sk input:not([type=checkbox]):focus,.sk select:focus{outline:0;border-color:#73a6e3;box-shadow:0 0 0 4px rgba(17,88,183,.08)}
.sk-menu-item{border-color:#dbe6f4;border-radius:16px;box-shadow:0 4px 14px rgba(21,66,125,.05)}.sk-menu-item .ic{width:40px;height:40px;border-radius:13px;background:#e8f2ff;color:#0b60c6;display:grid;place-items:center}.sk-menu-item .ic .nav-svg{width:21px;height:21px}
.sk-stat{border-color:#dbe6f4;border-radius:14px;background:linear-gradient(180deg,#fff,#f9fbff)}.sk-stat .v{color:#102a50;font-weight:800}
.sk-badge{border-radius:999px;padding:2px 7px}.sk-quote,.sk-log,.sk-record-preview,.sk-grow{border-radius:12px}
.sk-roomhead{border-radius:17px 17px 0 0;padding:12px 15px;background:linear-gradient(135deg,#0b4c9e,#156bc9)}.sk-chatbox{background:#f0f6ff;border-radius:0 0 17px 17px}.sk-msg .bubble{border-radius:15px;box-shadow:0 3px 10px rgba(20,60,110,.05)}

@media (max-width:720px){
  body.fc-mode main{padding:13px 11px calc(91px + env(safe-area-inset-bottom))}
  body.fc-mode header.top h1 .logo{width:116px;background:transparent;padding:0;filter:brightness(0) invert(1)}
  body.fc-mode nav.tabs{overflow-x:auto;justify-content:flex-start;padding-left:5px;padding-right:5px}
  body.fc-mode nav.tabs button{flex:0 0 64px;font-size:9px;padding:5px 2px 4px}
  body.fc-mode nav.tabs button .ic{width:38px;height:29px;border-radius:12px;margin:auto}
  body.fc-mode nav.tabs button .ic .nav-svg{width:20px;height:20px}
  .fc-page-head{margin-bottom:11px}.fc-page-head h1{font-size:21px}.fc-school-mark{width:38px;height:38px;border-radius:12px}
  .fc-home-stats{gap:7px}.fc-home-stats button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 9px;border-radius:14px}.fhs-ic{width:30px;height:30px}.fc-home-stats b{font-size:19px}
  .sk-panel{padding:14px 13px;border-radius:16px;margin-bottom:10px}.sk-card30{padding:15px;border-radius:17px}.sk h2{font-size:13.5px}
  .sk-menu{grid-template-columns:1fr}.sk-menu-item{padding:13px;border-radius:15px}
  .sk-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sk-stat{padding:11px 9px}
}
/* 💰 請求書の紙（2026-10-09）。⚠ 印刷ビュー（.printing）の中で使う。実物の請求書に合わせた */
.inv{font-size:12px;line-height:1.7;max-width:720px;margin:0 auto;padding:18px}
.inv-head{text-align:right}
.inv-meta{display:inline-block;text-align:left;font-size:11px}
.inv-t{font-size:22px;letter-spacing:.5em;text-align:center;margin:14px 0 6px;border-bottom:2px solid #333;padding-bottom:6px}
.inv-to{font-size:15px;margin:10px 0}
.inv-from{float:right;font-size:11px;margin:-70px 0 10px}
.inv-sum{clear:both;background:#eee;padding:9px 12px;display:flex;justify-content:space-between;font-size:15px;max-width:320px}
.inv-due{background:#eee;display:inline-block;padding:3px 10px;margin:6px 0;font-size:11px}
.inv-tbl{width:100%;border-collapse:collapse;margin:10px 0;font-size:11px}
.inv-tbl th,.inv-tbl td{border:1px solid #999;padding:5px 7px}
.inv-tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.inv-tot{width:100%;border-collapse:collapse;font-size:12px}
.inv-tot th,.inv-tot td{border:1px solid #999;padding:5px 9px;text-align:right}

/* 💳 購入の決裁「誰が押すか」のチェック（2026-10-09）。折り返しても名前と箱が離れないように */
.krole { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; margin:0 10px 6px 0; }

/* 🧪 練習用の校の帯（2026-10-09）。本物と見間違えないよう、アプリのどの色とも違う色にする */
.sk-practice { background:#fff4d6; border:2px dashed #e0a800; color:#6b4e00; border-radius:10px;
  padding:10px 14px; margin:0 0 12px; font-weight:700; line-height:1.6; }

/* ================= 🧠 NEURI（2026-10-08 代表決定のアプリ名とキャラクター） =================
   ⚠ 色はキャラクターの決まり（NEURIの体 #91D1C5・枝 #50A79B・光る先 #F6BB48・MYLOの体 #FFF8EE・リボン #BFDBF3）。
   ⚠ ヘッダーのロゴは以前 KID ACADEMY の文字ロゴを白抜き（filter）していた。NEURIの顔はそのまま出すので filter を外す。 */
html body header.top h1 .logo.neuri{width:34px;height:34px;background:#fff;border-radius:10px;padding:2px;filter:none;box-shadow:0 4px 12px rgba(0,0,0,.12)}
html body header.top h1 .logo.neuri img{width:100%;height:100%;display:block}
header.top h1 .nbrand{display:flex;flex-direction:column;line-height:1.05;letter-spacing:.02em}
header.top h1 .nbrand b{font-size:18px;font-weight:800;letter-spacing:.06em}
header.top h1 .nbrand small{font-size:9px;font-weight:600;opacity:.82;letter-spacing:.08em}
header.top h1 .t:empty{display:none}
header.top h1 .t{font-size:11px;font-weight:700;background:rgba(255,255,255,.18);border-radius:999px;padding:2px 8px}
@media (max-width:720px){ header.top h1 .nbrand b{font-size:16px} }

/* 日本語｜EN */
.langsw{display:inline-flex;border:1px solid rgba(255,255,255,.4);border-radius:999px;overflow:hidden;flex-shrink:0}
.langsw button{font-size:12px;font-weight:700;padding:5px 10px;color:#fff;background:transparent;border:0;cursor:pointer;min-height:30px}
.langsw button[aria-pressed="true"]{background:#fff;color:#0b4da4}
.langsw button:focus-visible{outline:2px solid #F6BB48;outline-offset:-2px}
.langsw.on-light{border-color:#bcd3cf}
.langsw.on-light button{color:#2E7D72}
.langsw.on-light button[aria-pressed="true"]{background:#2E7D72;color:#fff}

/* ログイン画面（絵は れいこさんの素材セット v1 のマスターをそのまま使う） */
.gate-brand.neuri-brand{gap:6px;position:relative}
.neuri-brand .nb-top{width:100%;display:flex;justify-content:center;padding-top:40px}
.neuri-brand img.nb-pair{width:100%;max-width:340px;height:auto;display:block}
.neuri-brand #gate-lang{position:absolute;top:0;right:0}
.neuri-brand .nb-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.neuri-brand .nb-name b{font-size:40px;font-weight:800;letter-spacing:.04em;color:#2E7D72;line-height:1}
.neuri-brand .nb-name span{font-size:12px;font-weight:700;letter-spacing:.16em;color:#39302C}
.neuri-brand .nb-tag{margin:2px 0 0;font-size:14px;font-weight:700;color:#6E625B}
@media (max-width:720px){ .neuri-brand .nb-name{justify-content:center} }

/* 事業所アプリの見出しの校マーク */
.fc-school-mark.neuri-mark{background:#E3F3EF;padding:3px}
.fc-school-mark.neuri-mark img{width:100%;height:100%;display:block}

/* MYLO のあいさつ（ホームの先頭に1回だけ） */
.mylo-card{display:flex;gap:14px;align-items:center;background:#EEF5FC;border:1px solid #D3E5F6;border-radius:16px;padding:12px 14px;margin:0 0 12px}
.mylo-card .mylo-img,.mylo-card picture{width:72px;height:auto;flex-shrink:0;display:block}
.mylo-card .mylo-say{display:flex;flex-direction:column;gap:3px;min-width:0}
.mylo-card .mylo-name{font-size:10px;font-weight:800;letter-spacing:.14em;color:#3B6E99}
.mylo-card .mylo-hello{font-size:15px;font-weight:800;color:var(--ink)}
.mylo-card .mylo-line{font-size:13.5px;line-height:1.5;color:var(--ink)}
.mylo-card .mylo-line .num{font-size:17px;margin:0 3px;color:#2F5E86}
.mylo-card .sk-btn{align-self:flex-start;margin-top:4px}

/* 🎨 2026-10-08 代表の「NEURI & MYLO やさしいタッチ 透過100点とロゴ」（assets/neuri/）。
   背景が透明・原稿が大きいので、白い台や multiply は要らない。絵は余白を詰めて縮めただけ（描き直さない）。 */
header.top h1 .nlogo{background:#fff;border-radius:10px;padding:3px 8px;display:flex;align-items:center;box-shadow:0 4px 12px rgba(0,0,0,.12)}
header.top h1 .nlogo img{height:32px;width:auto;display:block}
@media (max-width:720px){ header.top h1 .nlogo img{height:26px} }
html body header.top h1 .logo.neuri img{object-fit:contain}
.neuri-brand img.nb-pair{max-width:360px}
.neuri-brand img.nb-logo{width:100%;max-width:240px;height:auto;display:block;margin:0 auto}
.mylo-card .mylo-img{width:64px;height:auto}
.fc-school-mark.neuri-mark img{object-fit:contain}
.neuri-brand .nb-tag{align-self:center;text-align:center}

/* 🧠 ログイン画面の見出し（2026-10-11 代表「文字が大きすぎる・フォントが変」）。
   それまでは 30px（スマホ25px）・極太・字間を詰める指定で、日本語だと窮屈で浮いていた。
   NEURI のやわらかい絵に合わせて、小さめ・普通の太さ・字間を少し空ける。 */
html body .gate h1{font-size:15px;font-weight:600;letter-spacing:.08em;line-height:1.5;color:#39302C;margin:0 0 6px;font-family:var(--jp)}
html body .gate .lede{font-size:12px;line-height:1.75;color:#6E625B;letter-spacing:.02em}
@media (max-width:720px){ html body .gate h1{font-size:15px;text-align:center} html body .gate .lede{font-size:11.5px;text-align:left} }
/* 入口の3枚（開発用のPIN画面）も見出しに合わせて小さく（2026-10-11 代表） */
html body .gate .choice{gap:8px}
html body .gate .choice button{padding:11px 13px;gap:10px;align-items:center}
html body .gate .choice .mark{width:34px;height:34px;border-radius:10px;font-size:11px;font-weight:600}
html body .gate .choice .k{font-size:13px;font-weight:600}
html body .gate .choice .d{font-size:11px;line-height:1.55}

/* 🧠 ヘッダー（2026-10-11 代表）：
   ・帯の色はミントグリーン（NEURI の色）。青の帯に白い台のロゴが浮いていたのをやめた。本部・事業所・直営校すべて同じ
   ・左上はスマホのアプリアイコンの形（角丸の正方形）。中にメインの絵（005「手をつなぐ」＝二人）を小さく収める
   ・文字ロゴ（NEURI by KID ACADEMY）は白い台を外して透過のまま置く
   ⚠ 絵とロゴは縮めただけ（描き直さない）。 */
html body header.top, html body.fc-mode header.top{background:#F4FAF8;color:#2E5F58;border-bottom:1px solid #D7EBE6;box-shadow:none}
html body header.top h1 .logo.neuri.pair{width:38px;height:38px;padding:0;border-radius:10px;background:#E3F3EF;display:grid;place-items:center;
  box-shadow:0 2px 8px rgba(46,125,114,.18);overflow:hidden;filter:none;flex:none}
html body header.top h1 .logo.neuri.pair img{width:32px;height:auto;object-fit:contain}
html body header.top h1 .nlogo{background:transparent;box-shadow:none;padding:0 2px}
html body header.top h1 .t{color:#2E5F58;border-left-color:#BFE0D8}
html body header.top .chip{background:#E3F3EF;color:#2E5F58}
html body header.top .chip.me{background:none}
html body header.top .hbtn{background:#fff;color:#2E7D72;border:1px solid #BFE0D8}
html body header.top .hbtn:hover{background:#E3F3EF}
html body header.top .hselect{background:#fff;color:#2E5F58;border-color:#BFE0D8}
@media (max-width:720px){ html body header.top h1 .logo.neuri.pair{width:34px;height:34px} html body header.top h1 .logo.neuri.pair img{width:29px} }

/* 📱 スマホのヘッダーの丸いボタン（2026-10-11 代表「3つの丸の中身が見えない」）。
   それまでは文字を0pxにして ::first-letter で頭の1文字（🔍・🏫・ロ）だけ出していたが、
   iPhone の Safari ではボタンの ::first-letter が効かず、丸が空になっていた。
   ボタンごとに ::before で絵文字を置く（文字そのものは読み上げ用に残る）。 */
@media (max-width:720px){
  html body header.top .hbtn:first-letter{font-size:0}
  html body header.top .hbtn::before{font-size:17px;line-height:1}
  html body header.top #open-palette::before{content:"🔍"}
  html body header.top #fcpreview::before{content:"🏫"}
  html body header.top #hqback::before{content:"↩︎";color:#2E7D72;font-weight:700}
  html body header.top #switchmode::before{content:"🚪"}
}

/* 🗓 開所◯か月目の1行（事業所の一覧・カルテ）2026-10-11 */
.openln{font-size:11px;color:var(--slate);line-height:1.6;margin-top:3px}
.openln b{color:var(--ink);font-weight:700}

/* NEURI / MYLO palette. Appearance only: existing DOM, actions and layout stay intact.
   Pastel fills use darker text for legibility; KPI judgment colors remain semantic. */
:root{
  --ink:#393f3d;--paper:#fffaf3;--mist:#edf5f1;--slate:#63736e;--line:#dce9e3;
  --blue:#2e7d72;--sub1:#657e77;--sub2:#467497;--grey:#dce9e3;
  --neuri-mint:#91d1c5;--neuri-soft:#e3f3ef;--mylo-blue:#bfdbf3;--mylo-ink:#355f80;
  --mylo-soft:#eef5fc;--warm-cream:#fff8ee;--kind-pink:#ffe5eb;--grow-yellow:#fff0ca;
  --shadow:0 10px 30px rgba(58,104,92,.08);--shadow-sm:0 4px 16px rgba(58,104,92,.06);
  --mint-gradient:linear-gradient(135deg,#285f59 0%,#2e7d72 58%,#367f73 100%);
  --mint-elevation:inset 0 1px 0 rgba(255,255,255,.20),0 5px 14px rgba(36,101,88,.16);
}
html body header.top,html body.fc-mode header.top{
  background:linear-gradient(120deg,#e0f0ea 0%,#f4faf8 42%,#d2e9e1 100%);
  border-bottom-color:#c3ddd2;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 4px 18px rgba(52,99,84,.08);
}
html body,html body.fc-mode{background:linear-gradient(180deg,#f4faf8 0,var(--paper) 420px);color:var(--ink)}
a{color:var(--blue)}
button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline-color:#2e7d72;
}
html body nav.tabs{border-color:var(--line);box-shadow:0 4px 18px rgba(58,104,92,.05)}
html body nav.tabs button{color:var(--slate)}
html body nav.tabs button[aria-selected="true"]{color:var(--blue);border-bottom-color:var(--blue)}
html body.fc-mode nav.tabs button[aria-selected="true"] .ic{background:var(--neuri-soft)}
html body .gate{
  background:radial-gradient(circle at 8% 16%,rgba(145,209,197,.19),transparent 28%),
    radial-gradient(circle at 92% 78%,rgba(191,219,243,.20),transparent 30%),
    linear-gradient(145deg,#f9fcfa,var(--warm-cream));
}
.gate::before,.gate::after{border-color:rgba(80,167,155,.12);box-shadow:0 0 0 48px rgba(145,209,197,.04)}
.gate-cols>.gate-in,.gate-help .card{border-color:var(--line);box-shadow:var(--shadow)}
.gate-cols>.gate-in::after{background:linear-gradient(135deg,rgba(145,209,197,.08),rgba(191,219,243,.18))}
.gate-brand span{color:var(--blue)}
.gate .field label{color:var(--slate)}
.gate .field input,.gate .field select,.gate .field textarea{background:#fffdf9;border-color:var(--line)}
html body #g-login,.choice .mark,.btn:not(.ghost):not(.sec){background:var(--mint-gradient);box-shadow:var(--mint-elevation)}
#g-send{color:var(--blue)}
.choice button:hover{border-color:var(--neuri-mint)}
.field input:focus,.field select:focus,.field textarea:focus,.composer textarea:focus,
.sk textarea:focus,.sk input:not([type=checkbox]):focus,.sk select:focus{
  border-color:#50a79b;box-shadow:0 0 0 4px rgba(80,167,155,.12);
}
.sk textarea,.sk input:not([type=checkbox]),.sk select{border-color:var(--line);background:#fffdf9}
nav.subtabs button[aria-selected="true"],.sk-pills button[aria-pressed="true"],.sk-btn.bl{
  background:var(--mint-gradient);box-shadow:var(--mint-elevation);
}
.row:hover,.adminmenu-item:hover,.sk-menu-item:hover,.sk-item:hover{background:#f4faf8}
.scard .k3,.mt th{background:#f4faf8}
.kpi>div,.sk-stat{background:linear-gradient(180deg,#fff,#fffdf9);border-color:var(--line)}
.roomhead,.sk-roomhead{background:var(--mint-gradient);box-shadow:inset 0 1px 0 rgba(255,255,255,.20)}
.msgs,.sk-chatbox{background:#f3f8f5;border-color:var(--line)}
.msg.mine .bubble,.sk-msg.mine .bubble{background:var(--neuri-soft);border-color:#bfdfd6}
.adminmenu-item .ic,.sk-menu-item .ic{background:var(--neuri-soft);color:var(--blue)}
html body .sk-card30,html body section.card.brief{
  background:linear-gradient(120deg,#d9eee5 0%,#edf7f1 52%,#fff5e5 100%);color:var(--ink);
  border:1px solid #cde2d7;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 7px 22px rgba(52,99,84,.09);
}
.sk-card30 .d{color:var(--blue)}
.sk-card30 .b,section.card.brief .sub,section.card.brief .note{color:var(--slate)}
.sk-layers button{background:var(--neuri-soft)}
.sk-scope{background:var(--neuri-soft);color:var(--blue)}
.app-eyebrow{color:var(--blue)}
.app-page-head p{color:var(--slate)}
.fc-school-mark{background:var(--neuri-soft);color:var(--blue);box-shadow:var(--shadow-sm)}
.fc-home-stats button,.sk-panel,.sk-menu-item{border-color:var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}
.fc-home-stats small{color:var(--slate)}
.fhs-ic.blue{background:var(--neuri-soft);color:var(--blue)}
.fhs-ic.amber{background:var(--grow-yellow);color:#8c651b}
.sk h2,.sk-stat .v{color:var(--ink)}
.sk h2::before{background:var(--neuri-mint)}
.mylo-card{background:linear-gradient(125deg,#e8f2fc 0%,#f5f9fd 65%,#e6f0fa 100%);border-color:#d3e5f6;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 5px 16px rgba(53,95,128,.07)}
.mylo-card .sk-btn{background:linear-gradient(135deg,#355f80,#436f91);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 4px 10px rgba(53,95,128,.15)}
.mylo-card .mylo-name,.mylo-card .mylo-line .num{color:var(--mylo-ink)}
.lpai-log .sk-log.ai{background:var(--mylo-soft);border-left-color:var(--mylo-blue)}
html body section.card.brief h2{color:var(--ink)}
html body section.card.brief .pills span{background:#fffaf3;border-color:var(--line);color:var(--slate)}
.app-page-head h1{color:var(--ink)}
.app-date,.page-count{background:var(--neuri-soft);color:var(--blue)}
.hq-quick-stats button{border-color:var(--line)}
.hq-quick-stats button:hover{border-color:var(--neuri-mint)}
.hq-quick-stats small,.hq-quick-stats i{color:var(--slate)}
.qs-icon.blue{background:var(--neuri-soft);color:var(--blue)}
.qs-icon.amber{background:var(--grow-yellow);color:#8c651b}
.inbox-card .inboxbar{background:#f4faf8;border-color:var(--line)}
html body header.top .langsw{border-color:#bfdfd6}
html body header.top .langsw button{color:var(--blue)}
html body header.top .langsw button[aria-pressed="true"]{background:var(--neuri-soft);color:var(--blue)}
@media (max-width:720px){
  html body .home-brief{background:linear-gradient(120deg,#d9eee5 0%,#edf7f1 52%,#fff5e5 100%)!important;border:1px solid #cde2d7!important}
  .home-month select{background:#f4faf8}
}
.openln .tag{font-size:10.5px;padding:1px 6px}
.carte-head .openln{font-size:12px;margin-top:4px}

/* ===== 2026-10-25 直営校：SENDの日報・専門的支援・送迎・署名 ===== */
/* 🎙️話す／📷メモを撮る／📋貼り付ける を同じ大きさで3つ */
.sk-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin:8px 0 0}
.sk-three .sk-btn{width:100%;padding:11px 4px;font-size:13.5px;margin:0;white-space:nowrap}
/* ① 最初に押す ／ ② 話す … の小見出し */
.sk-step-head{margin:16px 0 4px;padding:4px 10px;border-left:4px solid var(--blue);font-weight:700;font-size:13.5px;color:var(--blue)}
.sk-focus{border:1px solid var(--blue);background:var(--st-blue-bg)}
/* 送迎 */
.sk-route{margin:6px 0 0;padding-left:22px}
.sk-route li{margin:6px 0;line-height:1.5}
.sk-rules{margin:4px 0 8px;padding-left:20px;font-size:13px;line-height:1.6}
/* 署名：書面は枠の中だけスクロール（最後まで読んだかを見るため） */
.sk-consent-doc{white-space:pre-wrap;max-height:52vh;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--white);font-size:15px;line-height:1.75}
.sk-consent-end{text-align:center;color:var(--slate);margin-top:12px;font-size:12px}
.sk-sign-pad{display:block;width:100%;height:auto;aspect-ratio:3/1;border:2px dashed var(--sub1);border-radius:10px;background:var(--white);touch-action:none;cursor:crosshair}

/* ===== 🧚 MYLO が話しかける（2026-10-25 代表「イラストと共にMYLOが登場するように。できればアニメーション」） =====
   絵は assets/neuri/ の原画のまま（描き直さない）。動きは CSS だけ＝ぴょこっと出る→ふわふわ浮く→ときどき首をかしげる。
   ⚠ 動きが苦手な人の設定（prefers-reduced-motion）では止める */
.mylo-talk{display:flex;gap:10px;align-items:flex-end;margin:10px 0 12px}
.mylo-talk .mylo-pop{width:66px;height:auto;flex-shrink:0;transform-origin:50% 90%;
  animation:mylo-in .6s cubic-bezier(.28,1.55,.5,1) both,mylo-float 3.4s ease-in-out .7s infinite}
.mylo-talk.thinking .mylo-pop{animation:mylo-in .6s cubic-bezier(.28,1.55,.5,1) both,mylo-think 1.8s ease-in-out .6s infinite}
.mylo-talk .mylo-bubble{position:relative;flex:1;min-width:0;background:var(--mylo-soft);border:1px solid var(--mylo-blue);border-radius:16px;
  padding:10px 13px;font-size:13.5px;line-height:1.6;color:var(--ink);animation:mylo-bubble .45s ease-out .25s both}
.mylo-talk .mylo-bubble::before{content:"";position:absolute;left:-8px;bottom:16px;width:14px;height:14px;background:var(--mylo-soft);
  border-left:1px solid var(--mylo-blue);border-bottom:1px solid var(--mylo-blue);transform:rotate(45deg)}
.mylo-talk .mylo-name{font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--mylo-ink);margin-bottom:2px}
.mylo-talk .mylo-q{margin:4px 0}
.mylo-talk .mylo-q b{color:var(--mylo-ink)}
.mylo-dots{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}
.mylo-dots i{width:6px;height:6px;border-radius:50%;background:var(--mylo-ink);opacity:.25;animation:mylo-dot 1.2s infinite}
.mylo-dots i:nth-child(2){animation-delay:.2s}.mylo-dots i:nth-child(3){animation-delay:.4s}
@keyframes mylo-in{0%{transform:translateY(34px) scale(.55);opacity:0}100%{transform:none;opacity:1}}
@keyframes mylo-float{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-6px) rotate(-4deg)}65%{transform:translateY(-2px) rotate(3deg)}}
@keyframes mylo-think{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg) translateY(-3px)}}
@keyframes mylo-bubble{0%{opacity:0;transform:translateX(-8px) scale(.96)}100%{opacity:1;transform:none}}
@keyframes mylo-dot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.mylo-talk .mylo-pop,.mylo-talk .mylo-bubble,.mylo-dots i{animation:none!important}}
/* NEURI（先生と同じ立場）はミントの吹き出し。MYLO（答える・助言する）は青 */
.mylo-talk.is-neuri .mylo-bubble,.mylo-talk.is-neuri .mylo-bubble::before{background:var(--neuri-soft);border-color:var(--neuri-mint)}
.mylo-talk.is-neuri .mylo-name{color:var(--blue)}
.mylo-talk.is-neuri .mylo-q b{color:var(--blue)}
/* 🧭 ホームのあいさつは NEURI（2026-10-26）。ミントの台にする */
.mylo-card.is-neuri{background:linear-gradient(125deg,var(--neuri-soft) 0%,var(--white) 65%,var(--neuri-soft) 100%);border-color:var(--neuri-mint)}
.mylo-card.is-neuri .mylo-name{color:var(--blue)}
.mylo-card.is-neuri .mylo-line .num{color:var(--blue)}

/* 📅 シフトと基準配置（2026-10-26。src/ui/fc/shift.js） */
.sh-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.sh-day{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline;text-align:left;background:#fff;border:1px solid var(--line);border-left:4px solid var(--in);border-radius:8px;padding:6px 8px;font-size:13px;color:var(--ink)}
.sh-day .m{flex-basis:100%;font-size:11px;color:var(--slate);line-height:1.35}
.sh-day.red{border-left-color:var(--out)}
.sh-day.yel{border-left-color:var(--alert)}
.sh-day.off{border-left-color:var(--grey);color:var(--slate);background:var(--paper)}
.sh-day.on{outline:2px solid var(--blue)}
.sh-bar{display:flex;height:16px;border-radius:4px;overflow:hidden;margin:8px 0 2px;border:1px solid var(--line)}
.sh-bar span{flex:1;background:var(--in)}
.sh-bar span.red{background:var(--out)}
.sh-bar span.yel{background:var(--alert)}
.sh-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--slate);font-variant-numeric:tabular-nums}
.sh-card{border-top:1px solid var(--mist);padding:8px 0}
.sh-card.off{color:var(--slate)}
.sh-who{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}
.sh-who small{color:var(--slate)}
.sh-who .sh-chk{margin-left:auto}
.sh-line{display:flex;align-items:center;gap:4px;margin:3px 0;flex-wrap:wrap}
.sh-lab{width:5.2em;font-size:12px;color:var(--slate)}
.sh-line input[type=time]{width:8.6em;font-variant-numeric:tabular-nums}
.sh-chk{display:inline-flex;align-items:center;gap:3px;margin-right:8px;white-space:nowrap}
.sh-staff{border-top:1px solid var(--mist);padding:6px 0}
/* 💴 小口出納帳（src/ui/fc/cash.js） */
.cs-list{display:grid;gap:6px}
.cs-row{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12.5px}
.cs-row.in{background:#f3f8f2}
.cs-row .m{font-size:10.5px;color:var(--slate)}
.cs-l{min-width:0;flex:1;overflow-wrap:anywhere}
.cs-r{text-align:right;white-space:nowrap}
.cs-r .num{font-variant-numeric:tabular-nums}
.cs-row.in .cs-r b{color:var(--in)}
.cs-r .acts{justify-content:flex-end;margin-top:4px}
/* 📨 署名リンクのアクセスコード（src/ui/fc/consent.js） */
.cs-code{font-size:30px;font-weight:800;letter-spacing:.25em;text-align:center;padding:10px;margin:6px 0;border:2px dashed var(--line);border-radius:12px;background:#fff;font-variant-numeric:tabular-nums}
/* 🧩 日報の活動の行（いくつでも）。🧭 プロジェクト学習のときはテーマの欄が下に出る */
.sk-actrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.sk-actrow [data-ak="活動"]{flex:1 1 12em;width:auto;min-width:0}
.sk-actrow [data-ak="分"]{flex:0 0 5em;width:5em}
.sk-actrow select[data-ak="きっかけ"]{flex:0 1 10em;width:auto}
.sk-actrow [data-ak="テーマ"]{flex:1 1 100%;order:5;width:auto}
.sk-actrow [data-ak="テーマ"][hidden]{display:none}
.sk-actrow.proj{padding:6px 8px;border-left:3px solid var(--blue);background:#f5f8fd;border-radius:8px}
