/* ================================================================
   PRECIFIKA — DIÁRIO DE OBRA & CRONOGRAMA
   css/diary.css — v1.0 — Junho 2026
   ================================================================ */

/* ── Custom Properties ── */
:root {
  --diary-royal:    #1D4ED8;
  --diary-royal-dk: #1E3A8A;
  --diary-royal-lt: #DBEAFE;
  --diary-royal-xl: #EFF6FF;
  --diary-green:    #16A34A;
  --diary-green-lt: #DCFCE7;
  --diary-red:      #DC2626;
  --diary-red-lt:   #FEE2E2;
  --diary-amber:    #D97706;
  --diary-amber-lt: #FEF3C7;
  --diary-slate50:  #F8FAFC;
  --diary-slate100: #F1F5F9;
  --diary-slate200: #E2E8F0;
  --diary-slate300: #CBD5E1;
  --diary-slate500: #64748B;
  --diary-slate700: #334155;
  --diary-slate900: #0F172A;
  --diary-radius:   12px;
  --diary-radius-sm: 8px;
  --diary-shadow:   0 1px 3px rgba(0,0,0,.08), 0 4px 16px rgba(0,0,0,.06);
  --diary-shadow-lg: 0 8px 32px rgba(0,0,0,.12);
}

/* ════════════════════════════════════════════════════════════
   LAYOUT PRINCIPAL — DIÁRIO
   ════════════════════════════════════════════════════════════ */

.diary-page,
.schedule-page {
  padding: 0;
  min-height: 100vh;
  background: var(--diary-slate50);
}

/* ── Page Header ── */
.diary-header {
  background: #fff;
  border-bottom: 1px solid var(--diary-slate200);
  padding: 20px 28px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  position: sticky;
  top: 0;
  z-index: 50;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}

.diary-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.diary-header-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--diary-royal);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 20px;
  flex-shrink: 0;
}

.diary-header-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--diary-slate900);
  line-height: 1.2;
}

.diary-header-subtitle {
  font-size: 13px;
  color: var(--diary-slate500);
  margin-top: 2px;
}

.diary-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* ── Tabs ── */
.diary-tabs {
  display: flex;
  background: #fff;
  border-bottom: 1px solid var(--diary-slate200);
  padding: 0 28px;
  gap: 4px;
}

.diary-tab {
  padding: 12px 20px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--diary-slate500);
  border: none;
  background: none;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: all .2s;
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.diary-tab:hover { color: var(--diary-royal); }
.diary-tab.active {
  color: var(--diary-royal);
  border-bottom-color: var(--diary-royal);
}

.diary-tab-content { display: none; }
.diary-tab-content.active { display: block; }

/* ── Body / Content Area ── */
.diary-body {
  padding: 24px 28px;
  max-width: 1400px;
}

/* ════════════════════════════════════════════════════════════
   BOTÕES
   ════════════════════════════════════════════════════════════ */

.btn-diary-primary {
  background: var(--diary-royal);
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: var(--diary-radius-sm);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: background .2s, transform .1s, box-shadow .2s;
  box-shadow: 0 2px 8px rgba(29,78,216,.25);
}
.btn-diary-primary:hover {
  background: var(--diary-royal-dk);
  box-shadow: 0 4px 14px rgba(29,78,216,.35);
}
.btn-diary-primary:active { transform: scale(.97); }

.btn-diary-secondary {
  background: #fff;
  color: var(--diary-royal);
  border: 1.5px solid var(--diary-royal);
  padding: 9px 18px;
  border-radius: var(--diary-radius-sm);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: all .2s;
}
.btn-diary-secondary:hover { background: var(--diary-royal-xl); }

.btn-diary-ghost {
  background: none;
  border: 1.5px solid var(--diary-slate200);
  color: var(--diary-slate700);
  padding: 9px 16px;
  border-radius: var(--diary-radius-sm);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: all .2s;
}
.btn-diary-ghost:hover { border-color: var(--diary-royal); color: var(--diary-royal); background: var(--diary-royal-xl); }

.btn-diary-danger {
  background: #fff;
  color: var(--diary-red);
  border: 1.5px solid var(--diary-red);
  padding: 8px 14px;
  border-radius: var(--diary-radius-sm);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all .2s;
}
.btn-diary-danger:hover { background: var(--diary-red-lt); }

.btn-icon-sm {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1.5px solid var(--diary-slate200);
  background: #fff;
  color: var(--diary-slate500);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: all .2s;
}
.btn-icon-sm:hover { border-color: var(--diary-royal); color: var(--diary-royal); background: var(--diary-royal-xl); }
.btn-icon-sm.danger:hover { border-color: var(--diary-red); color: var(--diary-red); background: var(--diary-red-lt); }

/* ════════════════════════════════════════════════════════════
   CARDS DE KPI
   ════════════════════════════════════════════════════════════ */

.diary-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.diary-kpi-card {
  background: #fff;
  border-radius: var(--diary-radius);
  border: 1px solid var(--diary-slate200);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-shadow: var(--diary-shadow);
  position: relative;
  overflow: hidden;
  transition: box-shadow .2s;
}
.diary-kpi-card:hover { box-shadow: var(--diary-shadow-lg); }
.diary-kpi-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: var(--diary-radius) var(--diary-radius) 0 0;
}
.diary-kpi-card.kpi-blue::before   { background: var(--diary-royal); }
.diary-kpi-card.kpi-green::before  { background: var(--diary-green); }
.diary-kpi-card.kpi-red::before    { background: var(--diary-red); }
.diary-kpi-card.kpi-amber::before  { background: var(--diary-amber); }
.diary-kpi-card.kpi-purple::before { background: #7c3aed; }

.diary-kpi-label {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--diary-slate500);
  text-transform: uppercase;
  letter-spacing: .5px;
}

