/* =========================================================
   Особистий кабінет, чат з юристом і адмін-панель
   Використовує змінні з style.css
   ========================================================= */

.cab-page{ background:var(--paper-2); min-height:100vh; padding-bottom:4rem; }

.cab-hero{
  background:var(--brand); color:#f2efe6;
  padding:3rem 0 2.25rem;
}
.cab-hero .eyebrow{ color:var(--gold); }
.cab-hero h1{ color:#f2efe6; margin:.25rem 0 .5rem; }
.cab-hero p{ color:#d7d3c6; max-width:640px; margin:0; }

.cab-shell{ margin-top:-1.5rem; }

/* --- Картки --- */
.cab-card{
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-sm);
  padding:1.5rem;
}
.cab-card + .cab-card{ margin-top:1.25rem; }
.cab-card h2{ margin:0 0 1rem; font-size:1.35rem; }
.cab-card h3{ margin:0 0 .75rem; font-size:1.05rem; }

/* --- Вкладки --- */
.cab-tabs{ display:flex; flex-wrap:wrap; gap:.5rem; margin:1.5rem 0; }
.cab-tab{
  border:1px solid var(--line); background:var(--card); color:var(--ink-2);
  border-radius:999px; padding:.55rem 1.1rem; font-size:.92rem; cursor:pointer;
  font-family:inherit; transition:background .15s, color .15s, border-color .15s;
}
.cab-tab:hover{ border-color:var(--brand-3); color:var(--ink); }
.cab-tab.is-active{ background:var(--brand); border-color:var(--brand); color:#f2efe6; }

/* --- Форми --- */
.cab-grid{ display:grid; gap:1rem; grid-template-columns:1fr; }
@media (min-width:720px){ .cab-grid-2{ grid-template-columns:1fr 1fr; } .cab-grid-3{ grid-template-columns:1fr 1fr 1fr; } }
.cab-field{ display:flex; flex-direction:column; gap:.3rem; }
.cab-field.full{ grid-column:1 / -1; }
.cab-field label{ font-size:.85rem; font-weight:600; color:var(--ink-2); }
.cab-field label small{ font-weight:400; color:var(--ink-4); }
.cab-field input, .cab-field select, .cab-field textarea{
  font:inherit; color:var(--ink);
  border:1px solid var(--line); border-radius:var(--radius);
  background:#fff; padding:.6rem .75rem;
}
.cab-field textarea{ resize:vertical; min-height:110px; }
.cab-field input:focus, .cab-field select:focus, .cab-field textarea:focus{
  outline:2px solid var(--brand-3); outline-offset:1px; border-color:var(--brand-3);
}
.cab-check{ display:flex; gap:.6rem; align-items:flex-start; font-size:.88rem; color:var(--ink-2); }
.cab-check input{ margin-top:.2rem; }

.cab-hint{ font-size:.85rem; color:var(--ink-3); }
.cab-error{
  background:var(--clay-wash); color:var(--clay-2); border:1px solid #e4b7a9;
  border-radius:var(--radius); padding:.6rem .8rem; font-size:.9rem;
}
.cab-ok{
  background:var(--brand-wash); color:var(--brand); border:1px solid #c4cfb2;
  border-radius:var(--radius); padding:.6rem .8rem; font-size:.9rem;
}

/* --- Список заявок --- */
.req-list{ display:flex; flex-direction:column; gap:.75rem; }
.req-item{
  border:1px solid var(--line); border-radius:var(--radius-lg);
  background:#fff; padding:1rem 1.1rem; cursor:pointer;
  display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; justify-content:space-between;
}
.req-item:hover{ border-color:var(--brand-3); }
.req-item .req-title{ font-weight:650; color:var(--ink); }
.req-item .req-meta{ font-size:.83rem; color:var(--ink-4); }

.badge{
  display:inline-block; border-radius:999px; padding:.18rem .65rem;
  font-size:.78rem; font-weight:600; white-space:nowrap;
}
.badge-new{ background:var(--clay-wash); color:var(--clay-2); }
.badge-work{ background:#fdf3dd; color:#8a6210; }
.badge-docs{ background:#e8eefb; color:#2c4f8f; }
.badge-done{ background:var(--brand-wash); color:var(--brand); }
.badge-rej{ background:#eee; color:var(--ink-3); }

/* --- Чат --- */
.chat-box{
  border:1px solid var(--line); border-radius:var(--radius-lg);
  background:var(--paper); display:flex; flex-direction:column; overflow:hidden;
}
.chat-log{ padding:1rem; display:flex; flex-direction:column; gap:.6rem; min-height:260px; max-height:420px; overflow-y:auto; }
.chat-msg{ max-width:78%; padding:.55rem .8rem; border-radius:12px; font-size:.92rem; line-height:1.45; }
.chat-msg small{ display:block; margin-top:.25rem; font-size:.72rem; opacity:.65; }
.chat-msg.user{ align-self:flex-end; background:var(--brand); color:#f2efe6; border-bottom-right-radius:3px; }
.chat-msg.lawyer{ align-self:flex-start; background:#fff; border:1px solid var(--line); color:var(--ink); border-bottom-left-radius:3px; }
.chat-msg.lawyer .who{ font-size:.72rem; font-weight:700; color:var(--clay); display:block; margin-bottom:.15rem; }
.chat-form{ display:flex; gap:.5rem; padding:.75rem; border-top:1px solid var(--line); background:#fff; }
.chat-form input{ flex:1; font:inherit; border:1px solid var(--line); border-radius:var(--radius); padding:.6rem .75rem; }

/* --- Профіль --- */
.profile-dl{ display:grid; gap:.4rem 1.5rem; grid-template-columns:1fr; margin:0; }
@media (min-width:720px){ .profile-dl{ grid-template-columns:1fr 1fr; } }
.profile-dl > div{ border-bottom:1px solid var(--line-soft); padding:.45rem 0; }
.profile-dl dt{ font-size:.78rem; color:var(--ink-4); text-transform:uppercase; letter-spacing:.04em; }
.profile-dl dd{ margin:.1rem 0 0; color:var(--ink); }

/* --- Адмінка --- */
.adm-layout{ display:grid; gap:1.25rem; }
@media (min-width:960px){ .adm-layout{ grid-template-columns:300px 1fr; } }
.adm-user-item{
  border:1px solid var(--line); border-radius:var(--radius); background:#fff;
  padding:.7rem .85rem; cursor:pointer; margin-bottom:.5rem;
}
.adm-user-item:hover, .adm-user-item.is-active{ border-color:var(--brand); background:var(--brand-wash); }
.adm-user-item .nm{ font-weight:650; display:flex; align-items:center; gap:.4rem; }
.adm-user-item .mt{ font-size:.8rem; color:var(--ink-4); }
.adm-ts{ margin-left:auto; font-weight:400; font-size:.72rem; color:var(--ink-4); }
.adm-search input{
  width:100%; box-sizing:border-box; font:inherit; font-size:.9rem;
  border:1px solid var(--line); border-radius:var(--radius); padding:.55rem .7rem; background:#fff;
}
.adm-search input:focus{ outline:2px solid var(--brand); outline-offset:1px; border-color:var(--brand); }

.adm-table{ width:100%; border-collapse:collapse; font-size:.9rem; }
.adm-table th{ text-align:left; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-4); padding:.5rem .6rem; border-bottom:2px solid var(--line); }
.adm-table td{ padding:.6rem; border-bottom:1px solid var(--line-soft); vertical-align:top; }
.adm-table tr.clickable{ cursor:pointer; }
.adm-table tr.clickable:hover td{ background:var(--paper-2); }

.adm-filters{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.adm-filters select{ font:inherit; border:1px solid var(--line); border-radius:var(--radius); padding:.45rem .6rem; background:#fff; }

.comment-item{ border-left:3px solid var(--line); padding:.4rem .8rem; margin-bottom:.6rem; }
.comment-item small{ color:var(--ink-4); display:block; }

.cab-topbar{ display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.cab-topbar .who{ font-size:.92rem; color:var(--ink-2); }

@media (max-width:640px){
  .cab-hero{ padding:2rem 0 2rem; }
  .chat-msg{ max-width:92%; }
}
