/* vc.ci — application additions on top of the design system */

.auth-card--wide { max-width: 560px; }

.flash { margin-bottom: 14px; }
.flash:last-child { margin-bottom: 0; }
.auth-card > .flash { margin-bottom: 16px; }
.alert a { color: inherit; text-decoration: underline; }

.field-error.input, .field-error.select, .field-error.textarea,
.input.is-error, .select.is-error {
  border-color: #f0a7a7;
  background: #fffafa;
}
.error-text { margin-top: 4px; color: var(--err); font-size: 12px; }

.form-note { margin-top: 14px; font-size: 12px; color: var(--slate-400); }

/* sidebar */
.side-item.is-disabled { opacity: .45; pointer-events: none; }
.side-item .soon {
  margin-left: auto; font-size: 9.5px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: #64748b; border: 1px solid #25344d;
  border-radius: 3px; padding: 1px 4px;
}
.side-form { margin: 0; }
.side-form button {
  width: 100%; background: none; border: 0; cursor: pointer; font: inherit;
  display: flex; align-items: center; gap: 9px; height: 38px; padding: 0 9px;
  border-radius: 5px; color: #a7b6cc; font-size: 13.5px; font-weight: 600;
}
.side-form button:hover { background: rgba(255,255,255,.06); color: #fff; }
.side-form svg { width: 16px; height: 16px; }

/* file upload */
.file-field {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  border: 1px dashed var(--slate-300); border-radius: 6px; padding: 12px 14px; background: #fbfdff;
}
.file-field input[type="file"] { font-size: 12.5px; color: var(--slate-500); max-width: 100%; }
.file-field .small { color: var(--slate-400); }

/* misc */
.legal { max-width: 760px; margin: 48px auto 64px; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 32px 36px; }
.legal h1 { font-size: 26px; margin-bottom: 14px; }
.legal h2 { font-size: 15px; margin-top: 24px; }
.legal p { margin: 12px 0; color: var(--slate-600); font-size: 14px; }
.legal .updated { color: var(--slate-400); font-size: 12px; }

.empty {
  border: 1px dashed var(--slate-300); border-radius: 8px; background: #fbfdff;
  padding: 26px; text-align: center; color: var(--slate-500); font-size: 13px;
}
.empty b { display: block; color: var(--ink-2); font-size: 14px; margin-bottom: 4px; }

.status-icon {
  width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  margin: 0 auto 14px;
}
.status-icon svg { width: 22px; height: 22px; }
.status-icon--ok { background: var(--ok-bg); color: #15803d; }
.status-icon--warn { background: var(--warn-bg); color: #b45309; }
.status-icon--err { background: var(--err-bg); color: #b91c1c; }

.center { text-align: center; }
.mt-6 { margin-top: 6px; }
.mt-10 { margin-top: 10px; }
.mt-16 { margin-top: 16px; }
.mt-24 { margin-top: 24px; }

table.data td .quota-form { display: flex; gap: 6px; justify-content: flex-end; }
table.data td .quota-form .input { height: 30px; width: 64px; padding: 0 8px; font-size: 12.5px; }

.bulkbar form { display: flex; align-items: center; gap: 8px; margin: 0; }
.bulkbar .note-input { height: 30px; width: 200px; font-size: 12.5px; }
.table-check { width: 14px; height: 14px; accent-color: var(--blue-600); vertical-align: middle; }

.review-actions { display: flex; gap: 6px; justify-content: flex-end; }
.review-actions form { margin: 0; }

.provider-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line-2); }
.provider-row:first-child { border-top: 0; padding-top: 0; }
.provider-row .provider-name { font-weight: 600; font-size: 13.5px; }
.provider-row .provider-meta { margin-left: auto; font-size: 12px; color: var(--slate-400); }
.provider-icon { width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; }
.provider-icon img { width: 20px; height: 20px; }

.mail-hint {
  margin-top: 16px; padding: 10px 12px; border-radius: 6px; background: #fffbeb;
  border: 1px solid #fde68a; color: #92400e; font-size: 12px;
}
.mail-hint code { font-family: var(--font-mono); }

.admin-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
@media (max-width: 900px) { .admin-grid { grid-template-columns: repeat(2, 1fr); } }

.audit-row { display: flex; gap: 10px; align-items: flex-start; padding: 9px 0; border-top: 1px solid var(--line-2); font-size: 12.5px; }
.audit-row:first-child { border-top: 0; }
.audit-row .when { margin-left: auto; color: var(--slate-400); white-space: nowrap; }

/* M3 tweaks */
.row-actions { opacity: .85; }
.icon-action { color: var(--slate-600); }