.diary-kpi-value {
  font-size: 28px;
  font-weight: 800;
  color: var(--diary-slate900);
  line-height: 1.1;
  margin-top: 4px;
}

.diary-kpi-value.kpi-blue   { color: var(--diary-royal); }
.diary-kpi-value.kpi-green  { color: var(--diary-green); }
.diary-kpi-value.kpi-red    { color: var(--diary-red); }
.diary-kpi-value.kpi-amber  { color: var(--diary-amber); }
.diary-kpi-value.kpi-purple { color: #7c3aed; }

.diary-kpi-sub {
  font-size: 12px;
  color: var(--diary-slate500);
  margin-top: 2px;
}

.diary-kpi-icon {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 28px;
  opacity: .08;
}

/* ════════════════════════════════════════════════════════════
   LISTA DE REGISTROS
   ════════════════════════════════════════════════════════════ */

.diary-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.diary-list-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--diary-slate900);
}

.diary-search-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1.5px solid var(--diary-slate200);
  border-radius: var(--diary-radius-sm);
  padding: 8px 14px;
  flex: 1;
  max-width: 320px;
  transition: border-color .2s;
}
.diary-search-bar:focus-within { border-color: var(--diary-royal); }
.diary-search-bar input {
  border: none;
  outline: none;
  font-size: 13.5px;
  color: var(--diary-slate700);
  background: none;
  width: 100%;
}
.diary-search-bar i { color: var(--diary-slate500); font-size: 14px; }

/* Diary Entry Cards */
.diary-entry-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.diary-entry-card {
  background: #fff;
  border-radius: var(--diary-radius);
  border: 1px solid var(--diary-slate200);
  box-shadow: var(--diary-shadow);
  transition: box-shadow .2s, border-color .2s;
  overflow: hidden;
  cursor: pointer;
}
.diary-entry-card:hover { box-shadow: var(--diary-shadow-lg); border-color: var(--diary-royal-lt); }

.diary-entry-card-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--diary-slate100);
}

.diary-entry-date-badge {
  background: var(--diary-royal-xl);
  color: var(--diary-royal);
  border-radius: var(--diary-radius-sm);
  padding: 8px 12px;
  text-align: center;
  flex-shrink: 0;
  min-width: 52px;
}
.diary-entry-date-badge .day   { font-size: 22px; font-weight: 800; line-height: 1; }
.diary-entry-date-badge .month { font-size: 10.5px; font-weight: 600; text-transform: uppercase; }

.diary-entry-info { flex: 1; min-width: 0; }
.diary-entry-project {
  font-size: 15px;
  font-weight: 700;
  color: var(--diary-slate900);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.diary-entry-meta {
  font-size: 12.5px;
  color: var(--diary-slate500);
  margin-top: 3px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.diary-entry-meta span { display: flex; align-items: center; gap: 5px; }

.diary-entry-card-body {
  padding: 12px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.diary-activity-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  flex: 1;
}

.diary-chip {
  background: var(--diary-slate100);
  color: var(--diary-slate700);
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 5px;
}
.diary-chip.chip-stage {
  background: var(--diary-royal-xl);
  color: var(--diary-royal);
  font-weight: 600;
}

.diary-entry-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

/* Status Badge */
.status-badge {
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.status-badge.status-normal    { background: var(--diary-green-lt);  color: var(--diary-green); }
.status-badge.status-atencao   { background: var(--diary-amber-lt);  color: var(--diary-amber); }
.status-badge.status-critico   { background: var(--diary-red-lt);    color: var(--diary-red); }
.status-badge.status-paralisado { background: var(--diary-slate100); color: var(--diary-slate500); }

.weather-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--diary-slate500);
  padding: 2px 8px;
  background: var(--diary-slate100);
  border-radius: 20px;
}

/* ════════════════════════════════════════════════════════════
   FORMULÁRIO DO DIÁRIO
   ════════════════════════════════════════════════════════════ */

.diary-form-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.6);
  backdrop-filter: blur(4px);
  z-index: 1100;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s;
}
.diary-form-overlay.active {
  opacity: 1;
  pointer-events: all;
}

.diary-form-modal {
  background: #fff;
  border-radius: 16px;
  width: 100%;
  max-width: 860px;
  margin: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,.22);
  overflow: hidden;
  transform: translateY(-20px);
  transition: transform .3s;
}
.diary-form-overlay.active .diary-form-modal { transform: translateY(0); }

.diary-form-header {
  background: var(--diary-royal);
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.diary-form-header-title {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
}
.diary-form-close {
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}
.diary-form-close:hover { background: rgba(255,255,255,.25); }

.diary-form-body {
  padding: 24px;
  overflow-y: auto;
  max-height: calc(100vh - 180px);
}

/* Form sections */
.diary-form-section {
  margin-bottom: 28px;
}
.diary-form-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--diary-royal);
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--diary-royal-xl);
  display: flex;
  align-items: center;
  gap: 8px;
}

