:root{--ink:#12362f;--ink2:#1c4a40;--cream:#f5f0e5;--paper:#fffdf8;--orange:#eb6841;--line:#ddd6c8;--muted:#6f7e79;--lime:#cce56b;--danger:#a32920;--shadow:0 16px 45px rgba(18,54,47,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Noto Sans KR",sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}header{display:flex;justify-content:space-between;align-items:center;padding:24px max(24px,5vw);background:var(--ink);color:#fff}header p{color:var(--lime);font-size:11px;letter-spacing:2px;font-weight:800;margin:0}h1{margin:5px 0 0;font-family:Georgia,"Noto Serif KR",serif;font-size:34px}header a{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.35);padding:10px 14px}main{max-width:1380px;margin:auto;padding:28px 24px 60px}.login-card{max-width:680px;margin:45px auto;background:var(--cream);padding:30px;border:1px solid var(--line);box-shadow:var(--shadow)}.login-card h2{margin:0 0 8px}.login-card p{color:var(--muted);line-height:1.55}.row,.credentials{display:flex;gap:10px;margin-top:20px}.row input,.credentials input{flex:1;min-width:0}input{border:1px solid var(--line);background:#fff;padding:13px;color:var(--ink)}button{border:0;background:var(--ink);color:#fff;font-weight:800;padding:12px 17px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;padding:14px 16px;background:var(--cream);border:1px solid var(--line)}.toolbar>div{flex:1}.toolbar strong{font-size:15px}.toolbar span{color:var(--muted);font-size:13px}.toolbar button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.layout{display:grid;grid-template-columns:370px minmax(0,1fr);height:calc(100vh - 205px);min-height:610px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}aside{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--line);background:#fff}.aside-head,.message-head{display:flex;align-items:center;gap:12px;min-height:72px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--paper)}.aside-head h2,.message-head h2{margin:0;font-family:Georgia,"Noto Serif KR",serif}.count{margin-left:auto;min-width:28px;text-align:center;background:var(--ink);color:#fff;border-radius:20px;padding:4px 8px;font-size:12px}.room-list{overflow:auto;flex:1}.room{display:grid;grid-template-columns:46px 1fr auto;gap:12px;width:100%;text-align:left;background:#fff;color:var(--ink);border:2px solid transparent;border-bottom-color:#eee8dc;padding:14px}.room:hover{background:#faf7ef}.room.active{background:var(--cream);box-shadow:inset 4px 0 var(--orange)}.room.unread{border-color:#dc3f36;background:#fff9f7}.room.unread.active{box-shadow:inset 4px 0 #dc3f36}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--ink2);color:#fff;font-weight:900}.room-copy{min-width:0}.room strong,.room small{display:block}.room strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-no{display:block;margin-top:5px;color:var(--ink2);font-size:12px;font-weight:800}.room small{margin-top:5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.room time{font-size:11px;color:var(--muted);white-space:nowrap}.unread-badge{min-width:24px;text-align:center;border-radius:20px;background:#dc3f36;color:#fff;padding:4px 7px;font-size:10px}.messages{display:flex;flex-direction:column;min-width:0;background:#fbfaf6}.message-head{background:#fff}.message-head-copy{min-width:0}.message-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.read-only{margin-left:auto;background:#edf4d2;color:var(--ink);padding:6px 9px;font-size:11px;font-weight:800}.bubble-list{flex:1;overflow:auto;padding:22px 28px}.bubble-row{display:flex;gap:9px;align-items:flex-end;margin:12px 0}.bubble-row.mine{justify-content:flex-end}.bubble{max-width:min(72%,620px);padding:12px 15px;background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 4px;line-height:1.5;word-break:break-word}.mine .bubble{background:#dfeec2;border-color:#cfdfad;border-radius:16px 16px 4px 16px}.bubble-row.pending{opacity:.68}.bubble .sender{font-size:11px;font-weight:800;color:var(--orange);margin-bottom:5px}.bubble time{display:block;text-align:right;color:var(--muted);font-size:10px;margin-top:6px}.day{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;margin:24px 0}.day:before,.day:after{content:"";height:1px;background:var(--line);flex:1}.composer{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line);background:#fff}.composer textarea{flex:1;min-width:0;resize:none;border:1px solid var(--line);border-radius:8px;padding:11px 13px;color:var(--ink);line-height:1.45}.composer textarea:focus{outline:2px solid var(--lime);border-color:var(--ink)}.composer button{min-width:88px;border-radius:8px}.empty{display:grid;place-items:center;min-height:180px;padding:30px;color:var(--muted);text-align:center}.loading{padding:18px;color:var(--muted);text-align:center}#message:not(:empty){margin-top:16px;padding:13px 15px;background:#fbe4df;color:var(--danger);border-left:4px solid var(--danger)}@media(max-width:800px){header{padding:20px}h1{font-size:28px}main{padding:16px}.credentials,.row{flex-direction:column}.layout{grid-template-columns:1fr;height:auto;min-height:0}aside{border-right:0;border-bottom:1px solid var(--line);height:360px}.messages{height:620px}.bubble{max-width:88%}.toolbar{flex-wrap:wrap}.toolbar>div{flex-basis:100%}.composer{padding:10px}.composer button{min-width:72px}}
