.haresign-tool-card { background:#fff; border-radius:8px; box-shadow:0 1px 6px rgba(0,0,0,0.06); padding:24px; margin-bottom:24px; }
.ea-attribution { background:#f0f4ff; border-left:4px solid var(--theme); border-radius:0 6px 6px 0; padding:14px 18px; font-size:13px; color:#4b5563; margin-bottom:28px; }
.ea-attribution a { color:var(--theme); font-weight:700; }
.ea-section-head { font-size:16px; font-weight:700; color:#111827; margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid #e8edf2; }
.session-row td { vertical-align:middle; font-size:13px; padding:6px 6px; }
.session-row input { padding:5px 8px; font-size:13px; border:1px solid #d1d9e0; border-radius:6px; width:100%; }
.session-row th { font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:#6b7c85; background:#f8fafc; white-space:nowrap; }
.add-row-btn { background:none; border:1px dashed var(--theme); color:var(--theme); border-radius:6px; padding:6px 16px; font-size:13px; cursor:pointer; margin-top:8px; }
.add-row-btn:hover { background:#f0f4ff; }
.remove-btn { background:none; border:none; color:#cbd5e1; cursor:pointer; font-size:16px; padding:0 6px; }
.remove-btn:hover { color:#dc2626; }
.btn-calc { background:var(--theme); color:#fff; border:none; padding:10px 32px; border-radius:6px; font-weight:700; font-size:14px; cursor:pointer; }
.btn-calc:hover { opacity:.9; }
.summary-strip { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:24px; }
.summary-box { flex:1; min-width:130px; background:#f8fafc; border-radius:8px; padding:16px; text-align:center; border:1px solid #e8edf2; }
.summary-box .s-label { font-size:11px; text-transform:uppercase; letter-spacing:0.8px; color:#6b7c85; margin-bottom:6px; }
.summary-box .s-value { font-size:1.4rem; font-weight:700; color:#111827; }
.summary-box.surplus .s-value { color:#16a34a; }
.summary-box.deficit .s-value { color:#dc2626; }
.results-table th { font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:#6b7c85; background:#f8fafc; }
.results-table td { font-size:13px; vertical-align:middle; }
.results-table .total-row { background:#f0f4ff; font-weight:700; }
.compliance-badge { display:inline-block; padding:6px 16px; border-radius:20px; font-size:13px; font-weight:700; }
.compliance-badge.met { background:#d4edda; color:#155724; }
.compliance-badge.not-met { background:#f8d7da; color:#721c24; }
.req-box { background:#f0f4ff; border:1px solid #c7d8f5; border-radius:8px; padding:20px 24px; margin-bottom:24px; }
.req-box .req-number { font-size:2rem; font-weight:800; color:var(--theme); line-height:1; }
.req-box .req-label { font-size:13px; color:#4b5563; margin-top:4px; }
.pcn-search-wrap { position:relative; display:inline-block; }
#pcn-suggestions { position:absolute; top:100%; left:0; background:#fff; border:1px solid #d1d9e0; border-radius:6px; max-height:240px; overflow-y:auto; z-index:999; min-width:320px; box-shadow:0 4px 20px rgba(0,0,0,0.12); display:none; }
.pcn-suggestion { padding:9px 13px; font-size:13px; cursor:pointer; border-bottom:1px solid #f0f3f6; }
.pcn-suggestion:last-child { border-bottom:none; }
.pcn-suggestion:hover { background:#f0f4ff; }
.practice-req-table th { font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:#6b7c85; background:#f8fafc; }
.practice-req-table td { font-size:13px; vertical-align:middle; }
.practice-req-table .total-row { background:#f0f4ff; font-weight:700; }
.btn-export { background:#fff; color:#111827; border:1px solid #d1d9e0; padding:5px 14px; border-radius:6px; font-size:12px; font-weight:600; cursor:pointer; }
.btn-export:hover { background:#f8fafc; border-color:#9ca3af; }
.chart-sub-title { font-size:12px; font-weight:700; color:#4b5563; text-transform:uppercase; letter-spacing:0.6px; margin:0 0 4px; }
.chart-desc { font-size:12px; color:#9ca3af; line-height:1.6; margin-bottom:14px; }
.chart-desc-green { color:#16a34a; font-weight:600; }
.chart-desc-red { color:#dc2626; font-weight:600; }
.chart-block { border-top:1px solid #e8edf2; padding-top:24px; margin-bottom:32px; }
.chart-block:first-child { border-top:none; padding-top:0; }
.chart-block-header { margin-bottom:12px; }

/* Floating action panel — desktop only */
.ea-action-panel { position:fixed; right:18px; top:50%; transform:translateY(-50%); background:#fff; border:1px solid #e8edf2; border-radius:8px; box-shadow:0 4px 18px rgba(0,0,0,0.13); padding:12px 10px; display:flex; flex-direction:column; gap:6px; z-index:200; min-width:108px; }
.ea-ap-label { font-size:10px; text-transform:uppercase; letter-spacing:0.8px; color:#9ca3af; text-align:center; margin-bottom:2px; }
.ea-ap-btn { background:none; border:1px solid #e8edf2; border-radius:4px; padding:7px 10px; font-size:12px; color:#374151; cursor:pointer; text-align:left; white-space:nowrap; }
.ea-ap-btn:hover { background:#f8fafc; border-color:#9ca3af; }
.ea-ap-divider { border-top:1px solid #e8edf2; margin:2px 0; }
.ea-ap-status { font-size:11px; color:#16a34a; text-align:center; min-height:14px; }

@media (max-width:991px) {
  .ea-action-panel { display:none; }
}

@media (min-width:992px) {
  .ea-mobile-actions { display:none !important; }
  #results-export-toolbar { display:none !important; }
}

@media print {
  body * { visibility:hidden !important; }
  #print-region, #print-region * { visibility:visible !important; }
  #print-region { position:absolute; top:0; left:0; width:100%; padding:20px; }
  .haresign-tool-card { box-shadow:none !important; border:1px solid #e8edf2 !important; page-break-inside:avoid; }
  .ea-section-head { border-bottom:2px solid var(--theme) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .compliance-badge { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .summary-box { border:1px solid #e8edf2 !important; }
  .results-table th { -webkit-print-color-adjust:exact; print-color-adjust:exact; background:#f8fafc !important; }
  .total-row { -webkit-print-color-adjust:exact; print-color-adjust:exact; background:#f0f4ff !important; }
  #results-export-toolbar, #shortfall-advisor, .ea-action-panel { display:none !important; }
  #print-header { display:block !important; }
  #practice-charts-area { display:none !important; }
}

#print-header { display:none; }