.diary-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}
.diary-form-grid.grid-2 { grid-template-columns: 1fr 1fr; }
.diary-form-grid.grid-3 { grid-template-columns: 1fr 1fr 1fr; }
.diary-form-grid.grid-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.diary-form-full { grid-column: 1 / -1; }

.diary-form-group { display: flex; flex-direction: column; gap: 6px; }
.diary-form-label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--diary-slate700);
  display: flex;
  align-items: center;
  gap: 5px;
}
.diary-form-label .required { color: var(--diary-red); }

.diary-form-input,
.diary-form-select,
.diary-form-textarea {
  background: #fff;
  border: 1.5px solid var(--diary-slate200);
  border-radius: var(--diary-radius-sm);
  padding: 9px 12px;
  font-size: 13.5px;
  color: var(--diary-slate900);
  transition: border-color .2s, box-shadow .2s;
  width: 100%;
  font-family: inherit;
}
.diary-form-input:focus,
.diary-form-select:focus,
.diary-form-textarea:focus {
  outline: none;
  border-color: var(--diary-royal);
  box-shadow: 0 0 0 3px rgba(29,78,216,.12);
}
.diary-form-textarea { resize: vertical; min-height: 80px; line-height: 1.5; }
.diary-form-select { appearance: none; cursor: pointer; }

/* Status / Weather Radio Cards */
.status-radio-group,
.weather-radio-group {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.status-radio-item,
.weather-radio-item {
  position: relative;
}
.status-radio-item input,
.weather-radio-item input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.status-radio-label,
.weather-radio-label {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: var(--diary-radius-sm);
  border: 1.5px solid var(--diary-slate200);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  color: var(--diary-slate600);
  background: #fff;
  transition: all .2s;
  user-select: none;
  white-space: nowrap;
}
.status-radio-item input:checked + .status-radio-label.status-normal    { border-color: var(--diary-green); background: var(--diary-green-lt); color: var(--diary-green); }
.status-radio-item input:checked + .status-radio-label.status-atencao   { border-color: var(--diary-amber); background: var(--diary-amber-lt); color: var(--diary-amber); }
.status-radio-item input:checked + .status-radio-label.status-critico   { border-color: var(--diary-red);   background: var(--diary-red-lt);   color: var(--diary-red); }
.status-radio-item input:checked + .status-radio-label.status-paralisado { border-color: var(--diary-slate500); background: var(--diary-slate100); color: var(--diary-slate700); }
.weather-radio-item input:checked + .weather-radio-label { border-color: var(--diary-royal); background: var(--diary-royal-xl); color: var(--diary-royal); }

/* ── Atividades dinâmicas ── */
.diary-activities-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.diary-activity-row {
  background: var(--diary-slate50);
  border: 1px solid var(--diary-slate200);
  border-radius: var(--diary-radius-sm);
  padding: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr 2fr 80px 80px 100px auto;
  gap: 10px;
  align-items: end;
  transition: border-color .2s;
}
.diary-activity-row:hover { border-color: var(--diary-royal-lt); }

.diary-activity-row .diary-form-label { font-size: 11.5px; }
.diary-activity-row .diary-form-input { font-size: 13px; padding: 8px 10px; }

/* ── Equipe ── */
.diary-team-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.diary-team-row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr auto;
  gap: 10px;
  align-items: end;
  background: var(--diary-slate50);
  border: 1px solid var(--diary-slate200);
  border-radius: var(--diary-radius-sm);
  padding: 10px 12px;
}

/* ── Materiais ── */
.diary-materials-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.diary-material-row {
  display: grid;
  grid-template-columns: 2fr 80px 1fr 1fr auto;
  gap: 10px;
  align-items: end;
  background: var(--diary-slate50);
  border: 1px solid var(--diary-slate200);
  border-radius: var(--diary-radius-sm);
  padding: 10px 12px;
}

/* ── Fotos ── */
.diary-photos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin-top: 8px;
}
.diary-photo-card {
  border-radius: var(--diary-radius-sm);
  overflow: hidden;
  border: 1px solid var(--diary-slate200);
  background: var(--diary-slate50);
  position: relative;
  aspect-ratio: 4/3;
}
.diary-photo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.diary-photo-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(0,0,0,.7));
  color: #fff;
  font-size: 11px;
  padding: 6px 8px;
}
.diary-photo-remove {
  position: absolute;
  top: 5px; right: 5px;
  background: rgba(0,0,0,.5);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: 11px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.diary-photo-upload-btn {
  border: 2px dashed var(--diary-slate300);
  border-radius: var(--diary-radius-sm);
  background: var(--diary-slate50);
  color: var(--diary-slate500);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  aspect-ratio: 4/3;
  cursor: pointer;
  transition: all .2s;
  font-size: 12.5px;
  font-weight: 500;
}
.diary-photo-upload-btn:hover { border-color: var(--diary-royal); color: var(--diary-royal); background: var(--diary-royal-xl); }
.diary-photo-upload-btn i { font-size: 24px; }

.diary-form-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid var(--diary-slate100);
  background: var(--diary-slate50);
}

/* ── Add Row Button ── */
.btn-add-row {
  background: none;
  border: 1.5px dashed var(--diary-slate300);
  color: var(--diary-slate500);
  padding: 8px 16px;
  border-radius: var(--diary-radius-sm);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  justify-content: center;
  margin-top: 6px;
  transition: all .2s;
}
.btn-add-row:hover { border-color: var(--diary-royal); color: var(--diary-royal); background: var(--diary-royal-xl); }

