/* ほうもんノート(見本)― 共通スタイル */
:root{
  --bg:#F7F4EE; --bg2:#EFEAE0; --card:#FFFFFF; --ink:#1A2733; --ink2:#43525E; --ink3:#6B7882;
  --line:#E3DCCF; --line2:#EEE9E0;
  --teal:#0E6B66; --teal2:#138B84; --tealSoft:#E2F2EF; --tealLine:#BADDD6;
  --navy:#17324D; --navySoft:#E7EDF5;
  --amber:#8F5806; --amberSoft:#FDF0D6; --amberLine:#EED096;
  --rose:#B03F33; --roseSoft:#FBE8E4; --roseLine:#F0C6BE;
  --green:#276F44; --greenSoft:#E2F2E7; --greenLine:#BCDFC8;
  --blue:#2C5A96; --blueSoft:#E6EEF9;
  --line-green:#06C755;
  --r:20px; --r2:14px;
  --sh:0 1px 2px rgba(23,50,77,.05),0 8px 24px rgba(23,50,77,.07);
  --sh2:0 2px 6px rgba(23,50,77,.08),0 22px 50px rgba(23,50,77,.16);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic UI",Meiryo,system-ui,sans-serif;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.num{font-family:"Inter","Noto Sans JP",sans-serif;font-feature-settings:"tnum"}
a{color:var(--teal)}
button{font:inherit;color:inherit;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid rgba(19,139,132,.5);outline-offset:2px}
svg{flex:none}
h1,h2,h3{line-height:1.4;margin:0}
p{margin:0 0 .6em}
.muted{color:var(--ink3)}
.small{font-size:14.5px}
.nowrap{white-space:nowrap}

/* ===== header ===== */
.bar{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.93);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.bar-in{display:flex;align-items:center;gap:12px;min-height:64px;padding:8px 20px;max-width:1600px;margin:0 auto}
.logo{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:inherit}
.logo .mk{width:38px;height:38px;border-radius:12px;background:linear-gradient(140deg,var(--teal2),var(--navy));display:grid;place-items:center;box-shadow:0 4px 12px rgba(14,107,102,.3);flex:none}
.logo b{display:block;font-size:16px;color:var(--navy);line-height:1.25;white-space:nowrap}
.logo small{display:block;font-size:12.5px;color:var(--ink3);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar .sp{flex:1}
.demo-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--amber);background:var(--amberSoft);border:1px solid var(--amberLine);border-radius:999px;padding:4px 12px;white-space:nowrap}
.hbtn{border:1px solid var(--line);background:#fff;min-height:44px;padding:0 14px;border-radius:12px;font-weight:700;font-size:15px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:var(--ink);text-decoration:none}
.hbtn:hover{background:var(--bg)}
.hbtn .sh{display:none}
@media (max-width:640px){
  .bar-in{padding:8px 14px;gap:8px;min-height:58px}
  .logo small{display:none}
  .logo .mk{width:34px;height:34px}
  .demo-badge{font-size:12.5px;padding:4px 10px}
}
@media (max-width:440px){
  .btn{font-size:15.5px;padding:0 14px}
  .hbtn{padding:0 10px;gap:5px}
  .hbtn .sh{display:inline}
  .demo-badge svg{display:none}
  .logo>div{display:none}
  .hbtn .long{display:none}
}

/* ===== buttons ===== */
.btn{border:0;min-height:52px;padding:0 22px;border-radius:15px;font-weight:700;font-size:16.5px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .12s,box-shadow .2s,background .2s,opacity .2s;text-decoration:none;line-height:1.3;text-align:center}
.btn:active{transform:scale(.98)}
.btn.pri{background:var(--teal);color:#fff;box-shadow:0 8px 20px rgba(14,107,102,.26)}
.btn.pri:hover{background:#0a5955}
.btn.navy{background:var(--navy);color:#fff;box-shadow:0 8px 20px rgba(23,50,77,.2)}
.btn.navy:hover{background:#0f2438}
.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn.ghost:hover{background:var(--bg)}
.btn.green{background:var(--green);color:#fff;box-shadow:0 8px 20px rgba(39,111,68,.24)}
.btn.rose{background:#fff;border:1px solid var(--roseLine);color:var(--rose)}
.btn.line{background:var(--line-green);color:#fff}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn.sm{min-height:44px;font-size:15px;padding:0 15px;border-radius:12px}
.btn.xl{min-height:64px;font-size:19px;border-radius:18px;padding:0 26px}
.btn.block{display:flex;width:100%}
.btns{display:flex;flex-wrap:wrap;gap:10px}

/* ===== parts ===== */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.pad{padding:20px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:700;border-radius:999px;padding:2px 11px;white-space:nowrap;line-height:1.7}
.pill.rose{background:var(--roseSoft);color:var(--rose)}
.pill.amber{background:var(--amberSoft);color:var(--amber)}
.pill.navy{background:var(--navySoft);color:var(--navy)}
.pill.green{background:var(--greenSoft);color:var(--green)}
.pill.blue{background:var(--blueSoft);color:var(--blue)}
.pill.teal{background:var(--tealSoft);color:var(--teal)}
.pill.gray{background:var(--bg2);color:var(--ink2)}
.av{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-weight:800;color:#fff;font-size:18px;flex:none}
.note{display:flex;gap:10px;align-items:flex-start;border-radius:14px;padding:12px 14px;font-size:15px;line-height:1.65}
.note.amber{background:var(--amberSoft);border:1px solid var(--amberLine);color:#5E3C05}
.note.teal{background:var(--tealSoft);border:1px solid var(--tealLine);color:#0B4A46}
.note.rose{background:var(--roseSoft);border:1px solid var(--roseLine);color:#7A2A21}
.note.navy{background:var(--navySoft);border:1px solid #CBD8E7;color:var(--navy)}
.note svg{margin-top:3px}
.sec-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:26px 0 12px}
.sec-h h2{font-size:19px;color:var(--navy)}
.sec-h .sp{flex:1}
.page-h{margin:22px 0 6px}
.page-h h1{font-size:25px;color:var(--navy);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.page-h p{color:var(--ink2);margin:4px 0 0;font-size:15.5px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:15.5px}
.kv dt{color:var(--ink3)}
.kv dd{margin:0}
.done{opacity:.6}
.done .card,.card.done{background:#FAF8F4}

/* tables: wrapped so the page itself never scrolls sideways */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r2);border:1px solid var(--line);background:#fff}
table.t{border-collapse:collapse;width:100%;font-size:15.5px}
table.t th,table.t td{padding:11px 14px;border-bottom:1px solid var(--line2);text-align:left;white-space:nowrap}
table.t th{background:#FBF9F5;color:var(--ink2);font-weight:700;font-size:14px}
table.t td.r,table.t th.r{text-align:right}
table.t tr:last-child td{border-bottom:0}
table.t tfoot td{font-weight:800;background:#FBF9F5;border-top:2px solid var(--line)}
.scroll-hint{font-size:13px;color:var(--ink3);margin:6px 2px 0;display:none}
@media (max-width:820px){.scroll-hint{display:block}}

/* forms */
textarea.ta,input.in,select.in{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff;font-size:17px;line-height:1.7}
textarea.ta{min-height:130px;resize:vertical}
label.lb{display:block;font-weight:700;font-size:15px;margin:0 0 6px;color:var(--ink2)}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--navy);color:#fff;border-radius:14px;padding:12px 18px;font-weight:700;font-size:15.5px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:90;max-width:calc(100vw - 32px);box-shadow:var(--sh2);display:flex;gap:9px;align-items:center}
.toast.show{opacity:1;transform:translateX(-50%)}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(19,31,44,.45);z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:#fff;border-radius:22px;box-shadow:var(--sh2);width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto}
.modal-h{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line2);position:sticky;top:0;background:#fff;z-index:1}
.modal-h h3{font-size:18px;color:var(--navy);flex:1;min-width:0}
.modal-b{padding:18px}
.modal-f{padding:14px 18px;border-top:1px solid var(--line2);display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

/* AI support */
.ai-fab{position:fixed;right:16px;bottom:16px;z-index:60;border:0;background:var(--navy);color:#fff;border-radius:999px;min-height:54px;padding:0 20px 0 16px;font-weight:700;font-size:15.5px;display:flex;align-items:center;gap:8px;box-shadow:0 10px 26px rgba(23,50,77,.3)}
.ai-fab:hover{background:#0f2438}
body.has-actionbar .ai-fab{bottom:104px}
.ai-panel{position:fixed;right:16px;bottom:16px;z-index:70;width:400px;max-width:calc(100vw - 32px);height:min(620px,calc(100vh - 32px));background:#fff;border-radius:22px;box-shadow:var(--sh2);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line)}
.ai-head{display:flex;align-items:center;gap:10px;padding:14px 14px 12px 16px;background:linear-gradient(135deg,var(--navy),#24507A);color:#fff}
.ai-head b{display:block;font-size:16px}
.ai-head small{display:block;font-size:12.5px;opacity:.85}
.ai-head .x{margin-left:auto;white-space:nowrap;flex:none;background:rgba(255,255,255,.14);border:0;color:#fff;min-height:42px;border-radius:12px;padding:0 12px;display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px}
.ai-body{flex:1;overflow:auto;padding:14px;background:#FAF8F4}
.ai-foot{border-top:1px solid var(--line2);padding:10px;display:flex;gap:8px;background:#fff}
.ai-foot input{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:16px}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.chip{border:1px solid var(--tealLine);background:var(--tealSoft);color:var(--teal);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700;text-align:left;line-height:1.4}
.msg{max-width:88%;border-radius:16px;padding:10px 13px;margin:0 0 10px;font-size:15.5px;line-height:1.65;white-space:pre-wrap;word-break:break-word}
.msg.me{margin-left:auto;background:var(--teal);color:#fff;border-bottom-right-radius:5px}
.msg.bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}
.msg .who{display:block;font-size:12.5px;font-weight:700;opacity:.75;margin-bottom:2px}
.nophone{font-size:12.5px;color:var(--ink3);background:#fff;border:1px dashed var(--line);border-radius:12px;padding:8px 10px;margin-bottom:10px;line-height:1.55}

/* motion */
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fade{animation:fadeUp .35s ease both}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(176,63,51,.45)}70%{box-shadow:0 0 0 18px rgba(176,63,51,0)}100%{box-shadow:0 0 0 0 rgba(176,63,51,0)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* AI の待ち・失敗 */
.ai-wait{display:flex;align-items:center;gap:10px;color:var(--ink2);font-weight:700;font-size:15px;padding:4px 0}
.dots{display:inline-flex;gap:4px}
.dots i{width:8px;height:8px;border-radius:50%;background:var(--teal2);animation:blink 1.2s infinite ease-in-out}
.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ai-err{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;color:#7A2A21;font-size:15px;line-height:1.6}
.ai-err>div{flex:1;min-width:180px}
.ai-err svg{color:var(--rose);margin-top:2px}

/* スマホ幅の最後の調整(後に書くので上の指定より優先) */
@media (max-width:440px){
  .bar-in{padding:8px 12px;gap:6px}
  .demo-badge{font-size:12px;padding:3px 8px}
  .btn{font-size:15.5px;padding:0 12px}
  .btn.xl{font-size:18px}
}

/* ===== 2 回目の見直しで足した部品 ===== */
.ai-urgent{display:flex;gap:7px;align-items:flex-start;font-size:14px;font-weight:700;color:var(--rose);background:var(--roseSoft);border:1px solid var(--roseLine);border-radius:12px;padding:8px 10px;margin-bottom:8px;line-height:1.5}
.ai-urgent svg{margin-top:2px}
/* 浮かぶ AI ボタン:下の操作バーの上に置き、狭い画面では小さめに */
.ai-fab{bottom:calc(var(--abh, 0px) + 14px)}
body.has-actionbar .ai-fab{bottom:calc(var(--abh, 96px) + 12px)}
@media (max-width:640px){.ai-fab{min-height:46px;padding:0 14px 0 12px;font-size:14.5px;right:12px}}
/* 下書きの見せ方:AI が整えた文 = 緑の下線、未記入 = 黄色 */
.pv{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;line-height:1.75}
.pv-l{padding:3px 0;border-bottom:1px dashed var(--line2)}
.pv-l:last-child{border-bottom:0}
.pv-h{color:var(--navy)}
.ai-txt{background:linear-gradient(transparent 70%,#CDEBE5 70%)}
mark.miss{background:#FBE3A8;color:#6B4300;font-weight:800;border-radius:6px;padding:0 5px}
.legend2{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--ink2);margin:6px 0 10px}
.legend2 span{display:flex;gap:6px;align-items:center}
/* 変更の履歴:変える前 → 変えた後 */
.chg{margin-top:6px;border-left:3px solid var(--line);padding-left:10px;font-size:14px}
.chg div{margin:3px 0}
.chg del{color:var(--rose);text-decoration:line-through;background:var(--roseSoft);border-radius:4px;padding:0 3px}
.chg ins{color:var(--green);text-decoration:none;background:var(--greenSoft);border-radius:4px;padding:0 3px}
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.seg button{min-height:48px;border:1.5px solid var(--line);background:#fff;border-radius:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 6px;line-height:1.25}
.seg button[aria-pressed="true"][data-v="done"]{background:var(--teal);border-color:var(--teal);color:#fff}
.seg button[aria-pressed="true"][data-v="skip"]{background:var(--amberSoft);border-color:#D9A440;color:#6B4300}
.seg button[aria-pressed="true"][data-v="na"]{background:var(--bg2);border-color:#B9B2A6;color:var(--ink)}
.radios{display:grid;gap:8px}
.radios label{display:flex;gap:10px;align-items:center;border:1.5px solid var(--line);border-radius:14px;padding:10px 14px;font-weight:700;cursor:pointer}
.radios label:has(input:checked){border-color:var(--teal2);background:var(--tealSoft)}
.radios input{width:22px;height:22px}
body.has-actionbar .toast{bottom:calc(var(--abh, 90px) + 12px)}

/* ===== 来月のシフト・LINE・電話当番(11-12 追加) ===== */
.sbar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 6px}
.sb{display:inline-flex;align-items:center;gap:7px;border-radius:12px;padding:9px 13px;text-decoration:none;font-size:15px;border:1px solid}
.sb.rose{background:var(--roseSoft);border-color:var(--roseLine);color:var(--rose)}
.sb.amber{background:var(--amberSoft);border-color:var(--amberLine);color:var(--amber)}
.sb.gray{background:var(--bg2);border-color:var(--line);color:var(--ink2)}
.sflow{list-style:none;padding:0;margin:12px 0 4px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.sflow li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:13.5px;font-weight:700;color:var(--ink2);display:flex;gap:7px;align-items:center;line-height:1.35}
.sflow li i{flex:none;width:24px;height:24px;border-radius:50%;background:var(--bg2);display:grid;place-items:center;font-style:normal;font-family:Inter;font-size:13px}
.sflow li.ok{border-color:var(--tealLine);background:var(--tealSoft);color:var(--teal)}
.sflow li.ok i{background:var(--teal);color:#fff}
@media (max-width:600px){.sflow{grid-template-columns:repeat(2,minmax(0,1fr))}}
.two-col{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px}
@media (max-width:860px){.two-col{grid-template-columns:minmax(0,1fr)}}
.subrow{display:flex;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.subrow:last-child{border-bottom:0}
.subrow .av,.cand .av{width:34px;height:34px;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex:none}
.subrow .tx{flex:1 1 180px;min-width:0}
.subrow .tx small{display:block;color:var(--ink2);font-size:13.5px;line-height:1.5}
.heat,.mcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:8px}
.heat .dow,.mcal .dow{text-align:center;font-weight:700;font-size:12.5px;color:var(--ink3)}
.hc{border-radius:8px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;border:1px solid var(--line2)}
.hc b{font-family:Inter;font-size:13.5px}.hc small{font-size:11px;color:var(--ink2)}
i.hc{display:inline-block;width:14px;height:14px;min-height:0;border-radius:4px;vertical-align:-2px;margin-right:4px}
.hc.l0{background:#fff}.hc.l1{background:#FCEBD0}.hc.l2{background:#F6CB93}.hc.l3{background:#EBA35E}.hc.l4{background:#C9612E;color:#fff}.hc.l4 small{color:#fff}
.ssum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ssum>div{background:var(--bg);border-radius:12px;padding:10px 12px;line-height:1.3}
.ssum small{display:block;font-size:12.5px;font-weight:700;color:var(--ink2)}
.ssum b{font-size:26px;color:var(--navy)}.ssum span{font-size:13px;color:var(--ink2);margin-left:3px}
.ssum .am{background:var(--amberSoft)}.ssum .am b{color:var(--amber)}
.ssum .rs{background:var(--roseSoft)}.ssum .rs b{color:var(--rose)}
.ssum .gr{background:var(--greenSoft)}.ssum .gr b{color:var(--green)}
@media (max-width:700px){.ssum{grid-template-columns:repeat(2,minmax(0,1fr))}}
.prow.sx.warn{border-left:4px solid #D9A440}.prow.sx.none,.prow.sx.open{border-left:4px solid var(--rose)}
.warnline{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap;background:var(--amberSoft);color:#5E3C05;border-radius:10px;padding:5px 9px;font-size:14px;font-weight:700;margin:6px 0 4px;line-height:1.5}
.warnline svg{margin-top:3px;flex:none}
.warnline.rs{background:var(--roseSoft);color:#7A2A21}
.warnline b{color:var(--rose)}
.subst{display:flex;flex-wrap:wrap;gap:5px}
.subst .pill{white-space:normal;line-height:1.45}
.h3r{margin:0;font-size:17px;color:var(--rose);display:flex;gap:6px;align-items:center}
details.more2{margin-top:10px}
details.more2>summary{cursor:pointer;padding:12px 16px;font-weight:700;display:flex;gap:7px;align-items:center;list-style:none}
details.more2>summary::-webkit-details-marker{display:none}
.seg2{display:inline-flex;background:var(--bg2);border-radius:12px;padding:4px;gap:4px;flex-wrap:wrap}
.seg2 button{border:0;background:transparent;min-height:40px;padding:0 12px;border-radius:9px;font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;gap:5px;color:var(--ink2)}
.seg2 button[aria-pressed="true"]{background:#fff;color:var(--navy);box-shadow:0 1px 5px rgba(23,50,77,.14)}
.seg2 button[disabled]{opacity:.45}
.seg2.sm button{min-height:36px;font-size:13.5px;padding:0 10px}
table.grid{border-collapse:separate;border-spacing:0;font-size:13px}
table.grid th,table.grid td{padding:0;text-align:center;border-bottom:1px solid var(--line2);border-right:1px solid var(--line2);min-width:38px}
table.grid thead th{padding:5px 2px;font-family:Inter;line-height:1.2;background:#FBF9F5}
table.grid thead th.we{color:var(--rose)}
table.grid th small{font-size:11px;color:var(--ink3);font-family:"Noto Sans JP"}
table.grid .stk{position:sticky;left:0;z-index:1;background:#fff;min-width:78px;text-align:left;padding:5px 8px;font-size:13.5px;line-height:1.3}
table.grid thead .stk{background:#FBF9F5}
.dotc{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}
.gc button{width:100%;min-height:42px;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;font-family:Inter;line-height:1.1;padding:2px}
.gc button b{font-size:14px}.gc button small{font-size:10px;color:var(--ink2);font-family:"Noto Sans JP"}
.gc.off{background:repeating-linear-gradient(135deg,#F1EDE6 0 5px,#E8E2D7 5px 10px)}
.gc.ch button{background:var(--blueSoft)}
.gc button.rs{background:var(--roseSoft);color:var(--rose)}.gc button.am{background:var(--amberSoft);color:var(--amber)}
.gc .tw{position:absolute;top:1px;right:3px;color:var(--amber);font-weight:900;font-style:normal;font-size:12px}
tr.pend .stk{color:var(--rose)}
.legend2 .lg{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:4px;border:1px solid var(--line)}
.lg.off{background:repeating-linear-gradient(135deg,#F1EDE6 0 3px,#E0D9CC 3px 6px)}.lg.ch{background:var(--blueSoft)}.lg.rs{background:var(--roseSoft)}.lg.am{background:var(--amberSoft)}
.mc{position:relative;border:1px solid var(--line);background:#fff;border-radius:10px;min-height:66px;padding:4px 2px;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.2}
.mc b{font-size:14px}.mc .tot{font-size:12px;color:var(--ink2)}
.mc .un{font-size:11px;font-weight:700;color:#fff;background:var(--rose);border-radius:999px;padding:0 6px}
.mc.off{background:repeating-linear-gradient(135deg,#F7F4EE 0 5px,#ECE6DB 5px 10px)}.mc small{font-size:11px;color:var(--ink3)}
.vhead{font-size:16px;margin-bottom:8px;line-height:1.6}
.cchips{display:flex;flex-wrap:wrap;gap:5px}
.cchip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700;background:var(--navySoft);color:var(--navy);line-height:1.5}
.cchip.hard{background:var(--navy);color:#fff}
.cchip.note{background:#FFF8E6;color:#6B4300;border:1px dashed #D9A440;border-radius:10px}
.cands{display:grid;gap:6px;max-height:44vh;overflow:auto;padding-right:2px}
.cand{display:flex;gap:9px;align-items:flex-start;border:1.5px solid var(--line);border-radius:14px;padding:9px 11px;cursor:pointer;background:#fff}
.cand:has(input:checked){border-color:var(--teal2);background:var(--tealSoft)}
.cand input{width:20px;height:20px;margin-top:7px;flex:none}
.cand .rk{font-family:Inter;font-weight:800;color:var(--teal);width:16px;margin-top:6px;flex:none}
.cand .cx{min-width:0;flex:1}
.cand .cx small{color:var(--ink2)}
.cand.no{opacity:.7;background:#FAF8F4;cursor:not-allowed}
.cand.capx{border-style:dashed}
.why{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.why em{font-style:normal;font-size:12.5px;font-weight:700;border-radius:8px;padding:1px 7px;line-height:1.55}
.why em.p{background:var(--greenSoft);color:var(--green)}.why em.w{background:var(--amberSoft);color:var(--amber)}.why em.b{background:var(--bg2);color:var(--ink2);text-decoration:line-through;text-decoration-thickness:1px}
.rbox{margin-top:12px}
.req{display:inline-block;margin-left:6px;background:var(--roseSoft);color:var(--rose);border-radius:6px;padding:0 6px;font-size:12px}
.chip[aria-pressed="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}
.ferr{color:var(--rose);font-weight:700;font-size:14.5px;min-height:4px;margin-top:6px}
.vacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
ul.lst{margin:6px 0;padding-left:20px;font-size:14.5px;line-height:1.65}
ul.lst li{margin-bottom:5px}
.lrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line2)}
.lrow .tx{flex:1 1 220px;min-width:0}.lrow .tx small{display:block;color:var(--ink2);font-size:13px}
.lrow.offr .tx b{color:var(--ink3)}
.cl-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.clb{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;text-align:left;line-height:1.35}
.clb small{display:block;font-size:12.5px;color:var(--ink2)}
.clb[aria-pressed="true"]{border-color:var(--teal2);background:var(--tealSoft)}
.un2{color:var(--amber);font-weight:700}
.crow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:8px;margin-bottom:6px;background:#FDFCFA}
.crow>select.in{flex:1 1 220px;width:auto}
.crow .cval{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1 1 200px}
.crow .cval:empty{display:none}
.crow .cval select.in{width:auto;flex:1 1 90px;padding:8px 10px;font-size:15px}
.crow select.in{min-height:44px}
.otherbox textarea{min-height:84px}
.aiint{margin-top:10px;border:1px solid var(--tealLine);background:#F4FBFA;border-radius:14px;padding:12px}
/* ヘルパーのカレンダー */
.hcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.hcal .dow{text-align:center;font-weight:700;font-size:13px;color:var(--ink3)}
.hcal .dow.su{color:var(--rose)}.hcal .dow.sa{color:var(--blue)}
.hd{position:relative;border:1px solid var(--line);background:#fff;border-radius:10px;min-height:96px;padding:4px;display:flex;flex-direction:column;gap:2px;text-align:left;line-height:1.2;min-width:0;overflow:hidden}
.hd>b{font-family:Inter;font-size:14px}
.hd.off{background:repeating-linear-gradient(135deg,#F3F0EA 0 5px,#E6E0D5 5px 10px)}
.hd.off .offt{font-size:11px;font-weight:700;color:var(--ink2)}
.hd[aria-pressed="true"]{outline:3px solid var(--teal2);outline-offset:-1px}
.hd.tdy{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}
.hd .vc{display:block;font-size:11px;border-radius:5px;padding:1px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hd .vc.b{background:var(--roseSoft);color:var(--rose)}.hd .vc.l{background:var(--blueSoft);color:var(--blue)}
.hd .cnt2{display:none}
.hd .chg{position:absolute;top:3px;right:3px;background:var(--amber);color:#fff;border-radius:6px;font-size:10px;font-weight:700;padding:0 4px;line-height:1.5}
@media (max-width:640px){
  .hd{min-height:58px;align-items:center;padding:4px 1px}
  .hd .vc{display:none}
  .hd .cnt2{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
  .hd .cnt2 i{width:7px;height:7px;border-radius:50%;display:block}
  .hd .cnt2 i.b{background:var(--rose)}.hd .cnt2 i.l{background:var(--blue)}
  .hd .chg{position:static;font-size:9.5px}
}
.offcal .od{min-height:64px;border:1.5px solid var(--line);border-radius:12px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.2;padding:2px}
.offcal .od b{font-family:Inter;font-size:16px}
.offcal .od small{font-size:11.5px;font-weight:700}
.offcal .od.x{background:var(--roseSoft);border-color:var(--roseLine);color:var(--rose)}
.offcal .od.p{background:var(--amberSoft);border-color:var(--amberLine);color:var(--amber)}
.jobcard{border:1.5px solid var(--tealLine);background:#fff;border-radius:16px;padding:14px;margin-top:10px}
.jobcard.won{border-color:var(--greenLine);background:var(--greenSoft)}
.jobcard.lost{opacity:.75;background:#FAF8F4;border-color:var(--line)}
.jobcard .meta{display:flex;flex-direction:column;gap:3px;font-size:16px;margin:6px 0 8px}
.jobcard .meta span{display:flex;gap:7px;align-items:center}
.hcards{display:grid;gap:10px;margin-top:12px}
.hcard{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;border-radius:16px;padding:14px 16px;background:#fff;border:1.5px solid var(--line);box-shadow:var(--sh)}
.hcard .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex:none}
.hcard .tx{flex:1;min-width:0;line-height:1.45}
.hcard .tx b{display:block;font-size:18px}
.hcard .tx small{display:block;color:var(--ink2);font-size:15px}
.hcard .bdg{min-width:30px;height:30px;border-radius:999px;background:var(--rose);color:#fff;font-family:Inter;font-weight:800;display:grid;place-items:center;padding:0 8px}
.hcard.rose{border-color:var(--roseLine)}.hcard.rose .ic{background:var(--roseSoft);color:var(--rose)}
.hcard.teal{border-color:var(--tealLine)}.hcard.teal .ic{background:var(--tealSoft);color:var(--teal)}
.hcard.amber{border-color:var(--amberLine)}.hcard.amber .ic{background:var(--amberSoft);color:var(--amber)}
.hcard.navy .ic{background:var(--navySoft);color:var(--navy)}
/* LINE 風の通知(見本) */
.linepv{position:fixed;left:50%;top:12px;transform:translate(-50%,-160%);z-index:95;width:min(92vw,380px);background:#fff;border-radius:16px;box-shadow:var(--sh2);padding:10px 12px;display:flex;gap:10px;align-items:flex-start;transition:transform .35s;border:1px solid var(--line)}
.linepv.show{transform:translate(-50%,0)}
.linepv .lg2{width:38px;height:38px;border-radius:11px;background:var(--line-green);color:#fff;display:grid;place-items:center;flex:none}
.linepv .bd{min-width:0;flex:1}
.linepv b{display:block;font-size:13px}.linepv span{font-size:14.5px;line-height:1.5;display:block}
.linepv small{font-size:11.5px;color:var(--ink3)}
.linepv .x2{border:0;background:transparent;color:var(--ink3);padding:2px}
@media (prefers-reduced-motion:reduce){.linepv{transition:none}}
.tgl{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:700;font-size:15px}
.tgl input{appearance:none;-webkit-appearance:none;width:48px;height:28px;border-radius:999px;background:#CFC8BC;position:relative;flex:none;cursor:pointer;transition:background .2s}
.tgl input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
.tgl input:checked{background:var(--teal)}
.tgl input:checked::after{left:23px}
@media (prefers-reduced-motion:reduce){.tgl input,.tgl input::after{transition:none}}
.setrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line2)}
.setrow:last-child{border-bottom:0}
.setrow .tx{flex:1 1 200px;min-width:0;line-height:1.45}
.setrow .tx small{display:block;color:var(--ink2);font-size:13.5px}
.lineq{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.qr{width:112px;height:112px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:repeat(9,1fr);padding:8px;gap:2px;flex:none}
.qr i{background:var(--ink);border-radius:1px}.qr i.w{background:transparent}
.lmsg{background:#8CABD9;border-radius:16px;padding:12px;display:grid;gap:8px}
.lmsg .bb{background:#fff;border-radius:14px 14px 14px 4px;padding:8px 11px;font-size:14.5px;max-width:92%;line-height:1.55}
.lmsg .bb small{display:block;color:var(--ink3);font-size:11.5px}
.oncall{border:1.5px solid var(--roseLine);background:#FFF8F6;border-radius:16px;padding:12px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.oncall .tx{flex:1 1 200px;line-height:1.45}
.oncall .tx small{display:block;color:var(--ink2);font-size:13.5px}
.ocgrid{display:grid;gap:8px}
.ocgrid .ocr{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,1.2fr) minmax(0,1.2fr);gap:8px;align-items:center}
@media (max-width:560px){.ocgrid .ocr{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ocgrid .ocr>b{grid-column:1 / -1}}
.ocgrid select.in{padding:8px 10px;font-size:15px}
.thr{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:10px;background:#fff}
.thr .msg{max-width:100%}
.t tr.wr td{background:#FFF8E9}
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (max-width:520px){.vgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.vbox{display:flex;flex-direction:column;gap:3px;border:1.5px solid var(--line);border-radius:14px;padding:8px 10px;background:#fff}
.vbox span{font-weight:700;font-size:15px}.vbox small{font-size:12px;color:var(--ink3)}
.vbox input.in{padding:8px 10px;font-size:20px;font-family:Inter}
.vbox .vout{display:none;font-style:normal;font-size:12px;font-weight:700;color:var(--rose);align-items:center;gap:3px}
.vbox.out{border-color:var(--roseLine);background:var(--roseSoft)}.vbox.out .vout{display:flex}
.docflag{display:flex;gap:10px;align-items:center;margin-top:12px;border:1.5px solid var(--roseLine);background:#FFF8F6;border-radius:14px;padding:12px 14px;font-weight:700;cursor:pointer;color:var(--rose)}
.docflag input{width:24px;height:24px}
.later{border:1px solid #CBD8E7;background:var(--navySoft);color:var(--navy);border-radius:999px;font-size:12.5px;font-weight:700;padding:2px 9px;display:inline-flex;gap:4px;align-items:center;margin-top:4px}
.signbox{margin:14px 0}
.sgpad{width:100%;height:150px;border:2px dashed var(--line);border-radius:14px;background:#fff;touch-action:none;display:block}
.signimg{max-width:100%;height:90px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:8px}

/* ===== 印刷(書類・運営指導・入力用一覧・シフトのカレンダー 共通) =====
   使い方:印刷したい中身を .pdoc で包む。1 人ずつ改ページは .pbreak。
   見出し .phead(事業所名・書類名・別名・期間)、足元 .pfoot(作成日)。ページ番号は @page で付ける。
   横向きにしたい時は body に .print-landscape を付けてから window.print()。 */
.phead,.pfoot,.print-only{display:none}
.print-hint{font-size:13.5px;color:var(--ink2)}
@page{size:A4 portrait;margin:14mm 12mm 16mm;@bottom-center{content:counter(page) " / " counter(pages);font-size:9pt;color:#444}}
@page land{size:A4 landscape;margin:10mm 10mm 14mm}
@media print{
  html,body{background:#fff!important;color:#000!important;font-size:10.5pt;line-height:1.55}
  .bar,.side,.side-bg,.ai-fab,.ai-panel,.toast,.linepv,.actionbar,#actionbar,.noprint,.no-print,.btn,.seg2,.sos,.modal-bg,.ai-chips,nav,.tabs,.sbar,.scroll-hint{display:none!important}
  .shell{display:block!important}.main,#app,.wrap{padding:0!important;margin:0!important;max-width:none!important}
  .phead,.pfoot,.print-only{display:block!important}
  .phead{border-bottom:1.5pt solid #000;margin:0 0 6mm;padding-bottom:2mm}
  .phead .po{font-size:9pt}.phead h1{font-size:15pt;margin:1mm 0 0;color:#000}
  .phead .pm{font-size:9.5pt;margin-top:1mm}
  .pfoot{border-top:.6pt solid #000;margin-top:6mm;padding-top:2mm;font-size:8.5pt}
  .pbreak{break-before:page;page-break-before:always}
  .pdoc{color:#000}
  .card,.note,.thr,.jobcard,.prow,.lrow,.subrow,tr,li,.pv-l,.hd,.mc{break-inside:avoid;page-break-inside:avoid;box-shadow:none!important}
  .card,.note{border:.6pt solid #000!important;background:#fff!important;color:#000!important}
  .pill,.cchip,.later{border:.5pt solid #000!important;background:#fff!important;color:#000!important}
  table{border-collapse:collapse!important;width:100%}
  th,td{border:.6pt solid #000!important;background:#fff!important;color:#000!important;padding:1.5mm 2mm!important}
  .tbl-wrap{overflow:visible!important;border:0!important}
  table.grid .stk{position:static!important}
  img.signimg{max-height:22mm;border:.5pt solid #000!important}
  a{color:#000;text-decoration:none}
  .print-landscape{page:land}
  .hcal,.mcal{gap:0!important}
  .hd,.mc{border:.5pt solid #000!important;border-radius:0!important;min-height:22mm!important;background:#fff!important}
  .hd .vc{display:block!important;border:0!important;background:#fff!important;color:#000!important;font-size:7.5pt}
  .hd .cnt2{display:none!important}
  .hd.off{background:#eee!important}
  .pdoc .page-h{display:none!important}
  .card:has(.hcal),.card:has(.mcal),.card:has(table),.pdoc .card.big{break-inside:auto!important;page-break-inside:auto!important;border:0!important;padding:0!important}
  .hcal .hd,.mcal .mc{min-height:16mm!important;padding:1mm!important}
}

/* PDF ボタン(html2pdf で作る時の見た目。印刷と同じ形) */
.pdf-out{background:#fff;color:#000;font-size:10.5pt;line-height:1.6;width:186mm;padding:0}
.pdf-out .phead,.pdf-out .pfoot,.pdf-out.print-only,.pdf-out .print-only{display:block!important}
.pdf-out .phead{border-bottom:1.5pt solid #000;margin:0 0 6mm;padding-bottom:2mm}
.pdf-out .phead .po{font-size:9pt}.pdf-out .phead h1{font-size:15pt;margin:1mm 0 0;color:#000}
.pdf-out .phead .pm{font-size:9.5pt;margin-top:1mm}
.pdf-out .pfoot{border-top:.6pt solid #000;margin-top:6mm;padding-top:2mm;font-size:8.5pt}
.pdf-out .ptext{white-space:pre-wrap}
