:root{--bg:#f6f4ef;--card:#fff;--ink:#1d1c1a;--mute:#6f6a5e;--line:#ddd8cc;--me:#2b4a6f;--you:#5a4a3a;--pop:#c84b31;--warn:#c0392b}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;font:16px/1.6 -apple-system,system-ui,"Hiragino Sans","Noto Sans JP",sans-serif;background:var(--bg);color:var(--ink);padding-bottom:env(safe-area-inset-bottom)}
header{position:sticky;top:0;display:flex;gap:10px;align-items:center;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--line);z-index:2;padding-top:calc(12px + env(safe-area-inset-top))}
header b{font-size:17px}header .sp{flex:1}
button{font:inherit;padding:10px 16px;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:6px;cursor:pointer}
button.sub{background:#fff;color:var(--ink)}button.sm{padding:5px 10px;font-size:13px}button:disabled{opacity:.5}
button.danger{color:var(--warn);border-color:var(--warn);background:#fff}
input,textarea,select{font:inherit;width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}
label{display:block;font-size:13px;color:var(--mute);margin-top:10px}
label.check{display:flex;gap:8px;align-items:flex-start;color:var(--ink);font-size:14px}
label.check input{width:20px;height:20px;flex:none;margin-top:2px}
main{padding:14px 16px;max-width:760px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:10px 0}
.card h3{margin:0 0 6px;font-size:16px}
.mute{color:var(--mute);font-size:13px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.right{justify-content:flex-end}
.room{display:flex;align-items:center;gap:12px;cursor:pointer}
.room .id{font-family:ui-monospace,monospace;font-size:18px;letter-spacing:.06em}
.room .left{flex:1}
.badge{background:var(--pop);color:#fff;border-radius:999px;padding:1px 9px;font-size:13px}
.dim{opacity:.6}.dimmer{opacity:.5}
.pick{width:22px;height:22px;margin-right:12px}
.log{display:flex;flex-direction:column;gap:8px;padding:8px 0 90px}
.m{padding:9px 13px;border-radius:10px;background:#fff;max-width:85%;white-space:pre-wrap;word-break:break-word;border-left:3px solid var(--you)}
.m.h{border-left:none;border-right:3px solid var(--me);margin-left:auto;background:#e9eef5}
.m.bad{border:1px dashed var(--warn);color:var(--warn)}
.m small{display:block;color:var(--mute);font-size:11px;margin-top:3px}
.compose{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}
.compose textarea{height:56px;resize:none}
.compose button{white-space:nowrap;align-self:stretch}
code,.code{font-family:ui-monospace,monospace;font-size:12.5px;word-break:break-all;background:#f0ede6;padding:8px;border-radius:6px;display:block;white-space:pre-wrap;user-select:all;-webkit-user-select:all}
.err{color:var(--warn);font-size:14px}
.alarm{border:2px solid var(--warn);background:#fdecea;color:#7b1d14}
.caution{border:2px solid #b7791f;background:#fff8e6;color:#6b4a10}
.okbox{border:2px solid #2f7d4f;background:#eef8f1;color:#1d4d31}
.sep{margin-top:28px;padding-top:12px;border-top:1px dashed #ddd}
.find{display:flex;gap:8px;margin-bottom:12px}.find input{flex:1}
.pinpad input{margin-top:8px}
.fb-copybox{position:fixed;left:-9999px;top:0;opacity:0}
.print-only{display:none}
body.roomview{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body.roomview header{position:static;flex:none}
body.roomview main{flex:1;min-height:0;width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
body.roomview .compose{position:static;flex:none}
body.roomview .log{padding-bottom:8px}
@media print{header,main{display:none}.print-only{display:block;font:14px/1.6 serif;color:#000}.print-only code{font-size:12px;border:1px solid #000;background:#fff}}