/* ── Progress ring ── */
.pct-input-wrap {
  position: relative;
}
.pct-input-wrap input {
  padding-right: 28px !important;
}
.pct-input-wrap::after {
  content: '%';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  color: var(--diary-slate500);
  pointer-events: none;
}

/* ════════════════════════════════════════════════════════════
   DETALHE DO DIÁRIO (Modal de Visualização)
   ════════════════════════════════════════════════════════════ */

.diary-view-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.6);
  backdrop-filter: blur(4px);
  z-index: 1100;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s;
}
.diary-view-overlay.active { opacity: 1; pointer-events: all; }
.diary-view-modal {
  background: #fff;
  border-radius: 16px;
  width: 100%;
  max-width: 860px;
  margin: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,.22);
  overflow: hidden;
  transform: translateY(-20px);
  transition: transform .3s;
}
.diary-view-overlay.active .diary-view-modal { transform: translateY(0); }

.diary-view-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--diary-slate100);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.diary-view-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--diary-slate900);
}
.diary-view-body { padding: 24px; overflow-y: auto; max-height: calc(100vh - 160px); }

.diary-view-section {
  margin-bottom: 24px;
}
.diary-view-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--diary-royal);
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 12px;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--diary-royal-xl);
  display: flex;
  align-items: center;
  gap: 7px;
}

.diary-view-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.diary-view-field {}
.diary-view-field-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--diary-slate500);
  text-transform: uppercase;
  margin-bottom: 3px;
}
.diary-view-field-value {
  font-size: 14px;
  color: var(--diary-slate900);
  font-weight: 500;
}

/* Activities table in view */
.diary-view-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}
.diary-view-table th {
  background: var(--diary-royal);
  color: #fff;
  padding: 9px 12px;
  font-weight: 600;
  text-align: left;
  font-size: 12px;
}
.diary-view-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--diary-slate100);
  color: var(--diary-slate700);
  vertical-align: top;
}
.diary-view-table tr:last-child td { border-bottom: none; }
.diary-view-table tr:nth-child(even) td { background: var(--diary-slate50); }

.pct-bar {
  height: 6px;
  background: var(--diary-slate200);
  border-radius: 3px;
  overflow: hidden;
  margin-top: 4px;
}
.pct-bar-fill {
  height: 100%;
  background: var(--diary-royal);
  border-radius: 3px;
  transition: width .4s;
}

/* ════════════════════════════════════════════════════════════
   CRONOGRAMA — TABELA
   ════════════════════════════════════════════════════════════ */

.schedule-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.schedule-filter-select {
  background: #fff;
  border: 1.5px solid var(--diary-slate200);
  border-radius: var(--diary-radius-sm);
  padding: 8px 12px;
  font-size: 13px;
  color: var(--diary-slate700);
  cursor: pointer;
  min-width: 140px;
  font-family: inherit;
}
.schedule-filter-select:focus { outline: none; border-color: var(--diary-royal); }

.schedule-table-wrap {
  background: #fff;
  border-radius: var(--diary-radius);
  border: 1px solid var(--diary-slate200);
  box-shadow: var(--diary-shadow);
  overflow: hidden;
}

