@font-face{font-family:"AbarHigh";src:url("fonts/AbarHigh-Regular.woff") format("woff");font-weight:normal;font-style:normal;font-display:swap}
*{box-sizing:border-box;font-family:"AbarHigh",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0;padding:0}
body{background:#0f172a;color:#e5e7eb}
a{text-decoration:none;color:inherit}

.auth-body,.chat-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#1f2937,#020617)}
.auth-container{width:100%;max-width:420px;background:#020617dd;border-radius:18px;padding:24px 20px;box-shadow:0 20px 40px rgba(0,0,0,.6);backdrop-filter:blur(18px)}
.app-title{text-align:center;margin-bottom:20px;font-size:1.5rem;color:#e5e7eb}
.auth-tabs{display:flex;gap:4px;margin-bottom:14px;background:#020617;border-radius:999px;padding:3px}
.auth-tab{flex:1;border:none;border-radius:999px;background:transparent;color:#9ca3af;font-size:.85rem;padding:6px 0;cursor:pointer}
.auth-tab.active{background:#111827;color:#e5e7eb}
.auth-form{display:flex;flex-direction:column;gap:12px}
.auth-form label{font-size:.9rem;color:#9ca3af}
.auth-form input{border-radius:999px;border:1px solid #1f2937;background:#020617;padding:10px 14px;color:#e5e7eb;font-size:.95rem}
.auth-form input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}
.btn-primary{border:none;border-radius:999px;background:linear-gradient(135deg,#3b82f6,#22c55e);color:#fff;padding:10px 18px;font-size:.95rem;font-weight:500;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}
.btn-primary.small{padding:8px 12px;font-size:.8rem}
.btn-text{background:none;border:none;color:#9ca3af;font-size:.85rem;cursor:pointer}
.btn-text:hover{color:#e5e7eb}
.error-text{margin-top:4px;font-size:.8rem;color:#f97373;min-height:16px}
.hidden{display:none}

.chat-layout{width:100%;max-width:1100px;height:100vh;max-height:720px;background:#020617dd;border-radius:24px;padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:0 24px 60px rgba(0,0,0,.8);backdrop-filter:blur(18px)}
.chat-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px 4px;border-bottom:1px solid #111827}
.user-info{display:flex;flex-direction:column}
.user-name{font-size:.95rem;font-weight:500}
.user-username{font-size:.75rem;color:#6b7280}

.header-actions{display:flex;align-items:center;gap:6px}
.btn-icon{border:none;background:transparent;color:#9ca3af;width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s}
.btn-icon:hover{background:#111827;color:#e5e7eb}
.btn-icon svg{display:block}

.chat-main{flex:1;display:flex;gap:8px;min-height:0}
.chat-sidebar{width:34%;max-width:320px;background:#020617;border-radius:18px;padding:10px;display:flex;flex-direction:column;gap:10px;border:1px solid #111827}
.search-box{display:flex;gap:6px}
.search-box input{flex:1;border-radius:999px;border:1px solid #1f2937;background:#020617;padding:8px 10px;color:#e5e7eb;font-size:.85rem}
.search-box .refresh-btn{border-radius:999px;border:none;background:#020617;color:#9ca3af;font-size:.9rem;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.search-box .refresh-btn:hover{background:#111827;color:#e5e7eb}
.sidebar-title{font-size:.8rem;color:#6b7280;margin-top:2px}
.conversations-list{list-style:none;margin-top:4px;overflow-y:auto;flex:1}
.conversations-list li{padding:8px 10px;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border:1px solid transparent}
.conversations-list li:hover{background:#020617;border-color:#1f2937}
.conversations-list li.active{background:#111827;border-color:#3b82f6}
.conv-row{display:flex;align-items:center;justify-content:space-between;gap:6px}
.conv-main{display:flex;flex-direction:column;min-width:0}
.conv-name{font-size:.9rem}
.conv-username{font-size:.75rem;color:#6b7280}
.conv-delete{border:none;background:transparent;color:#f97373;font-size:.8rem;cursor:pointer;padding:2px 4px;border-radius:6px}
.conv-delete:hover{background:#1f2937;color:#fecaca}

.chat-panel{flex:1;background:#020617;border-radius:18px;padding:8px 8px 10px;display:flex;flex-direction:column;border:1px solid #111827;min-width:0}
.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 6px;border-bottom:1px solid #111827}
.partner-info{font-size:.85rem;color:#e5e7eb}
.partner-info span{display:block;font-size:.75rem;color:#6b7280}
.back-btn{display:none}
.chat-actions{display:flex;align-items:center;gap:4px}
.btn-text.warn{color:#fbbf24}
.btn-text.warn:hover{color:#facc15}
.btn-delete-chat{border:none;border-radius:999px;background:#b91c1c;color:#fee2e2;font-size:.75rem;padding:6px 10px;cursor:pointer}
.btn-delete-chat:hover{background:#dc2626;color:#fff}

.no-conv-hint{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.85rem;color:#6b7280;padding:12px}

.messages-container{flex:1;overflow-y:auto;padding:8px 4px;display:flex;flex-direction:column;gap:6px;scroll-behavior:smooth}
.message-row{display:flex}
.message-row.me{justify-content:flex-end}
.message-bubble{max-width:80%;border-radius:16px;padding:8px 10px;font-size:.85rem;display:inline-flex;flex-direction:column;gap:4px}
.message-row.me .message-bubble{background:#3b82f6;color:#fff;border-bottom-right-radius:4px}
.message-row.other .message-bubble{background:#111827;color:#e5e7eb;border-bottom-left-radius:4px}
.message-meta{font-size:.65rem;color:#d1d5db;opacity:.8;align-self:flex-end}
.message-text{white-space:pre-wrap;word-wrap:break-word}
.message-image{max-width:220px;border-radius:12px;border:1px solid #1f2937;margin-top:2px}
.file-download-link{font-size:.8rem;color:#38bdf8;text-decoration:underline;margin-top:2px;display:inline-block}
.file-download-link:hover{color:#7dd3fc}

.message-form{display:flex;align-items:center;gap:6px;padding-top:6px;border-top:1px solid #111827}
.message-form input[type=text]{flex:1;border-radius:999px;border:1px solid #1f2937;background:#020617;padding:8px 10px;color:#e5e7eb;font-size:.85rem}
.message-form .btn-primary{padding:6px 12px;font-size:.8rem;min-width:64px}
.file-input-wrapper{display:flex;align-items:center;gap:4px}
.message-form input[type=file]{display:none}
.file-btn{position:relative;border-radius:999px;border:1px dashed #374151;background:#020617;color:#9ca3af;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:border-color .15s, color .15s, background-color .15s}
.file-btn:hover{border-style:solid;color:#e5e7eb}
.file-btn::after{content:"";position:absolute;inset:-3px;border-radius:999px;border:2px solid transparent;pointer-events:none;opacity:0;transition:opacity .15s,border-color .15s}
.file-btn.has-file{border-color:#3b82f6;color:#3b82f6}
.file-btn.has-file::after{border-color:#3b82f6;opacity:.4}
.file-btn.uploading::after{border-color:#22c55e;opacity:1;animation:file-upload-ring 0.9s linear infinite}
.file-icon svg{display:block}
@keyframes file-upload-ring{0%{transform:scale(1);opacity:1}100%{transform:scale(1.18);opacity:.4}}
.file-icon svg{display:block}
.file-name{max-width:120px;font-size:.7rem;color:#9ca3af;overflow:hidden;text-overflow:ellipsis;direction:ltr;text-align:left}

@media (max-width:768px){
  body{overflow:hidden}
  .chat-layout{height:100vh;max-height:none;border-radius:0;padding:8px 8px 10px}
  .chat-main{flex-direction:column;flex:1;min-height:0}
  .chat-sidebar{width:100%;max-width:none;order:1;flex:1;min-height:0}
  .conversations-list{padding-right:2px}
  .chat-panel{order:2;height:100%;min-height:0}
  .messages-container{padding:6px 2px}
  .message-form{padding-top:4px}
  .back-btn{display:inline-flex;font-size:.8rem}
}
