/* Law Firm — Client Portal styles (builds on style.css). */
.pt-body { background:var(--lf-bg-soft); }
.pt-header { background:var(--lf-navy); color:#fff; }
.pt-header__inner { display:flex; align-items:center; justify-content:space-between; min-height:64px; gap:1rem; flex-wrap:wrap; }
.pt-header .lf-brand__name { color:#fff; }
.pt-nav { display:flex; gap:1.1rem; align-items:center; flex-wrap:wrap; }
.pt-nav a,
.pt-nav__planned { color:#c9d4e2; font-size:.92rem; }
.pt-nav a:hover { color:var(--lf-gold-2); }
.pt-nav__planned { opacity:.58; cursor:not-allowed; }
.pt-nav__planned small { margin-left:.25rem; color:var(--lf-gold-2); font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; }
.pt-logout { border:1px solid rgba(255,255,255,.3); padding:.3rem .8rem; border-radius:6px; }
.pt-main { padding:2.5rem 0 4rem; }
.pt-footer { background:var(--lf-navy); color:#9fb0c6; padding:1.6rem 0; text-align:center; font-size:.85rem; margin-top:2rem; }
.pt-footer__note { color:#7e93ad; font-size:.78rem; }

.pt-auth { max-width:460px; margin:1rem auto; }
.pt-auth__links { margin-top:1rem; font-size:.9rem; color:var(--lf-muted); }
.pt-remember {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  width:max-content;
  max-width:100%;
  margin:0 0 1rem;
  color:var(--lf-navy);
  font-weight:700;
  cursor:pointer;
}
.pt-remember input {
  width:16px;
  height:16px;
  min-width:16px;
  accent-color:var(--lf-gold);
}

.pt-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:2rem; }
.pt-card { background:#fff; border:1px solid var(--lf-line); border-radius:var(--lf-radius); padding:1.4rem; box-shadow:var(--lf-shadow); display:block; }
.pt-card:hover { border-color:var(--lf-gold); transform:translateY(-3px); }
.pt-card--planned { opacity:.72; cursor:not-allowed; box-shadow:none; }
.pt-card--planned:hover { border-color:var(--lf-line); transform:none; }
.pt-card h3 { font-family:var(--lf-serif); color:var(--lf-navy); margin:0 0 .4rem; font-size:1.2rem; }
.pt-card p { color:var(--lf-muted); margin:0; font-size:.9rem; }
.pt-badge { background:var(--lf-danger); color:#fff; font-size:.7rem; padding:.1rem .45rem; border-radius:10px; vertical-align:middle; }
.pt-empty { background:#fff; border:1px dashed var(--lf-line); border-radius:var(--lf-radius); padding:2.5rem; text-align:center; color:var(--lf-muted); margin-top:1.5rem; }
.pt-empty--planned { border-color:rgba(199,154,74,.45); background:#fffaf0; color:var(--lf-navy); }
.lf-muted { color:var(--lf-muted); }
.pt-body .lf-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pt-editor,
.pt-message-layout,
.pt-invoice-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.35fr);
  gap:1.2rem;
  align-items:start;
  margin-top:1.5rem;
}
.pt-message-layout {
  grid-template-columns:minmax(220px,.35fr) minmax(0,1fr) minmax(280px,.35fr);
}
.pt-editor__main { display:grid; gap:1rem; min-width:0; }
.pt-editor__tools,
.pt-message-sidebar {
  position:sticky;
  top:1rem;
  align-self:start;
}
.pt-editor__tools {
  display:grid;
  gap:1rem;
}
.pt-status-note {
  border:1px solid var(--lf-line);
  border-radius:var(--lf-radius-sm);
  padding:.85rem;
  background:var(--lf-bg-soft);
  display:grid;
  gap:.25rem;
}
.pt-status-note span,
.pt-summary-grid span,
.pt-thread span,
.pt-message span {
  color:var(--lf-muted);
  font-size:.86rem;
}
.pt-message-sidebar,
.pt-message-thread {
  min-width:0;
}
.pt-thread {
  display:block;
  border:1px solid var(--lf-line);
  border-radius:var(--lf-radius-sm);
  padding:.8rem;
  margin-top:.65rem;
  color:var(--lf-ink);
  background:#fff;
}
.pt-thread.is-active {
  border-color:var(--lf-gold);
  background:#fffaf0;
}
.pt-thread strong,
.pt-thread span {
  display:block;
}
.pt-message-list {
  display:grid;
  gap:.75rem;
  margin:1rem 0;
}
.pt-message {
  border:1px solid var(--lf-line);
  border-radius:var(--lf-radius-sm);
  padding:.9rem 1rem;
  background:#fff;
}
.pt-message.is-client {
  background:#fffaf0;
  border-color:rgba(199,154,74,.35);
}
.pt-message strong,
.pt-message span {
  display:block;
}
.pt-message p {
  margin:.45rem 0 0;
}
.pt-table-wrap {
  width:100%;
  overflow:auto;
  margin-top:1rem;
}
.pt-table {
  width:100%;
  min-width:720px;
  border-collapse:collapse;
}
.pt-table th,
.pt-table td {
  text-align:left;
  border-bottom:1px solid var(--lf-line);
  padding:.8rem;
  vertical-align:top;
}
.pt-table th {
  color:var(--lf-muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.pt-pill {
  display:inline-flex;
  align-items:center;
  border:1px solid var(--lf-line);
  border-radius:999px;
  padding:.25rem .6rem;
  color:var(--lf-muted);
  font-size:.82rem;
}
.pt-summary-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.8rem;
  margin:1rem 0;
}
.pt-summary-grid div {
  border:1px solid var(--lf-line);
  border-radius:var(--lf-radius-sm);
  padding:.9rem;
  background:var(--lf-bg-soft);
}
.pt-summary-grid strong {
  display:block;
  margin-top:.2rem;
  color:var(--lf-navy);
}

@media (max-width:1000px) {
  .pt-editor,
  .pt-message-layout,
  .pt-invoice-layout {
    grid-template-columns:1fr;
  }
  .pt-editor__tools,
  .pt-message-sidebar {
    position:static;
  }
  .pt-summary-grid {
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:900px) { .pt-cards { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) {
  .pt-cards,
  .pt-summary-grid,
  .pt-body .lf-grid--2 {
    grid-template-columns:1fr;
  }
}