.schedule-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.schedule-table th {
  background: var(--diary-royal);
  color: #fff;
  padding: 11px 14px;
  font-weight: 600;
  text-align: left;
  font-size: 12px;
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 2;
}
.schedule-table th:first-child { border-radius: 0; }
.schedule-table td {
  padding: 11px 14px;
  border-bottom: 1px solid var(--diary-slate100);
  color: var(--diary-slate700);
  vertical-align: middle;
}
.schedule-table tr:last-child td { border-bottom: none; }
.schedule-table tr:hover td { background: var(--diary-royal-xl); }
.schedule-table tr.sch-atrasado td { background: #fff5f5; }
.schedule-table tr.sch-atrasado:hover td { background: var(--diary-red-lt); }
.schedule-table tr.sch-concluido td { background: #f0fdf4; }

.sch-stage-row td {
  background: var(--diary-slate900) !important;
  color: #fff !important;
  font-weight: 700;
  font-size: 12.5px;
  padding: 8px 14px;
}
.sch-stage-row:hover td { background: var(--diary-royal-dk) !important; }

.sch-service-row td:first-child { padding-left: 28px; }

/* Status badge inline */
.sch-status-badge {
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.sch-status-badge.nao_iniciado  { background: var(--diary-slate100); color: var(--diary-slate500); }
.sch-status-badge.em_andamento  { background: var(--diary-royal-xl); color: var(--diary-royal); }
.sch-status-badge.concluido     { background: var(--diary-green-lt); color: var(--diary-green); }
.sch-status-badge.atrasado      { background: var(--diary-red-lt);   color: var(--diary-red); }
.sch-status-badge.paralisado    { background: var(--diary-amber-lt); color: var(--diary-amber); }

/* Progress bars in table */
.sch-pct-cell {
  min-width: 100px;
}
.sch-pct-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sch-pct-bar {
  flex: 1;
  height: 6px;
  background: var(--diary-slate200);
  border-radius: 3px;
  overflow: hidden;
}
.sch-pct-bar-fill {
  height: 100%;
  border-radius: 3px;
  transition: width .4s;
}
.sch-pct-planned  .sch-pct-bar-fill { background: var(--diary-slate400); }
.sch-pct-realized .sch-pct-bar-fill { background: var(--diary-royal); }
.sch-pct-realized.over .sch-pct-bar-fill { background: var(--diary-green); }
.sch-pct-label { font-size: 11.5px; font-weight: 700; white-space: nowrap; }

.sch-date-late { color: var(--diary-red); font-weight: 600; }
.sch-date-ok   { color: var(--diary-slate700); }

/* ════════════════════════════════════════════════════════════
   GRÁFICO GANTT
   ════════════════════════════════════════════════════════════ */

.gantt-container {
  background: #fff;
  border-radius: var(--diary-radius);
  border: 1px solid var(--diary-slate200);
  box-shadow: var(--diary-shadow);
  overflow: hidden;
}

.gantt-header-bar {
  background: var(--diary-royal);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.gantt-header-title {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 9px;
}

.gantt-legend {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 12px;
  color: rgba(255,255,255,.8);
}
.gantt-legend-item { display: flex; align-items: center; gap: 6px; }
.gantt-legend-dot {
  width: 10px; height: 10px;
  border-radius: 2px;
}

.gantt-scroll-wrap {
  overflow-x: auto;
}

.gantt-grid {
  display: grid;
  min-width: 900px;
}

.gantt-row {
  display: grid;
  grid-template-columns: 280px 1fr;
  border-bottom: 1px solid var(--diary-slate100);
}
.gantt-row:last-child { border-bottom: none; }
.gantt-row:hover .gantt-label-cell { background: var(--diary-royal-xl); }
.gantt-row:hover .gantt-chart-cell { background: #fafcff; }

.gantt-row.gantt-stage-row .gantt-label-cell,
.gantt-row.gantt-stage-row .gantt-chart-cell {
  background: var(--diary-slate100);
}
.gantt-row.gantt-header-row .gantt-label-cell,
.gantt-row.gantt-header-row .gantt-chart-cell {
  background: var(--diary-slate900);
}

.gantt-label-cell {
  padding: 10px 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-right: 1px solid var(--diary-slate200);
  transition: background .15s;
}
.gantt-label-cell.stage-label {
  background: var(--diary-slate100);
  font-weight: 700;
  color: var(--diary-slate900);
  font-size: 12.5px;
}
.gantt-label-cell.service-label {
  padding-left: 28px;
}
.gantt-task-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--diary-slate900);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gantt-task-sub {
  font-size: 11px;
  color: var(--diary-slate500);
}

.gantt-chart-cell {
  position: relative;
  padding: 8px 0;
  transition: background .15s;
}

.gantt-time-header {
  display: flex;
  border-bottom: 1px solid var(--diary-slate200);
  background: var(--diary-slate900);
}
.gantt-time-header-label {
  padding: 10px 16px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  width: 280px;
  border-right: 1px solid rgba(255,255,255,.1);
  flex-shrink: 0;
}
.gantt-months {
  display: flex;
  flex: 1;
}
.gantt-month {
  flex: 1;
  padding: 10px 6px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,.75);
  text-align: center;
  border-right: 1px solid rgba(255,255,255,.1);
  min-width: 60px;
}

.gantt-bars-area {
  position: absolute;
  inset: 6px 4px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.gantt-bar-planned {
  height: 10px;
  border-radius: 4px;
  background: rgba(100,116,139,.25);
  border: 1px solid var(--diary-slate300);
  position: absolute;
  top: 6px;
}

.gantt-bar-realized {
  height: 10px;
  border-radius: 4px;
  background: var(--diary-royal);
  position: absolute;
  top: 20px;
}
.gantt-bar-realized.bar-late { background: var(--diary-red); }
.gantt-bar-realized.bar-done { background: var(--diary-green); }

/* ════════════════════════════════════════════════════════════
   FORMULÁRIO DO CRONOGRAMA
   ════════════════════════════════════════════════════════════ */

.schedule-form-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.6);
  backdrop-filter: blur(4px);
  z-index: 1100;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s;
}
.schedule-form-overlay.active { opacity: 1; pointer-events: all; }
.schedule-form-modal {
  background: #fff;
  border-radius: 16px;
  width: 100%;
  max-width: 720px;
  margin: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,.22);
  overflow: hidden;
  transform: translateY(-20px);
  transition: transform .3s;
}
.schedule-form-overlay.active .schedule-form-modal { transform: translateY(0); }

/* ════════════════════════════════════════════════════════════
   EMPTY STATE
   ════════════════════════════════════════════════════════════ */

.diary-empty {
  text-align: center;
  padding: 64px 24px;
  color: var(--diary-slate500);
}
.diary-empty-icon {
  font-size: 52px;
  margin-bottom: 16px;
  opacity: .4;
  color: var(--diary-royal);
}
.diary-empty-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--diary-slate700);
  margin-bottom: 8px;
}
.diary-empty-sub {
  font-size: 14px;
  margin-bottom: 24px;
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVO
   ════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  .diary-header { padding: 14px 16px 12px; }
  .diary-header-title { font-size: 18px; }
  .diary-tabs { padding: 0 16px; overflow-x: auto; }
  .diary-tab { padding: 10px 14px; font-size: 12.5px; }
  .diary-body { padding: 16px; }

  .diary-kpi-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .diary-kpi-value { font-size: 22px; }

  .diary-form-grid.grid-2,
  .diary-form-grid.grid-3,
  .diary-form-grid.grid-4 { grid-template-columns: 1fr; }

  .diary-activity-row {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto auto;
  }

  .diary-team-row,
  .diary-material-row {
    grid-template-columns: 1fr 1fr;
  }

  .schedule-toolbar { gap: 8px; }
  .schedule-filter-select { min-width: 120px; font-size: 12px; }

  .diary-entry-card-header { padding: 12px 14px; }
  .diary-entry-card-body { padding: 10px 14px; }

  .gantt-grid { min-width: 700px; }
  .gantt-row { grid-template-columns: 200px 1fr; }
  .gantt-time-header-label { width: 200px; }

  .diary-view-grid { grid-template-columns: 1fr 1fr; }
  .diary-form-modal { margin: 10px; }
  .diary-view-modal { margin: 10px; }
  .schedule-form-modal { margin: 10px; }
}

