/* =====================================================================
   2nd Amendment Chat Room — Profilo Politics
   Clean news look, red accent (blog), brown tick #8B5A2B for verified.
   ===================================================================== */
.tac-root{
  --tac-red:#b3202a; --tac-red-dark:#8c1a21; --tac-ink:#1a1a1a; --tac-muted:#666;
  --tac-line:#e3e0da; --tac-paper:#fff; --tac-wash:#f7f5f1; --tac-brown:#8B5A2B;
  --tac-radius:10px;
}
.tac-root *{box-sizing:border-box}
.tac-root{margin:0;font-family:Georgia,'Times New Roman',serif;color:var(--tac-ink);background:var(--tac-wash)}
.tac-root a{color:var(--tac-red);text-decoration:none}
.tac-root a:hover{text-decoration:underline}
.tac-root h1, .tac-root h2, .tac-root h3{font-family:Helvetica,Arial,sans-serif;line-height:1.2}
.tac-root .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---- header / menu (order fixed by spec 1) ---- */
.tac-root .site-header{background:var(--tac-paper);border-bottom:3px solid var(--tac-red)}
.tac-root .masthead{max-width:1200px;margin:0 auto;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.tac-root .brand{font-family:Helvetica,Arial,sans-serif;font-size:28px;font-weight:800;color:var(--tac-ink)}
.tac-root .brand span{color:var(--tac-red)}
.tac-root .brand:hover{text-decoration:none}
.tac-root .account-links{display:flex;gap:16px;align-items:center;font-family:Helvetica,Arial,sans-serif;font-size:14px}
.tac-root .main-menu{max-width:1200px;margin:0 auto;padding:0 20px 10px;display:flex;flex-wrap:wrap;gap:20px;font-family:Helvetica,Arial,sans-serif;font-size:15px}
.tac-root .main-menu a{color:var(--tac-ink);padding:4px 2px}
.tac-root .main-menu a.active{color:var(--tac-red);font-weight:700;border-bottom:2px solid var(--tac-red)}
.tac-root .page{max-width:1200px;margin:0 auto;padding:24px 20px 48px}
.tac-root .site-footer{border-top:1px solid var(--tac-line);padding:20px;text-align:center;color:var(--tac-muted);font-size:14px}

/* ---- badges, buttons, flashes ---- */
.tac-root .badge{background:var(--tac-red);color:#fff;border-radius:999px;padding:1px 8px;font-size:12px;font-family:Helvetica,Arial,sans-serif;font-weight:700}
.tac-root .new-badge{background:var(--tac-red);color:#fff;border-radius:4px;padding:2px 7px;font-size:11px;font-family:Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:.04em}
.tac-root .stage{font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--tac-red-dark)}
.tac-root .stage-closed{color:var(--tac-muted)}
.tac-root .btn{display:inline-block;background:var(--tac-red);color:#fff;border:0;border-radius:6px;padding:10px 18px;font-family:Helvetica,Arial,sans-serif;font-size:15px;cursor:pointer}
.tac-root .btn:hover{background:var(--tac-red-dark);text-decoration:none}
.tac-root .btn-small{padding:6px 12px;font-size:13px}
.tac-root .btn-ghost{background:transparent;color:var(--tac-red);border:1px solid var(--tac-red)}
.tac-root .btn-ghost:hover{background:#fbeeee}
.tac-root .btn-danger-ghost{background:transparent;color:var(--tac-red-dark);border:1px solid var(--tac-line)}
.tac-root .btn-block{display:block;width:100%;text-align:center}
.tac-root .flash{border-radius:6px;padding:12px 16px;margin-bottom:18px;font-family:Helvetica,Arial,sans-serif}
.tac-root .flash-ok{background:#e8f5e9;border:1px solid #a5d6a7}
.tac-root .flash-error{background:#fdecea;border:1px solid #f1a9a5}
.tac-root .empty{color:var(--tac-muted);font-style:italic}
.tac-root .brown-tick{vertical-align:-3px}

/* ---- section home: split view, chat LEFT, cases RIGHT ---- */
.tac-root .section-head h1{margin:0 0 6px;font-size:32px}
.tac-root .section-head p{margin:0 0 18px;color:var(--tac-muted);max-width:70ch}
.tac-root .split-view{display:grid;grid-template-columns:400px 1fr;gap:20px;align-items:start}
.tac-root .pane-title{margin-top:0}
.tac-root .case-list{display:flex;flex-direction:column;gap:12px;max-height:none;overflow:visible;padding-right:4px}
.tac-root .mobile-tabs{display:none}

/* ---- case boxes ---- */
.tac-root .case-box{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:14px 16px}
.tac-root .case-box:hover{border-color:var(--tac-red)}
.tac-root .case-box.is-active{border-color:var(--tac-red);box-shadow:0 0 0 1px var(--tac-red)}
.tac-root .case-box-link{color:inherit;display:block}
.tac-root .case-box-link:hover{text-decoration:none}
.tac-root .case-box-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.tac-root .case-box h3{margin:0;font-size:17px}
.tac-root .case-box-meta{margin:6px 0 0;color:var(--tac-muted);font-size:14px}
.tac-root .case-box-info{margin:6px 0 0;font-size:15px}
.tac-root .case-box-foot{margin:10px 0 0;display:flex;justify-content:space-between;align-items:center}
.tac-root .updated-ago{color:var(--tac-muted);font-size:13px;font-family:Helvetica,Arial,sans-serif}

/* ---- chat ---- */
.tac-root .chat{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);display:flex;flex-direction:column;overflow:hidden}
.tac-root .chat-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--tac-line)}
.tac-root .chat-head h2{margin:0;font-size:18px}
.tac-root .chat-live{font-family:Helvetica,Arial,sans-serif;font-size:12px;color:var(--tac-muted);display:flex;gap:6px;align-items:center}
.tac-root .chat-live .dot{width:8px;height:8px;border-radius:50%;background:#2e9e4f;display:inline-block}
.tac-root .chat-messages{height:52vh;min-height:280px;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.tac-root .chat-msg{font-size:15px}
.tac-root .chat-msg .who{font-family:Helvetica,Arial,sans-serif;font-weight:700;font-size:13px}
.tac-root .chat-msg .when{color:var(--tac-muted);font-size:12px;font-family:Helvetica,Arial,sans-serif;margin-left:6px}
.tac-root .chat-msg .text{display:block;margin-top:2px;overflow-wrap:anywhere}
.tac-root .chat-divider{text-align:center;font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:700;color:var(--tac-red-dark);background:#fbeeee;border-radius:999px;padding:5px 12px;margin:4px auto}
.tac-root .chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--tac-line)}
.tac-root .chat-form input{flex:1;padding:10px;border:1px solid var(--tac-line);border-radius:6px;font-size:15px}
.tac-root .chat-form button{background:var(--tac-red);color:#fff;border:0;border-radius:6px;padding:10px 16px;font-family:Helvetica,Arial,sans-serif;cursor:pointer}
.tac-root .chat-as{margin:0;padding:0 12px 10px;font-size:13px;color:var(--tac-muted)}
.tac-root .chat-join{padding:16px;border-top:1px solid var(--tac-line);text-align:center}
.tac-root .chat-join p{color:var(--tac-muted);font-size:14px;margin:10px 0 0}
.tac-root .chat-loading{color:var(--tac-muted);font-style:italic}

/* ---- case page ---- */
.tac-root .case-kicker{font-family:Helvetica,Arial,sans-serif;font-size:13px;color:var(--tac-muted)}
.tac-root .case-head h1{font-size:34px;margin:6px 0}
.tac-root .case-summary{font-size:18px;max-width:75ch}
.tac-root .facts-strip{display:flex;flex-wrap:wrap;gap:0;background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);overflow:hidden;margin:18px 0}
.tac-root .facts-strip>div{flex:1 1 150px;padding:12px 16px;border-right:1px solid var(--tac-line)}
.tac-root .facts-strip>div:last-child{border-right:0}
.tac-root .facts-strip dt{font-family:Helvetica,Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--tac-muted)}
.tac-root .facts-strip dd{margin:4px 0 0;font-size:16px}
.tac-root .next-update{background:#fff8e6;border:1px solid #ecd28a;border-radius:6px;padding:10px 14px;font-family:Helvetica,Arial,sans-serif;font-size:15px}
.tac-root .follow-box{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:14px 16px;margin:16px 0}
.tac-root .follow-form{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-family:Helvetica,Arial,sans-serif;font-size:14px}
.tac-root .follow-note{color:var(--tac-muted);margin-left:10px}
.tac-root .case-layout{display:flex;gap:20px;align-items:flex-start}
.tac-root .case-reading{flex:1;min-width:0}
.tac-root .case-chat{width:360px;flex:none;display:flex;flex-direction:column;gap:16px}
.tac-root .case-layout.chat-closed .case-chat{display:none}
.tac-root .chat-toggle{align-self:flex-start;background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:6px;padding:8px 12px;font-family:Helvetica,Arial,sans-serif;cursor:pointer;white-space:nowrap}
.tac-root .case-rail h2{font-size:18px}
.tac-root .case-rail .case-box{margin-bottom:12px}
.tac-root .case-chat .chat-messages{height:44vh}

/* ---- timeline ---- */
.tac-root .timeline{list-style:none;margin:0;padding:0}
.tac-root .timeline-item{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:16px 18px;margin-bottom:14px}
.tac-root .timeline-date{margin:0;font-family:Helvetica,Arial,sans-serif;font-size:13px;color:var(--tac-muted);display:flex;gap:8px;align-items:center}
.tac-root .update-type{background:var(--tac-wash);border:1px solid var(--tac-line);border-radius:4px;padding:1px 6px;font-size:11px;text-transform:uppercase}
.tac-root .timeline-item h3{margin:6px 0}
.tac-root .timeline-body{font-size:16px;line-height:1.55}

/* ---- auth / forms ---- */
.tac-root .auth-card{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:26px;max-width:520px;margin:10px auto}
.tac-root .auth-card.wide{max-width:760px}
.tac-root .auth-form label, .tac-root .admin-form label{display:block;font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:600;margin-bottom:14px}
.tac-root .auth-form input, .tac-root .admin-form input, .tac-root .admin-form select, .tac-root .admin-form textarea, .tac-root .scope-form select{width:100%;margin-top:5px;padding:10px;border:1px solid var(--tac-line);border-radius:6px;font-size:15px;font-family:inherit;font-weight:400}
.tac-root .hint{font-weight:400;color:var(--tac-muted)}
.tac-root .safety-note{background:var(--tac-wash);border-left:4px solid var(--tac-red);padding:12px 14px;font-size:15px}
.tac-root .form-errors{background:#fdecea;border:1px solid #f1a9a5;border-radius:6px;padding:10px 14px 10px 30px;font-family:Helvetica,Arial,sans-serif;font-size:14px}
.tac-root .form-errors.single{padding-left:14px}
.tac-root .auth-alt{color:var(--tac-muted);font-size:14px}
.tac-root .verified-note{background:#f7f0e6;border:1px solid #ddc39a;border-radius:6px;padding:12px 14px}
.tac-root .success-actions{display:flex;gap:12px;margin-top:18px}

/* verification plus button (spec 7) */
.tac-root .verify-row{display:flex;gap:14px;align-items:flex-start;border:1px dashed var(--tac-brown);border-radius:var(--tac-radius);padding:14px;margin-bottom:16px}
.tac-root .plus-btn{flex:none;width:44px;height:44px;border-radius:50%;border:2px solid var(--tac-brown);background:#fff;color:var(--tac-brown);font-size:26px;line-height:1;cursor:pointer;font-family:Helvetica,Arial,sans-serif}
.tac-root .plus-btn:hover{background:#f7f0e6}
.tac-root .plus-btn.on{background:var(--tac-brown);color:#fff}
.tac-root .verify-text{font-family:Helvetica,Arial,sans-serif;font-size:14px}
.tac-root .verify-text span{display:block;color:var(--tac-muted);font-weight:400;margin-top:3px;line-height:1.45}

/* ---- representatives panel ---- */
.tac-root .reps-panel{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:18px;margin:18px 0}
.tac-root .reps-panel h3{margin-top:0}
.tac-root .reps-note{color:var(--tac-muted)}
.tac-root .reps-table{width:100%;border-collapse:collapse;font-size:15px}
.tac-root .reps-table th, .tac-root .reps-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--tac-line);vertical-align:top}
.tac-root .reps-table th{font-family:Helvetica,Arial,sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--tac-muted)}
.tac-root .reps-district, .tac-root .reps-party{color:var(--tac-muted);font-size:13px}
.tac-root .reps-fallback{color:var(--tac-muted);font-style:italic}

/* ---- profile / my cases ---- */
.tac-root .profile-card, .tac-root .admin-card{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:20px;margin-bottom:18px}
.tac-root .details>div{display:flex;gap:16px;padding:6px 0;border-bottom:1px solid var(--tac-line)}
.tac-root .details dt{width:220px;font-family:Helvetica,Arial,sans-serif;font-size:13px;color:var(--tac-muted)}
.tac-root .details dd{margin:0}
.tac-root .page-sub{color:var(--tac-muted)}
.tac-root .my-case{background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:14px 16px;margin-bottom:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.tac-root .my-case h3{margin:0}
.tac-root .my-case-actions{display:flex;gap:14px;align-items:flex-start}
.tac-root .scope-form{display:flex;gap:8px;align-items:end;font-family:Helvetica,Arial,sans-serif;font-size:13px}
.tac-root .scope-form select{width:auto}

/* ---- admin ---- */
.tac-root .stat-big{font-size:40px;font-family:Helvetica,Arial,sans-serif;font-weight:800;margin:6px 0}
.tac-root .stat-big span{font-size:16px;font-weight:400;color:var(--tac-muted)}
.tac-root .admin-note{color:var(--tac-muted)}
.tac-root .collation-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.tac-root .admin-table{width:100%;border-collapse:collapse;font-size:14px;font-family:Helvetica,Arial,sans-serif}
.tac-root .admin-table th, .tac-root .admin-table td{text-align:left;padding:8px;border-bottom:1px solid var(--tac-line);vertical-align:top}
.tac-root .row-actions{white-space:nowrap}
.tac-root .row-deleted{opacity:.55}
.tac-root .admin-form{max-width:760px;background:var(--tac-paper);border:1px solid var(--tac-line);border-radius:var(--tac-radius);padding:20px;margin-bottom:22px}
.tac-root .form-row{display:flex;gap:14px}
.tac-root .form-row label{flex:1}
.tac-root .inline-form{display:inline-flex;gap:8px;align-items:center}
.tac-root .link-btn{background:none;border:0;color:var(--tac-red);cursor:pointer;font:inherit;padding:0}
.tac-root .admin-timeline .timeline-item{background:var(--tac-wash)}

/* ---- responsive: panes become tabs (spec 2) ---- */
.tac-root @media (max-width:900px){
  .split-view{grid-template-columns:1fr}
  .mobile-tabs{display:flex;gap:8px;margin-bottom:14px}
  .mobile-tabs button{flex:1;padding:10px;border:1px solid var(--tac-line);background:var(--tac-paper);border-radius:6px;font-family:Helvetica,Arial,sans-serif;font-size:15px;cursor:pointer}
  .mobile-tabs button.is-active{background:var(--tac-red);color:#fff;border-color:var(--tac-red)}
  .pane{display:none}
  .pane.is-active{display:block}
  .case-list{max-height:none;overflow:visible}
  .case-layout{flex-direction:column}
  .case-chat{width:100%}
  .collation-grid{grid-template-columns:1fr}
  .form-row{flex-direction:column}
}

/* ---- persistent chat & dock ---- */
html[data-tac-chat="closed"] [data-chat-dock] { display:none !important; }
[data-chat-reopen] {
  position:fixed; bottom:20px; right:20px; z-index:9999;
  background:var(--tac-red); color:#fff; border:0; border-radius:999px;
  padding:10px 20px; font-weight:700; font-family:Helvetica,Arial,sans-serif;
  font-size:14px; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,0.25);
}
[data-chat-reopen]:hover { background:var(--tac-red-dark); }

/* ---- chat replies ---- */
.tac-quote {
  display:block; width:100%; text-align:left; border-left:3px solid #c92a2a;
  background:#f6f1ea; border-radius:6px; padding:6px 9px; margin-bottom:6px;
  cursor:pointer; border-top:0; border-right:0; border-bottom:0;
}
.tac-quote strong { display:block; font-size:12px; color:#7a2e1d; }
.tac-quote span { font-size:12.5px; color:#444; }
.tac-reply-btn {
  font-size:12px; font-weight:700; color:#7a2e1d; background:none;
  border:0; cursor:pointer; padding:2px 4px; margin-left:6px;
}
.tac-reply-btn:hover { text-decoration:underline; }
.tac-reply-count {
  font-size:11.5px; font-weight:700; color:#fff; background:#7a2e1d;
  border:0; border-radius:999px; padding:2px 8px; cursor:pointer; margin-top:4px;
}
.tac-flash { animation:tac-flash 1.6s ease; }
@keyframes tac-flash { 0%,60%{background:#fde9c8} 100%{background:transparent} }
.tac-dim { opacity:.35; transition:opacity .3s; }
[data-reply-bar] {
  border-left:3px solid #c92a2a; background:#f6f1ea; padding:6px 9px;
  font-size:12.5px; border-radius:4px;
}

/* ---- chat audio ---- */
.tac-audio {
  display:flex; align-items:center; gap:10px; padding:8px 12px;
  background:#f6f1ea; border-radius:8px; margin-top:6px;
}
.tac-audio button { background:none; border:0; font-size:18px; cursor:pointer; color:#7a2e1d; }
.tac-waveform { display:flex; align-items:center; gap:2px; height:24px; }
.tac-waveform span { display:inline-block; width:3px; background:#7a2e1d; border-radius:2px; }
.tac-audio-transcript { margin-top:4px; font-size:13px; color:#555; }
.tac-rec-dot {
  display:inline-block; width:8px; height:8px; background:red;
  border-radius:50%; animation:tac-pulse 1s infinite;
}

