:root{--blue: #1c74c9;--teal: #0fb5a0;--line: #e3e8ee;--bg: #f5f7fa;--text: #1f2933;--muted: #7b8794}*{box-sizing:border-box}body{margin:0;font-family:Hiragino Sans,Noto Sans JP,system-ui,sans-serif;color:var(--text);background:var(--bg);font-size:14px}.shell{display:flex;flex-direction:column;height:100vh}.topnav{display:flex;align-items:center;gap:4px;padding:0 16px;background:#fff;border-bottom:1px solid var(--line);height:48px;flex-shrink:0}.topnav h1{margin-right:20px}.tab{background:none;color:var(--muted);border-radius:0;height:48px;padding:0 14px;border-bottom:2px solid transparent}.tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.spacer{flex:1}.app{display:grid;grid-template-columns:320px 1fr;flex:1;min-height:0}.sidebar{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.sidebar header,.chat header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}h1{font-size:16px;margin:0;color:var(--blue)}.badge{font-size:11px;padding:3px 8px;border-radius:2px}.badge.ok{background:#e3f8f5;color:#0a8272}.badge.warn{background:#fff4d6;color:#8a6100}.friends{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.friends li{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);cursor:pointer}.friends li:hover{background:var(--bg)}.friends li.active{background:#eaf3fc;box-shadow:inset 3px 0 0 var(--blue)}.friends li.empty{color:var(--muted);cursor:default;justify-content:center}.meta{flex:1;min-width:0}.row{display:flex;justify-content:space-between;align-items:center;gap:8px}.row time{font-size:11px;color:var(--muted);white-space:nowrap}.preview{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread{background:var(--teal);color:#fff;font-size:11px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:grid;place-items:center}.avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;flex-shrink:0;object-fit:cover}.chat{display:flex;flex-direction:column;min-width:0;min-height:0}.messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.msg{display:flex;flex-direction:column;max-width:70%}.msg.in{align-self:flex-start}.msg.out{align-self:flex-end;align-items:flex-end}.bubble{padding:9px 13px;border-radius:4px;white-space:pre-wrap;word-break:break-word;line-height:1.6}.msg.in .bubble{background:#fff;border:1px solid var(--line)}.msg.out .bubble{background:var(--blue);color:#fff}.msg small{color:var(--muted);font-size:11px;margin-top:3px}.flag{color:#b54708}.chat footer{display:flex;gap:10px;padding:12px 16px;background:#fff;border-top:1px solid var(--line);align-items:flex-end}textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:4px;padding:9px 11px;font:inherit}textarea:focus{outline:2px solid var(--blue);outline-offset:-1px}button{background:var(--blue);color:#fff;border:0;border-radius:4px;padding:10px 20px;font:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}button.ghost{background:none;color:var(--blue);border-top:1px solid var(--line);border-radius:0;padding:12px}.placeholder{margin:auto;color:var(--muted)}.login{height:100vh;display:grid;place-content:center;gap:20px;text-align:center}.login h1{font-size:22px}a.button{background:var(--blue);color:#fff;padding:12px 28px;border-radius:4px;text-decoration:none}.tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:8px}.tag{background:#e3f8f5;color:#0a8272;font-size:12px;padding:2px 4px 2px 8px;border-radius:2px;display:inline-flex;align-items:center;gap:2px}.tag button{background:none;color:inherit;padding:0 4px;font-size:13px}.tags select,.tags input{font:inherit;font-size:12px;border:1px solid var(--line);border-radius:3px;padding:3px 6px;background:#fff}.tags input{width:96px}.page{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;max-width:1000px;width:100%;margin:0 auto}.card{background:#fff;border:1px solid var(--line);border-radius:4px;padding:20px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}.card h2{font-size:16px;margin:0}.card h3{font-size:14px;margin:6px 0 0}.card>.row{width:100%}.card label{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;width:100%;font-weight:600}.card label>textarea,.card label>input:not([type]){flex-basis:100%;font-weight:400}.card input,.card select{font:inherit;border:1px solid var(--line);border-radius:4px;padding:7px 9px;background:#fff;font-weight:400}.card input[type=number]{width:64px}.hint{color:var(--muted);font-size:12px;font-weight:400}.check{font-weight:400!important}.actions{display:flex;gap:12px;align-items:center}button.link{background:none;color:var(--blue);padding:4px 6px}.step{width:100%;border:1px solid var(--line);border-radius:4px;padding:12px;display:flex;flex-direction:column;gap:8px}.step-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.step textarea{width:100%}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}td.clip{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td.empty{text-align:center;color:var(--muted)}.state{font-size:11px;padding:3px 8px;border-radius:2px;white-space:nowrap}.state.sent{background:#e3f8f5;color:#0a8272}.state.scheduled{background:#eef1f5;color:#52606d}.state.sending{background:#fff4d6;color:#8a6100}