/* ════════════════════════════════════════════════════════════
   COMPLEMENTOS — Schedule + Gantt v2 (renderSchedule*)
   ════════════════════════════════════════════════════════════ */

/* Mini KPI bar */
.sch-mini-kpi-bar {
  display: flex;
  gap: 0;
  background: #fff;
  border-bottom: 1px solid var(--diary-slate200);
  overflow-x: auto;
}
.sch-mini-kpi {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 24px;
  border-right: 1px solid var(--diary-slate100);
  min-width: 100px;
  flex: 1;
}
.sch-mini-kpi-val {
  font-size: 22px;
  font-weight: 800;
  color: var(--diary-slate900);
  line-height: 1;
  margin-bottom: 4px;
}
.sch-mini-kpi-val.kpi-blue  { color: var(--diary-royal); }
.sch-mini-kpi-val.kpi-green { color: var(--diary-green); }
.sch-mini-kpi-val.kpi-red   { color: var(--diary-red); }
.sch-mini-kpi-lbl {
  font-size: 11px;
  font-weight: 500;
  color: var(--diary-slate500);
  text-align: center;
}

/* View switcher */
.sch-view-switcher {
  display: flex;
  gap: 4px;
  background: var(--diary-slate100);
  border-radius: 8px;
  padding: 3px;
  margin-left: auto;
}
.sch-view-btn {
  padding: 6px 14px;
  border: none;
  background: transparent;
  border-radius: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--diary-slate500);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all .2s;
}
.sch-view-btn:hover { background: #fff; color: var(--diary-slate900); }
.sch-view-btn.active { background: #fff; color: var(--diary-royal); box-shadow: 0 1px 4px rgba(0,0,0,.1); }

/* Table enhancements */
.sch-table-wrap {
  overflow-x: auto;
  padding: 20px 24px;
}
.schedule-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.schedule-table th {
  background: var(--diary-royal);
  color: #fff;
  padding: 10px 12px;
  text-align: left;
  font-weight: 600;
  font-size: 12px;
  white-space: nowrap;
}
.schedule-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--diary-slate100);
  color: var(--diary-slate700);
  vertical-align: middle;
}
.sch-stage-row td {
  background: var(--diary-royal-lt);
  padding: 8px 12px;
}
.sch-stage-label {
  font-weight: 700;
  color: var(--diary-royal-dk);
  font-size: 12.5px;
}
.sch-service-row:hover td { background: #f8faff; }
.sch-service-row.sch-late td { background: #fff5f5; }
.sch-td-service { font-weight: 600; color: var(--diary-slate900); }
.sch-td-center { text-align: center; }
.sch-td-actions { white-space: nowrap; text-align: center; }
.sch-empty-row { text-align: center; color: var(--diary-slate500); padding: 40px !important; font-style: italic; }

/* Progress bars in table */
.sch-pct-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
}
.sch-pct-bar-bg {
  width: 48px;
  height: 6px;
  background: var(--diary-slate200);
  border-radius: 3px;
  overflow: hidden;
}
.sch-pct-bar-planned {
  height: 100%;
  background: var(--diary-slate400);
  border-radius: 3px;
}
.sch-pct-bar-realized {
  height: 100%;
  background: var(--diary-royal);
  border-radius: 3px;
  transition: width .3s;
}
.sch-pct-bar-realized.bar-late { background: var(--diary-red); }

/* Status badges */
.sch-status-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.sch-status-nao      { background: var(--diary-slate100); color: var(--diary-slate500); }
.sch-status-andamento{ background: #dbeafe; color: var(--diary-royal-dk); }
.sch-status-concluido{ background: #dcfce7; color: #166534; }
.sch-status-atrasado { background: var(--diary-red-lt); color: #991b1b; }
.sch-status-paralisado{ background: var(--diary-amber-lt); color: #92400e; }

/* Gantt v2 — pure CSS */
.gantt-wrapper {
  padding: 20px 24px;
  overflow-x: auto;
}
.gantt-header {
  display: flex;
  background: var(--diary-royal-dk);
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}
.gantt-label-col-header {
  width: 280px;
  min-width: 280px;
  padding: 10px 16px;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255,255,255,.7);
  border-right: 1px solid rgba(255,255,255,.1);
  text-transform: uppercase;
  letter-spacing: .5px;
}
.gantt-chart-col-header {
  flex: 1;
  position: relative;
  min-width: 400px;
}
.gantt-months {
  position: relative;
  height: 38px;
}
.gantt-month-label {
  position: absolute;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10.5px;
  font-weight: 600;
  color: rgba(255,255,255,.75);
  border-right: 1px solid rgba(255,255,255,.08);
  white-space: nowrap;
  overflow: hidden;
  padding: 0 4px;
}
.gantt-body { border: 1px solid var(--diary-slate200); border-top: none; border-radius: 0 0 8px 8px; overflow: hidden; }
.gantt-stage-header {
  display: flex;
  background: var(--diary-royal-lt);
  padding: 7px 16px;
  font-size: 12px;
  font-weight: 700;
  color: var(--diary-royal-dk);
  border-bottom: 1px solid var(--diary-slate200);
}
.gantt-row {
  display: flex;
  border-bottom: 1px solid var(--diary-slate100);
  min-height: 52px;
}
.gantt-row:hover { background: #f8faff; }
.gantt-row.gantt-row-late { background: #fff8f8; }
.gantt-row:last-child { border-bottom: none; }
.gantt-label-col {
  width: 280px;
  min-width: 280px;
  padding: 8px 16px;
  border-right: 1px solid var(--diary-slate200);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.gantt-service-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--diary-slate900);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gantt-badge { font-size: 10px; padding: 1px 6px; }
.gantt-chart-col {
  flex: 1;
  position: relative;
  min-width: 400px;
  padding: 6px 0;
}
.gantt-bar-planned {
  position: absolute;
  top: 8px;
  height: 14px;
  border-radius: 4px;
  background: rgba(148,163,184,.35);
  border: 1px solid var(--diary-slate300);
  overflow: hidden;
}
.gantt-bar-planned .gantt-bar-label {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 9px;
  font-weight: 700;
  color: var(--diary-slate600, #475569);
}
.gantt-bar-realized {
  position: absolute;
  top: 26px;
  height: 14px;
  border-radius: 4px;
  background: var(--diary-royal);
  overflow: hidden;
}
.gantt-bar-realized.gantt-bar-late { background: var(--diary-red); }
.gantt-bar-realized .gantt-bar-label {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 9px;
  font-weight: 700;
  color: rgba(255,255,255,.9);
}
.gantt-today-line {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--diary-red);
  opacity: .6;
  z-index: 10;
}
.gantt-legend {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 12px 16px;
  font-size: 12px;
  color: var(--diary-slate500);
  border-top: 1px solid var(--diary-slate100);
  margin-top: 4px;
}
.gantt-legend-box {
  display: inline-block;
  width: 28px;
  height: 10px;
  border-radius: 3px;
  margin-right: 4px;
  vertical-align: middle;
}
.gantt-legend-box.planned  { background: rgba(148,163,184,.4); border: 1px solid #cbd5e1; }
.gantt-legend-box.realized { background: var(--diary-royal); }
.gantt-legend-today {
  display: inline-block;
  width: 3px;
  height: 16px;
  background: var(--diary-red);
  opacity: .6;
  border-radius: 1px;
  margin-right: 4px;
  vertical-align: middle;
}
.sch-empty-gantt, .sch-empty-kpi {
  text-align: center;
  padding: 64px 24px;
  color: var(--diary-slate500);
  font-size: 14px;
}

/* KPI Dashboard */
.sch-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px;
  padding: 24px;
}
.kpi-section-card {
  background: #fff;
  border: 1px solid var(--diary-slate200);
  border-radius: 12px;
  padding: 20px 24px;
  margin: 0 24px 20px;
}
.kpi-section-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--diary-slate900);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--diary-royal-lt);
}
.kpi-timeline-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}
.kpi-timeline-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.kpi-tl-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--diary-slate500);
  text-transform: uppercase;
  letter-spacing: .4px;
}
.kpi-tl-val {
  font-size: 15px;
  font-weight: 700;
  color: var(--diary-slate900);
}
.kpi-tl-val.kpi-red { color: var(--diary-red); }
.kpi-progress-label {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 600;
  color: var(--diary-slate600, #475569);
  margin-bottom: 6px;
}
.kpi-progress-bar-bg {
  width: 100%;
  height: 10px;
  background: var(--diary-slate100);
  border-radius: 5px;
  overflow: hidden;
}
.kpi-progress-bar-fill {
  height: 100%;
  border-radius: 5px;
  transition: width .4s ease;
}
.kpi-bar-time     { background: var(--diary-slate400); }
.kpi-bar-physical { background: var(--diary-royal); }
.kpi-stages-list  { display: flex; flex-direction: column; gap: 12px; }
.kpi-stage-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.kpi-stage-name {
  width: 160px;
  min-width: 160px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--diary-slate700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kpi-stage-bar-wrap {
  flex: 1;
  height: 10px;
  background: var(--diary-slate100);
  border-radius: 5px;
  overflow: hidden;
}
.kpi-stage-bar {
  height: 100%;
  background: var(--diary-royal);
  border-radius: 5px;
  transition: width .4s;
}
.kpi-stage-pct {
  width: 40px;
  text-align: right;
  font-size: 12px;
  font-weight: 700;
  color: var(--diary-royal);
}

/* Diary filters bar */
.diary-filters-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 24px;
  background: #fff;
  border-bottom: 1px solid var(--diary-slate100);
  flex-wrap: wrap;
}
.diary-search-wrap {
  position: relative;
  flex: 1;
  min-width: 200px;
}
.diary-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--diary-slate400);
  font-size: 13px;
  pointer-events: none;
}
.diary-search-input {
  width: 100%;
  padding: 9px 14px 9px 36px;
  border: 1.5px solid var(--diary-slate200);
  border-radius: 8px;
  font-size: 13.5px;
  font-family: inherit;
  outline: none;
  background: #fff;
  color: var(--diary-slate900);
  box-sizing: border-box;
  transition: border-color .2s;
}
.diary-search-input:focus { border-color: var(--diary-royal); }
.diary-filter-select {
  padding: 9px 12px;
  border: 1.5px solid var(--diary-slate200);
  border-radius: 8px;
  font-size: 13px;
  font-family: inherit;
  background: #fff;
  color: var(--diary-slate700);
  outline: none;
  cursor: pointer;
  min-width: 160px;
  transition: border-color .2s;
}
.diary-filter-select:focus { border-color: var(--diary-royal); }

