*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;font-family:'Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif}
html,body{height:100%;height:100dvh;overflow:hidden;background:#b5caaa}
#app{max-width:480px;margin:0 auto;height:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
/* ヘッダー */
.hdr{background:#388e3c;padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 6px rgba(0,0,0,.2);flex-shrink:0}
.hav{font-size:22px;background:#fff;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hnm{color:#fff;font-weight:bold;font-size:15px}
.hsb{color:rgba(255,255,255,.8);font-size:11px}
/* 進捗バー */
.prog{background:#2e7b32;padding:7px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0}
.pbar{flex:1;height:5px;background:rgba(255,255,255,.25);border-radius:3px;overflow:hidden}
.pfill{height:100%;background:#a5d6a7;border-radius:3px;transition:width .4s}
.ptxt{color:#fff;font-size:11px;font-weight:bold;min-width:36px;text-align:right}
/* チャット */
.chat-wrap{flex:1;min-height:0;padding:12px 12px 12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.brow{display:flex;gap:8px;align-items:flex-start}
.bav{font-size:16px;background:#fff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.bbub{background:#fff;border-radius:0 12px 12px 12px;padding:10px 13px;font-size:13px;line-height:1.75;max-width:272px;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#222;white-space:pre-wrap;word-break:break-word}
.opts{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ob{background:#fff;border:1.5px solid #388e3c;border-radius:18px;padding:12px 16px;font-size:14px;color:#1b5e20;cursor:pointer;text-align:left;font-weight:500;min-height:48px;width:100%}
.bkhint{margin-top:6px}
.bksm{background:none;border:none;color:#999;font-size:12px;cursor:pointer;text-decoration:underline;padding:0}
.urow{display:flex;justify-content:flex-end}
.ubub{background:#c8e6c9;border-radius:12px 0 12px 12px;padding:10px 13px;font-size:13px;max-width:230px;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#1a1a1a;white-space:pre-wrap;word-break:break-word}
.typing-bub{background:#fff;border-radius:0 12px 12px 12px;padding:11px 16px;display:flex;gap:5px;align-items:center}
.dot{width:7px;height:7px;border-radius:50%;background:#bbb;display:inline-block;animation:bounce .9s infinite}
.d2{animation-delay:.2s}.d3{animation-delay:.4s}
@keyframes bounce{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-7px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.fade{animation:fadeUp .22s ease}
/* 入力バー */
.bar{width:100%;background:#f0f0f0;border-top:1px solid #ddd;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom,10px));display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0}
.inp{flex:1;min-width:0;border:1.5px solid #ccc;border-radius:24px;padding:11px 16px;font-size:15px;outline:none;background:#fff;min-height:48px}
.snd{background:#388e3c;color:#fff;border:none;border-radius:24px;padding:0 20px;font-size:15px;font-weight:bold;cursor:pointer;min-height:48px;min-width:60px}
.snd:disabled{opacity:.45;cursor:default}
.skip-btn{width:100%;background:none;border:1.5px dashed #aaa;color:#666;border-radius:20px;padding:10px;font-size:13px;cursor:pointer;text-align:center}
.zip-hint{width:100%;flex-basis:100%;font-size:12px;color:#1b5e20;padding:6px 4px 2px;line-height:1.55;word-break:break-word}
.zip-hint-err{color:#c62828}
.zip-use-btn{margin-top:6px;background:#e8f5e9;border:1.5px solid #388e3c;color:#1b5e20;border-radius:14px;padding:8px 12px;font-size:12px;font-weight:bold;cursor:pointer;width:100%}
.bkbar-btn{background:#fff;border:2px solid #388e3c;color:#388e3c;border-radius:24px;padding:0 14px;font-size:13px;font-weight:bold;cursor:pointer;min-height:48px;flex-shrink:0}
/* マルチセレクト */
.ms-item{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #ccc;border-radius:12px;padding:12px 14px;cursor:pointer;font-size:14px;min-height:50px;margin-bottom:6px;user-select:none}
.ms-on{background:#e8f5e9;border-color:#388e3c}
.ms-next{background:#388e3c;color:#fff;border:none;border-radius:20px;padding:10px 22px;font-size:13px;font-weight:bold;cursor:pointer;margin-top:6px;display:block;margin-left:auto}
/* ページ系 */
.page{flex:1;min-height:0;padding:20px 16px 30px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.card{background:#fff;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.8;color:#333;margin-bottom:12px}
.warn-box{background:#fff3e0;border-radius:10px;padding:12px 14px;font-size:12px;line-height:1.7;color:#e65100;margin-bottom:12px}
.grn-box{background:#e8f5e9;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.8;margin-bottom:12px}
.big-btn{display:block;width:100%;border-radius:24px;padding:15px;font-size:15px;font-weight:bold;cursor:pointer;border:none;text-align:center;margin-top:10px;min-height:52px}
.fix-bar{width:100%;background:rgba(240,240,240,.97);border-top:1px solid #ddd;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom,12px));display:flex;gap:12px;justify-content:center;flex-shrink:0}
.bk-btn{background:#fff;border:2px solid #388e3c;color:#388e3c;border-radius:28px;padding:14px 22px;font-size:14px;font-weight:bold;cursor:pointer;flex:1;min-height:52px}
.sd-btn{background:#388e3c;color:#fff;border:none;border-radius:28px;padding:14px 0;font-size:16px;font-weight:bold;cursor:pointer;flex:2;box-shadow:0 4px 14px rgba(56,142,60,.4);min-height:52px}
.cf-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.1);margin-bottom:14px}
.cf-row{display:flex;border-bottom:1px solid #f0f0f0;min-height:40px}
.cf-lb{width:115px;background:#f1f8e9;padding:8px 10px;font-size:11px;color:#555;font-weight:bold;flex-shrink:0;display:flex;align-items:center}
.cf-vl{flex:1;padding:8px 10px;font-size:13px;color:#222;word-break:break-all;display:flex;align-items:center}
textarea.ta{width:100%;border:1.5px solid #ccc;border-radius:12px;padding:10px 14px;font-size:14px;outline:none;background:#fff;min-height:90px;resize:vertical;font-family:inherit}
.lnk{color:#1565c0;text-decoration:underline}
.ttl{font-size:40px;text-align:center;margin-bottom:8px}
.ttl2{font-size:17px;font-weight:bold;color:#1b5e20;text-align:center;margin-bottom:14px}
hr.divider{border:none;border-top:1px solid #e0e0e0;margin:14px 0}
.hidden{display:none!important}