.jwt-input { width: 100%; font-family: monospace; font-size: 13px; padding: 8px; border: 1px solid #ccc; border-radius: 4px; resize: vertical; word-break: break-all; }
.jwt-action-row { margin: 8px 0; display: flex; gap: 8px; }
.jwt-error { color: #c0392b; background: #fde8e8; border: 1px solid #e74c3c; border-radius: 4px; padding: 8px 12px; margin-bottom: 8px; font-size: 13px; }
.jwt-parts { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.jwt-part { border-radius: 6px; padding: 12px 14px; }
.jwt-header  { background: #eaf4fb; border-left: 4px solid #3498db; }
.jwt-payload { background: #eafbea; border-left: 4px solid #27ae60; }
.jwt-sig     { background: #fef9e7; border-left: 4px solid #f39c12; }
.jwt-part-title { font-weight: bold; margin-bottom: 8px; font-size: 14px; }
.jwt-json { margin: 0; font-size: 12px; white-space: pre-wrap; word-break: break-all; background: rgba(255,255,255,0.6); padding: 8px; border-radius: 4px; }
.jwt-claims-table { margin-top: 10px; width: 100%; border-collapse: collapse; font-size: 12px; }
.jwt-claims-table th, .jwt-claims-table td { padding: 5px 8px; border: 1px solid #ddd; vertical-align: top; }
.jwt-claims-table th { background: rgba(255,255,255,0.7); font-weight: bold; }
.jwt-sig-val { font-family: monospace; font-size: 12px; word-break: break-all; background: rgba(255,255,255,0.6); padding: 8px; border-radius: 4px; }
.jwt-sig-note { font-size: 12px; color: #888; margin-top: 6px; }