/* Spinner */
.diary-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid var(--diary-slate200);
  border-top-color: var(--diary-royal);
  border-radius: 50%;
  animation: diary-spin .8s linear infinite;
}
@keyframes diary-spin { to { transform: rotate(360deg); } }

/* req star */
.req { color: var(--diary-red); }

/* Radio button groups (status + weather) */
.diary-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.diary-weather-group { flex-wrap: wrap; }
.diary-radio-option {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border: 1.5px solid var(--diary-slate200);
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  color: var(--diary-slate700);
  background: #fff;
  transition: all .15s;
  user-select: none;
}
.diary-radio-option:hover { border-color: var(--diary-royal); background: var(--diary-royal-xl); }
.diary-radio-option input[type="radio"] { display: none; }
.diary-radio-option:has(input:checked) {
  border-color: var(--diary-royal);
  background: var(--diary-royal-lt);
  color: var(--diary-royal-dk);
  font-weight: 700;
}
.diary-form-field-group { width: 100%; }
@supports not selector(:has(input)) {
  /* fallback: show radio natively */
  .diary-radio-option input[type="radio"] { display: inline-block; width: 14px; height: 14px; }
}

/* diary-form-grid variants */
.diary-form-grid { display: grid; gap: 14px; }
.diary-form-grid-2 { grid-template-columns: 1fr 1fr; }
.diary-form-grid-3 { grid-template-columns: 1fr 1fr 1fr; }
.diary-form-grid-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }

