/*
 * SiteImobi Design System Global — R6.1
 * Fundação visual compartilhada entre App, Master e site público.
 * Regra: novas interfaces devem reutilizar tokens e classes msi-* antes de criar CSS local.
 */
:root{
  --msi-font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --msi-font-size-xs:12px;
  --msi-font-size-sm:13px;
  --msi-font-size-md:14px;
  --msi-font-size-lg:16px;
  --msi-font-size-xl:20px;
  --msi-font-size-2xl:24px;
  --msi-font-weight-regular:400;
  --msi-font-weight-medium:500;
  --msi-font-weight-semibold:600;
  --msi-font-weight-bold:700;

  --msi-color-primary:var(--site-primary,#1268D7);
  --msi-color-primary-hover:#0D56B2;
  --msi-color-primary-soft:#EAF3FF;
  --msi-color-primary-strong:#0E315C;
  --msi-color-secondary:#334155;
  --msi-color-success:#15803D;
  --msi-color-success-soft:#F0FDF4;
  --msi-color-warning:#B45309;
  --msi-color-warning-soft:#FFFBEB;
  --msi-color-danger:#DC2626;
  --msi-color-danger-soft:#FEF2F2;
  --msi-color-info:#0369A1;
  --msi-color-info-soft:#F0F9FF;
  --msi-color-text:#0F172A;
  --msi-color-text-muted:#64748B;
  --msi-color-border:#DCE4EC;
  --msi-color-border-strong:#C7D0DA;
  --msi-color-page:#F3F6F9;
  --msi-color-surface:#FFFFFF;

  --msi-space-0:0;
  --msi-space-1:4px;
  --msi-space-2:8px;
  --msi-space-3:12px;
  --msi-space-4:16px;
  --msi-space-5:20px;
  --msi-space-6:24px;
  --msi-space-8:32px;
  --msi-space-10:40px;
  --msi-space-12:48px;

  --msi-control-height:40px;
  --msi-control-height-sm:34px;
  --msi-control-height-lg:46px;
  --msi-radius-sm:3px;
  --msi-radius-md:4px;
  --msi-radius-lg:6px;
  --msi-radius-pill:999px;
  --msi-shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --msi-shadow-md:0 6px 18px rgba(15,23,42,.07);
  --msi-focus-ring:0 0 0 3px rgba(22,119,242,.18);
  --msi-transition:160ms ease;
  --msi-content-max:1440px;
}

.msi-ds,
.msi-ds button,
.msi-ds input,
.msi-ds select,
.msi-ds textarea{
  font-family:var(--msi-font-family);
}

.msi-ds *,
.msi-ds *::before,
.msi-ds *::after{box-sizing:border-box;}

/* Layout/utilitários compartilhados */
.msi-container{width:min(100% - 32px,var(--msi-content-max));margin-inline:auto;}
.msi-stack{display:flex;flex-direction:column;gap:var(--msi-space-4);}
.msi-inline{display:flex;align-items:center;gap:var(--msi-space-3);flex-wrap:wrap;}
.msi-actions{display:flex;align-items:center;gap:var(--msi-space-2);flex-wrap:wrap;}
.msi-actions--end{justify-content:flex-end;}
.msi-grid{display:grid;gap:var(--msi-space-4);}
.msi-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.msi-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.msi-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.msi-muted{color:var(--msi-color-text-muted);}
.msi-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

/* Cards */
.msi-card{background:var(--msi-color-surface);border:1px solid var(--msi-color-border);border-radius:var(--msi-radius-lg);box-shadow:var(--msi-shadow-sm);padding:var(--msi-space-5);color:var(--msi-color-text);}
.msi-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--msi-space-4);margin-bottom:var(--msi-space-4);}
.msi-card__title{margin:0;font-size:var(--msi-font-size-lg);font-weight:var(--msi-font-weight-semibold);line-height:1.3;}
.msi-card__subtitle{margin:4px 0 0;color:var(--msi-color-text-muted);font-size:var(--msi-font-size-sm);}

