.page { display: flex; flex-direction: column; gap: var(--space-6); max-width: 1100px; } /* ── Header do ticket ──────────────────────────────────────────────────────── */ .ticketHeader { display: flex; flex-direction: column; gap: var(--space-3); } .headerTop { display: flex; align-items: center; justify-content: space-between; } .ticketId { font-size: var(--text-sm); color: var(--color-text-muted); font-variant-numeric: tabular-nums; } .ticketTitle { font-size: var(--text-2xl); font-weight: 700; color: var(--color-text-primary); letter-spacing: -0.02em; line-height: 1.3; } .headerMeta { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; } .metaDate { font-size: var(--text-xs); color: var(--color-text-muted); } /* ── Layout 2 colunas ──────────────────────────────────────────────────────── */ .layout { display: grid; grid-template-columns: 1fr 280px; gap: var(--space-6); align-items: start; } .mainCol { display: flex; flex-direction: column; gap: var(--space-5); } .sidebar { display: flex; flex-direction: column; gap: var(--space-4); position: sticky; top: calc(var(--header-height) + var(--space-4)); } /* ── Seções ────────────────────────────────────────────────────────────────── */ .sectionTitle { font-size: var(--text-sm); font-weight: 600; color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: var(--space-3); } .description { font-size: var(--text-sm); color: var(--color-text-secondary); line-height: 1.8; white-space: pre-wrap; } /* ── Timeline de comentários ───────────────────────────────────────────────── */ .timeline { display: flex; flex-direction: column; gap: var(--space-3); margin-top: var(--space-3); } .comment { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-4); transition: border-color var(--transition-fast); } .comment:hover { border-color: var(--color-border-hover); } /* Notas internas têm visual diferenciado */ .commentInternal { background: rgba(245, 158, 11, 0.05); border-color: rgba(245, 158, 11, 0.2); } .commentHeader { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); } .commentAvatar { font-size: var(--text-base); width: 28px; text-align: center; flex-shrink: 0; } .commentAuthor { font-size: var(--text-sm); font-weight: 500; color: var(--color-text-primary); } .internalTag { display: inline-block; margin-left: var(--space-2); font-size: var(--text-xs); color: var(--color-waiting); background: rgba(245, 158, 11, 0.12); padding: 1px 6px; border-radius: var(--radius-full); } .commentDate { font-size: var(--text-xs); color: var(--color-text-muted); margin-left: auto; flex-shrink: 0; } .commentContent { font-size: var(--text-sm); color: var(--color-text-secondary); line-height: 1.7; white-space: pre-wrap; padding-left: calc(28px + var(--space-2)); } .commentsLoading { display: flex; justify-content: center; padding: var(--space-6); } .noComments { font-size: var(--text-sm); color: var(--color-text-muted); font-style: italic; text-align: center; padding: var(--space-6); } /* ── Reply ─────────────────────────────────────────────────────────────────── */ .replySection { display: flex; flex-direction: column; gap: var(--space-3); } .replyTextarea { resize: vertical; min-height: 100px; } .replyActions { display: flex; align-items: center; justify-content: space-between; } .internalToggle { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--color-text-secondary); cursor: pointer; user-select: none; } /* ── Sidebar de informações ────────────────────────────────────────────────── */ .statusActions { display: flex; flex-direction: column; gap: var(--space-2); } .statusBtn { width: 100%; justify-content: center; } .infoList { display: flex; flex-direction: column; gap: var(--space-2); } .infoRow { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-2); } .infoRow dt { font-size: var(--text-xs); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.05em; flex-shrink: 0; } .infoRow dd { font-size: var(--text-sm); color: var(--color-text-secondary); text-align: right; } /* ── Loading / Error states ────────────────────────────────────────────────── */ .loadingWrapper { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-4); padding: var(--space-16); color: var(--color-text-muted); font-size: var(--text-sm); } .errorWrapper { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); padding: var(--space-16); text-align: center; } .errorTitle { font-size: var(--text-xl); font-weight: 600; color: var(--color-text-secondary); }