/* diary form textarea */
.diary-form-textarea {
  resize: vertical;
  min-height: 80px;
  font-family: inherit;
}

/* diary-add-row-btn */
.diary-add-row-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  background: var(--diary-royal-lt);
  color: var(--diary-royal);
  border: 1px solid var(--diary-royal);
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  margin-left: auto;
  transition: all .2s;
}
.diary-add-row-btn:hover { background: var(--diary-royal); color: #fff; }

/* dynamic row headers */
.diary-team-header,
.diary-activity-header,
.diary-material-header {
  display: grid;
  padding: 6px 8px;
  background: var(--diary-slate100);
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--diary-slate500);
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-bottom: 4px;
}
.diary-activity-header { grid-template-columns: 1fr 1fr 2fr 60px 60px 70px 32px; }
.diary-team-header     { grid-template-columns: 1fr 1fr 80px 80px 70px 32px; }
.diary-material-header { grid-template-columns: 2fr 70px 70px 1fr 90px 32px; }

/* diary-entry-list */
.diary-entry-list {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* diary-form-section-title */
.diary-form-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--diary-royal);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 768px) {
  .sch-mini-kpi-bar { flex-wrap: wrap; }
  .sch-mini-kpi { min-width: 80px; padding: 10px 12px; }
  .kpi-timeline-grid { grid-template-columns: 1fr 1fr; }
  .gantt-label-col, .gantt-label-col-header { width: 160px; min-width: 160px; }
  .gantt-chart-col, .gantt-chart-col-header { min-width: 300px; }
  .sch-table-wrap { padding: 10px 12px; }
  .diary-filters-bar { padding: 10px 14px; gap: 8px; }
  .diary-form-grid-2,
  .diary-form-grid-3,
  .diary-form-grid-4 { grid-template-columns: 1fr; }
  .diary-activity-header,
  .diary-team-header,
  .diary-material-header { display: none; }
}

@media (max-width: 480px) {
  .diary-kpi-grid { grid-template-columns: 1fr 1fr; }
  .status-radio-group { flex-direction: column; }
  .diary-header-actions { width: 100%; }
  .diary-header-actions .btn-diary-primary { width: 100%; justify-content: center; }
  .diary-photos-grid { grid-template-columns: 1fr 1fr; }
  .schedule-toolbar .btn-diary-primary { font-size: 12px; padding: 9px 12px; }
}

/* ── Pulsing dot para atividades em andamento ── */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: .3; }
}
.pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  animation: pulse-dot 1.5s ease-in-out infinite;
  flex-shrink: 0;
}

/* ── Skeleton loader ── */
.diary-skeleton {
  background: linear-gradient(90deg, var(--diary-slate100) 25%, var(--diary-slate50) 50%, var(--diary-slate100) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite;
  border-radius: 6px;
  height: 16px;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── Tooltip hint ── */
.diary-hint {
  font-size: 11.5px;
  color: var(--diary-slate500);
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 4px;
}