/* Botões */
.msi-btn{appearance:none;min-height:var(--msi-control-height);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid transparent;border-radius:var(--msi-radius-md);background:var(--msi-color-primary);color:#fff;text-decoration:none;font-size:var(--msi-font-size-md);font-weight:var(--msi-font-weight-semibold);line-height:1;cursor:pointer;transition:background var(--msi-transition),border-color var(--msi-transition),box-shadow var(--msi-transition),color var(--msi-transition),opacity var(--msi-transition);}
.msi-btn:hover{background:var(--msi-color-primary-hover);color:#fff;text-decoration:none;}
.msi-btn:focus-visible{outline:0;box-shadow:var(--msi-focus-ring);}
.msi-btn:disabled,.msi-btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none;}
.msi-btn--secondary{background:#fff;border-color:var(--msi-color-border-strong);color:var(--msi-color-text);}
.msi-btn--secondary:hover{background:#F8FAFC;color:var(--msi-color-text);border-color:#94A3B8;}
.msi-btn--danger{background:var(--msi-color-danger);}
.msi-btn--danger:hover{background:#B91C1C;}
.msi-btn--success{background:var(--msi-color-success);}
.msi-btn--success:hover{background:#166534;}
.msi-btn--ghost{background:transparent;color:var(--msi-color-primary);border-color:transparent;}
.msi-btn--ghost:hover{background:var(--msi-color-primary-soft);color:var(--msi-color-primary-hover);}
.msi-btn--sm{min-height:var(--msi-control-height-sm);padding-inline:12px;font-size:var(--msi-font-size-sm);}
.msi-btn--lg{min-height:var(--msi-control-height-lg);padding-inline:20px;font-size:var(--msi-font-size-lg);}
.msi-btn--icon{width:var(--msi-control-height);padding:0;}

/* Formulários */
.msi-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.msi-label{font-size:var(--msi-font-size-sm);font-weight:var(--msi-font-weight-semibold);color:var(--msi-color-text);}
.msi-help{font-size:var(--msi-font-size-xs);color:var(--msi-color-text-muted);line-height:1.45;}
.msi-input,.msi-select,.msi-textarea{width:100%;min-height:var(--msi-control-height);border:1px solid var(--msi-color-border-strong);border-radius:var(--msi-radius-md);background:#fff;color:var(--msi-color-text);padding:9px 12px;font-size:var(--msi-font-size-md);line-height:1.35;transition:border-color var(--msi-transition),box-shadow var(--msi-transition);}
.msi-textarea{min-height:112px;resize:vertical;}
.msi-input:focus,.msi-select:focus,.msi-textarea:focus{outline:0;border-color:var(--msi-color-primary);box-shadow:var(--msi-focus-ring);}
.msi-input:disabled,.msi-select:disabled,.msi-textarea:disabled{background:#F1F5F9;color:#94A3B8;cursor:not-allowed;}
.msi-field--error .msi-input,.msi-field--error .msi-select,.msi-field--error .msi-textarea{border-color:var(--msi-color-danger);}
.msi-error{font-size:var(--msi-font-size-xs);color:var(--msi-color-danger);}

/* Badges/status */
.msi-badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:3px 9px;border-radius:var(--msi-radius-pill);background:#F1F5F9;color:var(--msi-color-secondary);font-size:var(--msi-font-size-xs);font-weight:var(--msi-font-weight-semibold);line-height:1.2;white-space:nowrap;}
.msi-badge--success{background:var(--msi-color-success-soft);color:var(--msi-color-success);}
.msi-badge--warning{background:var(--msi-color-warning-soft);color:var(--msi-color-warning);}
.msi-badge--danger{background:var(--msi-color-danger-soft);color:var(--msi-color-danger);}
.msi-badge--info{background:var(--msi-color-info-soft);color:var(--msi-color-info);}
.msi-badge--primary{background:var(--msi-color-primary-soft);color:var(--msi-color-primary-hover);}

/* Alertas */
.msi-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--msi-color-border);border-radius:var(--msi-radius-md);background:#fff;color:var(--msi-color-text);font-size:var(--msi-font-size-md);line-height:1.45;}
.msi-alert--success{background:var(--msi-color-success-soft);border-color:#BBF7D0;color:#166534;}
.msi-alert--warning{background:var(--msi-color-warning-soft);border-color:#FDE68A;color:#92400E;}
.msi-alert--danger{background:var(--msi-color-danger-soft);border-color:#FECACA;color:#991B1B;}
.msi-alert--info{background:var(--msi-color-info-soft);border-color:#BAE6FD;color:#075985;}

/* Tabelas */
.msi-table-wrap{width:100%;overflow:auto;border:1px solid var(--msi-color-border);border-radius:var(--msi-radius-lg);background:#fff;}
.msi-table{width:100%;border-collapse:collapse;min-width:640px;color:var(--msi-color-text);font-size:var(--msi-font-size-md);}
.msi-table th,.msi-table td{padding:12px 14px;border-bottom:1px solid var(--msi-color-border);text-align:left;vertical-align:middle;}
.msi-table th{background:#F8FAFC;color:#475569;font-size:var(--msi-font-size-xs);font-weight:var(--msi-font-weight-bold);text-transform:uppercase;letter-spacing:.03em;}
.msi-table tbody tr:last-child td{border-bottom:0;}

/* Responsividade-base obrigatória para novos componentes */
@media (max-width:1024px){
  .msi-grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .msi-grid--3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:768px){
  .msi-container{width:min(100% - 24px,var(--msi-content-max));}
  .msi-grid--2,.msi-grid--3,.msi-grid--4{grid-template-columns:1fr;}
  .msi-actions{align-items:stretch;}
  .msi-actions>.msi-btn{flex:1 1 auto;}
  .msi-card{padding:var(--msi-space-4);}
}
@media (max-width:480px){
  .msi-container{width:min(100% - 20px,var(--msi-content-max));}
  .msi-actions{flex-direction:column;}
  .msi-actions>.msi-btn{width:100%;}
}
