/* 書き込めるワークシート */
.ws{margin:12px 0 4px;padding:14px 16px 16px;border-radius:14px;background:#fffdf6;border:1.5px solid #e6d29a;box-shadow:0 2px 0 #efe2bd;color:#2b2a22;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:400}
.ws-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.ws-ic{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e0b53a;color:#2a1c00;font-weight:900}
.ws-h b{font-size:15px;color:#5a4300}
.ws-h em{font-style:normal;font-size:12px;font-weight:800;color:#8a6a10;background:#f6e7b6;border-radius:999px;padding:1px 8px}
.ws-saved{margin-left:auto;font-size:12px;color:#9a8a5a;transition:color .2s}
.ws-saved.on{color:#2f9a62;font-weight:800}
.ws-lead{margin:2px 0 10px;font-size:14px;line-height:1.6;color:#4a4330}
.ws-f{display:block;margin:0 0 10px}
.ws-f b{display:block;margin-bottom:4px;font-size:13.5px;font-weight:800;color:#3d3a2c}
.ws-f input,.ws-f textarea{width:100%;box-sizing:border-box;padding:9px 11px;border:1.5px solid #d9cfae;border-radius:10px;background:#fff;font-family:inherit;font-size:15px;line-height:1.6;color:#1d2b3a;resize:vertical}
.ws-f input:focus,.ws-f textarea:focus{outline:none;border-color:#2357b5;box-shadow:0 0 0 3px rgba(35,87,181,.15)}
.ws-f ::placeholder{color:#aaa38e}
.ws-check{display:flex;gap:8px;align-items:flex-start;margin:4px 0 10px;font-size:14px;font-weight:700;cursor:pointer}
.ws-check input{width:18px;height:18px;margin-top:2px;accent-color:#2f9a62;flex:none}
.ws-note{margin:0 0 10px;padding:7px 10px;border-radius:8px;background:#fff3d6;font-size:13px;color:#7a5a00}
.ws-btn{display:block;width:100%;margin-top:4px;padding:11px 14px;border:none;border-radius:12px;background:linear-gradient(180deg,#3a6fd0,#2357b5);color:#fff;font-family:inherit;font-size:14.5px;font-weight:800;cursor:pointer;box-shadow:0 3px 0 #163a7c}
.ws-btn.ok{background:linear-gradient(180deg,#3fae5a,#2c8a45);box-shadow:0 3px 0 #1a5229}
.ws-hint{display:block;margin-top:6px;font-size:12.5px;line-height:1.5;color:#7a7360}
/* 守護者の欄（暗い背景）の中 */
.bt-ws .ws{margin-top:14px}
@media (max-width:600px){.ws{padding:12px 12px 14px}.ws-f input,.ws-f textarea{font-size:16px}}
.ws-pre{margin:0 0 10px;padding:10px 12px;max-height:340px;overflow:auto;white-space:pre-wrap;word-break:break-word;border-radius:10px;background:#fff;border:1px solid #e6dcc0;font-family:inherit;font-size:13.5px;line-height:1.75;color:#2b2a22}
.ws-pre mark{background:#ffe066;border-radius:4px;padding:0 2px;font-weight:800}
.ws-count{margin:0 0 10px;padding:9px 12px;border-radius:10px;font-size:14px;font-weight:800}
.ws-count.ng{background:#fff1d6;color:#8a5a00}.ws-count.ng b{font-size:18px}
.ws-count.ok{background:#e3f6ea;color:#1f6a3d}
.ws-btn.sub{margin-top:8px;background:#fff;color:#2357b5;border:1.5px solid #2357b5;box-shadow:none}
.ws-btn:disabled{opacity:.45;cursor:not-allowed}
.ws-btn.gdoc{display:flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:#1d3a6e;border:1.5px solid #c9d6ee;box-shadow:0 3px 0 #c9d6ee}
.ws-btn.gdoc.ok{background:linear-gradient(180deg,#3fae5a,#2c8a45);color:#fff;border-color:#2c8a45}
.gd-ic{display:inline-block;width:16px;height:20px;border-radius:2px;background:linear-gradient(180deg,#4285f4,#2a6ee8);position:relative;flex:none}
.gd-ic::after{content:"";position:absolute;left:3px;right:3px;top:7px;height:7px;background:repeating-linear-gradient(180deg,#fff 0 1.5px,transparent 1.5px 3px)}
.ws-doclink{display:inline-block;margin-top:8px;font-size:14px;font-weight:800;color:#2357b5}

.ws-rows{margin:0 0 10px;overflow-x:auto;border-radius:10px;border:1px solid #e6dcc0;background:#fff}
.ws-rows table{border-collapse:collapse;min-width:100%}
.ws-rows th{padding:6px 8px;background:#f7f1de;font-size:12px;font-weight:800;color:#5a4300;text-align:left;white-space:nowrap}
.ws-rows td{padding:3px;border-top:1px solid #f0e8cf}
.ws-rows input{width:100%;min-width:8em;box-sizing:border-box;padding:7px 8px;border:1px solid #e3dcc4;border-radius:6px;font-family:inherit;font-size:14px}
.ws-rows input:focus{outline:none;border-color:#2357b5}
.ws-btn.gsheet{display:flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:#1b5e3a;border:1.5px solid #bfe0cc;box-shadow:0 3px 0 #bfe0cc}
.ws-btn.gsheet.ok{background:linear-gradient(180deg,#3fae5a,#2c8a45);color:#fff;border-color:#2c8a45}
.gs-ic{display:inline-block;width:16px;height:20px;border-radius:2px;background:#1fa463;position:relative;flex:none}
.gs-ic::after{content:"";position:absolute;left:3px;right:3px;top:6px;bottom:4px;background:linear-gradient(#fff,#fff) 0 0/100% 1.5px no-repeat,linear-gradient(#fff,#fff) 0 50%/100% 1.5px no-repeat,linear-gradient(#fff,#fff) 50% 0/1.5px 100% no-repeat;border:1.5px solid #fff;box-sizing:border-box}
@media (max-width:600px){.ws-rows input{font-size:16px}}

.ws-doclink[hidden]{display:none}
.ws-rn{font-size:12px;font-weight:800;color:#8a6a10;white-space:nowrap;padding:0 6px!important}
/* スマホ：表は1件ずつのカードにして、縦に並べる */
@media (max-width:600px){
  .ws-rows{border:none;background:none;overflow:visible}
  .ws-rows table,.ws-rows tbody,.ws-rows tr,.ws-rows td{display:block;width:100%}
  .ws-rows tr:first-child{display:none}
  .ws-rows tr{margin-bottom:10px;padding:8px 10px 10px;border:1px solid #e6dcc0;border-radius:10px;background:#fff}
  .ws-rows td{border:none;padding:3px 0}
  .ws-rows td::before{content:attr(data-label);display:block;font-size:12px;font-weight:800;color:#5a4300;margin-bottom:2px}
  .ws-rows td.ws-rn{padding:0 0 4px!important;font-size:13px}
  .ws-rows td.ws-rn::before{display:none}
  .ws-rows input{min-width:0}
}

/* 記録ノートの状態 */
.ws-sync{margin-top:12px}
.ws-sync:not(.off){display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:9px 12px;border-radius:10px;background:#eef7f1;border:1px solid #cfe8d8;font-size:13.5px;font-weight:700;color:#1f6a3d}
.ws-sync .dot{width:9px;height:9px;border-radius:50%;background:#2f9a62;flex:none}
.ws-sync.saving .dot{background:#e0b53a;animation:wsPulse 1s infinite}
.ws-sync.need,.ws-sync.error{background:#fff4e5;border-color:#f3d6a6;color:#8a5a00}
.ws-sync.need .dot,.ws-sync.error .dot{background:#e08a1a}
.ws-sync a{margin-left:auto;color:#1d4fb8;font-weight:800}
.ws-sync .sync-re{border:1px solid #c98a2a;background:#fff;color:#8a5a00;border-radius:999px;padding:3px 10px;font-family:inherit;font-weight:800;cursor:pointer}
@keyframes wsPulse{50%{opacity:.3}}
.ws-tab{display:block;margin-top:6px;font-size:12px;color:#8a8270}
/* QUESTの上の帯 */
.ws-bar{margin:0 0 16px;padding:14px 16px;border-radius:16px;background:linear-gradient(180deg,#fffaf0,#fff4dc);border:2px solid #e6c25a;box-shadow:0 3px 0 #ead7a0;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif}
.wb-h{display:flex;gap:10px;align-items:flex-start}
.wb-ic{font-size:26px;line-height:1}
.wb-h b{display:block;font-size:17px;color:#5a4300}
.wb-h small{display:block;margin-top:2px;font-size:13px;line-height:1.6;color:#6b5f3f}
.wb-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.wb-it{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1.5px solid #e6d29a;border-radius:12px;background:#fff;font-family:inherit;font-size:15px;color:#2b2a22;text-align:left;cursor:pointer}
.wb-it:hover{border-color:#c9a93a;background:#fffdf6}
.wb-it em{flex:none;font-style:normal;font-size:12px;font-weight:900;color:#8a6a10;background:#f6e7b6;border-radius:999px;padding:2px 9px}
.wb-it span{flex:1;font-weight:700}
.wb-it i{flex:none;font-style:normal;font-weight:900;color:#2357b5}
/* その場で開くワークシート */
.ws-modal{position:fixed;inset:0;z-index:80;background:rgba(20,30,48,.55);display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px;overflow-y:auto}
.wm-in{position:relative;width:min(640px,100%)}
.wm-in .ws{margin:0;box-shadow:0 12px 32px rgba(0,0,0,.3)}
.wm-x{position:absolute;right:10px;top:8px;z-index:2;border:none;background:none;font-size:26px;line-height:1;color:#8a6a10;cursor:pointer}

/* 店舗リスト（第3章） */
.lab{margin:12px 0 4px;padding:14px 16px;border-radius:14px;background:#f3fbf6;border:1.5px solid #bfe0cc;color:#1d2b3a;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:400}
.lab-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.lab-h b{font-size:15px;color:#1b5e3a}
.lab-h em{margin-left:auto;font-style:normal;font-size:12px;font-weight:800;padding:2px 10px;border-radius:999px;background:#e8ecef;color:#6b7280}
.lab-h em.ok{background:#2f9a62;color:#fff}
.lab-p{margin:0 0 10px;font-size:14px;line-height:1.6;color:#3d4c40}
.lab-ok{margin:0 0 8px;font-weight:800;color:#1f6a3d}
.lab-row{display:flex;gap:8px;flex-wrap:wrap}.lab-row .ws-btn{flex:1 1 180px;width:auto;margin:0;text-align:center;text-decoration:none}
.lab-open{display:block;margin-top:8px;text-align:center;text-decoration:none;background:#fff;color:#1b5e3a;border:1.5px solid #bfe0cc;box-shadow:none}
.lab-open[hidden]{display:none}
.lab-res{margin:10px 0 0;font-size:14px;font-weight:800;line-height:1.6}.lab-res:empty{display:none}
.lab-res.ok{color:#1f6a3d}.lab-res.ng{color:#a8352a}
.lab-bar{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;border-radius:12px;background:#f3fbf6;border:1.5px solid #bfe0cc;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans",sans-serif}
.lab-bar b{display:block;color:#1b5e3a}.lab-bar small{display:block;font-size:12.5px;color:#4a6a55}
.lab-bar a{margin-left:auto;font-weight:800;color:#1b5e3a;white-space:nowrap}

/* メモ欄 */
.ws.memo{background:#fbfcfe;border-color:#d6dde8;box-shadow:0 2px 0 #e6ebf2}
.ws.memo .ws-ic{background:#6b7a92;color:#fff}
.ws.memo .ws-h b{color:#33475b}
.ws.memo textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid #cfd8e3;border-radius:10px;background:#fff;font-family:inherit;font-size:15px;line-height:1.7;resize:vertical}
.ws.memo textarea:focus{outline:none;border-color:#2357b5;box-shadow:0 0 0 3px rgba(35,87,181,.15)}
.memo-past{margin-top:8px}
.memo-past summary{cursor:pointer;font-size:13px;font-weight:800;color:#2357b5}
.memo-past .mp{margin-top:8px;padding:8px 10px;border-radius:8px;background:#f1f4f9}
.memo-past .mp b{display:block;font-size:12px;color:#55606f}
.memo-past .mp p{margin:2px 0 0;font-size:14px;white-space:pre-wrap;line-height:1.6}
@media (max-width:600px){.ws.memo textarea{font-size:16px}}
/* 依頼書（模擬案件） */
.lab.brief{background:#fffdf6;border-color:#e6d6a8}
.lab.brief .lab-h b{color:#6b4a0e}
.brief-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:6px 0 0;font-size:14px;line-height:1.7}
.brief-dl dt{font-weight:700;color:#6b4a0e;white-space:nowrap}
.brief-dl dd{margin:0}
@media (max-width:520px){.brief-dl{grid-template-columns:1fr}.brief-dl dd{margin-bottom:6px}}
/* 特別編：計算機・週報・週報一覧 */
.kc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}
.kc-f{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#4a5566}
.kc-f.wide{margin:10px 0}
.kc-in{display:flex;align-items:center;gap:6px}
.kc-in input,.kc-f textarea{width:100%;font:inherit;font-size:15px;padding:8px 10px;border:1.5px solid #cfd5de;border-radius:8px;background:#fff;color:#1d2b3a}
.kc-in em{font-style:normal;color:#6a7486;white-space:nowrap}
.kc-wait,.kc-note{font-size:13px;color:#6a7486;margin:6px 0}
.kc-rs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:8px 0}
.kc-r{background:#f4f7fb;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}
.kc-r span{font-size:12px;color:#5b6676}.kc-r b{font-size:22px;color:#1d3d7a;font-variant-numeric:tabular-nums}.kc-r small{font-size:11.5px;color:#6a7486}
.kc-ok{margin:8px 0;padding:10px 12px;border-radius:10px;background:#eaf7ef;color:#1d6b40;font-weight:700;font-size:14px}
.kc-ng{margin:8px 0;padding:10px 12px;border-radius:10px;background:#fff3f0;color:#7a2d22;font-size:14px}
.kc-ng ol{margin:6px 0 0;padding-left:1.4em;line-height:1.8}
.kc-gap{margin:10px 0;padding:10px 12px;border-radius:10px;background:#fff8e6;border:1px solid #f0dca4}
.kc-gap span{font-size:12px;color:#7a5a12}.kc-gap b{display:block;font-size:18px;color:#6b4a0e}.kc-gap p{margin:4px 0 0;font-size:13.5px}
.kc-msg{font-size:13px;color:#1d6b40;margin:6px 0 0}.kc-msg.ng{color:#b03a2e}
.ws-row2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kadm{max-width:860px;margin:0 auto;padding:24px 16px 80px}
.kadm h1{font-size:24px;margin:0 0 6px}.kadm-s{color:#6a7486}.kadm-s.ng{color:#b03a2e}
.kadm-i{background:#fff;border:1px solid #dde3ea;border-radius:12px;padding:14px 16px;margin:12px 0;color:#1d2b3a}
.kadm-i header{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.kadm-i header small,.kadm-i time{color:#6a7486;font-size:12.5px}
.kadm-i header em{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;background:#fff3d6;color:#7a5a12;border-radius:6px;padding:1px 8px}
.kadm-n{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0;font-size:13px;color:#4a5566}.kadm-n b{font-size:16px;color:#1d3d7a}
.kadm-p{font-size:12.5px;color:#5b6676}
.brief-heads{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px}
.brief-heads span{font-size:12.5px;padding:3px 9px;border-radius:6px;background:#fff;border:1px solid #bfe0cc;color:#1b5e3a}
.genre-pick{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.genre-pick button{font:inherit;font-size:14px;font-weight:700;padding:8px 16px;border-radius:999px;border:1.5px solid #bfe0cc;background:#fff;color:#1b5e3a;cursor:pointer}
.genre-pick button.on{background:#1b5e3a;color:#fff;border-color:#1b5e3a}
.ov-pre{white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.75;background:#fff;border:1px solid #bfe0cc;border-radius:10px;padding:10px 12px;margin:8px 0 12px;max-height:220px;overflow:auto;color:#1d2b3a}

/* ワークシートの帯：見出しを押して開閉 */
details.ws-bar>summary{list-style:none;cursor:pointer;align-items:center}
details.ws-bar>summary::-webkit-details-marker{display:none}
.wb-h>div{flex:1}
.wb-n{color:#8a7a4a}
details.ws-bar[open] .wb-n{display:none}
.wb-tog{flex:none;width:30px;height:30px;border-radius:50%;background:#f3e2ad;display:grid;place-items:center;transition:transform .25s}
.wb-tog::before{content:"";width:8px;height:8px;border-right:2.5px solid #7a5b00;border-bottom:2.5px solid #7a5b00;transform:translateY(-2px) rotate(45deg)}
details.ws-bar[open] .wb-tog{transform:rotate(180deg)}
.wb-note{display:block;margin:6px 0 10px 40px;font-size:13px;line-height:1.6;color:#6b5f3f}
details.ws-bar:not([open]){padding-bottom:14px}
