*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f8;color:#111827}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.login-card{max-width:420px;margin:9vh auto;background:#fff;padding:28px;border-radius:18px;box-shadow:0 10px 35px rgba(0,0,0,.08)}
.brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}
.logo{width:48px;height:48px;border-radius:50%;background:#111827;color:#fff;display:grid;place-items:center;font-weight:800;font-size:24px}
h1{margin:0;font-size:24px}.brand p{margin:4px 0;color:#6b7280}
label{display:block;font-weight:600;margin:14px 0}
input,textarea,select{width:100%;margin-top:7px;padding:12px;border:1px solid #d1d5db;border-radius:10px;background:#fff}
textarea{min-height:130px;resize:vertical}
button{border:0;border-radius:10px;padding:11px 15px;background:#111827;color:#fff;font-weight:700}
.login-card button{width:100%;margin-top:8px}
.error{color:#b91c1c;min-height:20px}
.topbar{height:64px;background:#111827;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px}
.topbar span{display:block;color:#cbd5e1;font-size:12px;margin-top:3px}
.ghost{background:transparent;border:1px solid #4b5563}
.layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 64px)}
nav{background:#fff;border-right:1px solid #e5e7eb;padding:16px}
nav button{display:block;width:100%;text-align:left;background:transparent;color:#374151;margin:4px 0}
nav button:hover{background:#f3f4f6}
.content{padding:24px;max-width:1200px;width:100%}
.panel{background:#fff;border-radius:14px;padding:20px;margin-bottom:18px;border:1px solid #e5e7eb}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.metric{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px}
.metric b{display:block;font-size:28px;margin-top:8px}
.list{display:grid;gap:10px}
.item{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2ff;font-size:12px;margin-left:6px}
.row{display:flex;gap:10px;align-items:center}
.row>*{flex:1}
.actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.secondary{background:#e5e7eb;color:#111827}
.small{font-size:12px;color:#6b7280}
.msg{padding:10px 12px;background:#f3f4f6;border-radius:10px;margin:8px 0}
.msg.mine{background:#e8eefc}
.note{padding:10px 12px;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;margin:8px 0}
@media(max-width:760px){
  .layout{grid-template-columns:1fr}
  nav{display:flex;overflow:auto;border-right:0;border-bottom:1px solid #e5e7eb}
  nav button{min-width:max-content}
  .content{padding:14px}
  .grid{grid-template-columns:1fr}
  .row{display:block}
}

.privacy-strip{padding:10px 12px;margin-bottom:14px;border-radius:10px;background:#ecfdf5;border:1px solid #a7f3d0;font-size:13px}
.attachment-box{margin:12px 0;padding:12px;border:1px dashed #9ca3af;border-radius:12px;background:#f9fafb}
.attachment-box input{margin-top:9px}
.attachment{margin-top:9px;padding:10px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;display:flex;gap:10px;align-items:center;max-width:680px}
.chat-image{max-width:280px;max-height:280px;border-radius:9px;object-fit:contain}
.chat-video{max-width:360px;max-height:280px;border-radius:9px;background:#111}
.attachment audio{max-width:320px;width:100%}.file-icon{font-size:28px}.attachment a{word-break:break-word}
.security-card{border-left:4px solid #10b981}


.composer-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.tool-button{display:inline-flex;align-items:center;justify-content:center;width:auto;margin:0;padding:11px 15px;border-radius:10px;background:#e5e7eb;color:#111827;font-weight:700;cursor:pointer}
.hidden-file{display:none}
.recorder-panel{margin-top:12px;padding:14px;border:1px solid #d1d5db;border-radius:12px;background:#f9fafb}
.recording-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.record-dot{width:10px;height:10px;border-radius:50%;background:#dc2626;display:inline-block;animation:pulse 1s infinite}
.record-preview{display:block;max-width:360px;width:100%;max-height:300px;border-radius:12px;background:#111827;margin:10px 0}
.record-preview-wrap{margin:10px 0}
.record-preview-wrap audio{width:min(100%,420px)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(max-width:760px){.composer-tools>*{flex:1 1 140px}.record-preview{max-width:100%}}
