body { background: #f3f5f9; }

.card { border: 0; border-radius: .75rem; box-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .08); }
.card-header { background: transparent; border-bottom: 1px solid rgba(0, 0, 0, .06); font-weight: 600; padding: .85rem 1rem; }
.card > .table-responsive:last-child, .card > .list-group:last-child { border-radius: 0 0 .75rem .75rem; }

.page-title { font-size: 1.5rem; font-weight: 700; margin: 0; }

.stat-card { transition: transform .15s ease, box-shadow .15s ease; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(16, 24, 40, .1); }
.stat-card .stat-icon { width: 44px; height: 44px; border-radius: .6rem; display: grid; place-items: center; font-size: 1.3rem; flex-shrink: 0; }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }

.avatar {
    --avatar-hue: 210;
    display: inline-grid; place-items: center; flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 50%;
    background: hsl(var(--avatar-hue) 70% 90%); color: hsl(var(--avatar-hue) 55% 30%);
    font-size: .75rem; font-weight: 700; line-height: 1;
}
.avatar-sm { width: 26px; height: 26px; font-size: .65rem; }
.avatar-lg { width: 44px; height: 44px; font-size: .95rem; }

.table > :not(caption) > * > * { padding: .7rem .85rem; }
.table thead th { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #6c757d; font-weight: 600; background: #f8f9fb; white-space: nowrap; }
.table tbody tr:last-child td { border-bottom: 0; }

a.row-link { color: inherit; text-decoration: none; font-weight: 600; }
a.row-link:hover { color: var(--bs-primary); }

.progress { height: .45rem; min-width: 70px; }

.attachment-list .attachment {
    display: flex; align-items: center; gap: .6rem;
    padding: .45rem .7rem; margin-bottom: .4rem;
    border: 1px solid #e6e9ef; border-radius: .5rem; background: #fff;
}
.attachment-list .attachment a { text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }

.prewrap { white-space: pre-wrap; word-break: break-word; }

.timeline .entry { position: relative; padding-left: 3rem; padding-bottom: 1.25rem; }
.timeline .entry::before { content: ""; position: absolute; left: 15px; top: 36px; bottom: 0; width: 2px; background: #e3e7ee; }
.timeline .entry:last-child::before { display: none; }
.timeline .entry > .avatar { position: absolute; left: 0; top: 0; }
.timeline .bubble { background: #fff; border: 1px solid #e6e9ef; border-radius: .75rem; padding: .75rem 1rem; }
.timeline .bubble.from-admin { background: #f5f9ff; border-color: #d6e4ff; }
.timeline .system { padding-top: .35rem; font-size: .9rem; }

.detail-list dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: #6c757d; font-weight: 600; }
.detail-list dd { margin-bottom: .9rem; }

.auth-page { min-height: 100vh; display: flex; align-items: center; background: linear-gradient(135deg, #1e293b 0%, #334569 100%); }
.auth-page main { width: 100%; }
.min-w-0 { min-width: 0; }
