:root{
  --bg:#E9EBE7;
  --surface:#FFFFFF;
  --surface-2:#F3F4F1;
  --border:#D7DAD3;
  --ink:#1C232C;
  --ink-soft:#4B5560;
  --muted:#6B7480;
  --accent:#B36423;
  --accent-strong:#8F4E19;
  --accent-soft-bg:#F5E6D6;
  --accent-contrast:#FCF9F4;
  --link:#2C5C78;

  --status-ok:#2E7D46;
  --status-warn:#B36423;
  --status-crit:#B4382E;
  --status-muted:#6B7480;

  --shadow:0 1px 2px rgba(28,35,44,0.07), 0 10px 28px -14px rgba(28,35,44,0.22);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#14181D; --surface:#1B2129; --surface-2:#1F262E; --border:#2E3944;
    --ink:#E7E9E6; --ink-soft:#B7BEC5; --muted:#8A939C;
    --accent:#E0954B; --accent-strong:#EFB27C; --accent-soft-bg:#33241A; --accent-contrast:#1B1410;
    --link:#8FCBE8;
    --status-ok:#5FBE7C; --status-warn:#E0954B; --status-crit:#E27267; --status-muted:#8A939C;
    --shadow:0 1px 2px rgba(0,0,0,0.35), 0 10px 28px -14px rgba(0,0,0,0.55);
  }
}
:root[data-theme="dark"]{
  --bg:#14181D; --surface:#1B2129; --surface-2:#1F262E; --border:#2E3944;
  --ink:#E7E9E6; --ink-soft:#B7BEC5; --muted:#8A939C;
  --accent:#E0954B; --accent-strong:#EFB27C; --accent-soft-bg:#33241A; --accent-contrast:#1B1410;
  --link:#8FCBE8;
  --status-ok:#5FBE7C; --status-warn:#E0954B; --status-crit:#E27267; --status-muted:#8A939C;
  --shadow:0 1px 2px rgba(0,0,0,0.35), 0 10px 28px -14px rgba(0,0,0,0.55);
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size:15px;
  line-height:1.55;
}
a{color:var(--link);}
h1,h2,h3{margin:0;color:var(--ink);}
button,input,select{font:inherit;}

.wrap{max-width:1080px;margin:0 auto;padding:36px 26px 100px;}

.top-eyebrow{
  font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);font-weight:700;
}
.top-head{padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:28px;}
.top-head h1{font-size:1.9rem;margin-top:6px;}
.top-head .sub{max-width:68ch;margin-top:10px;color:var(--ink-soft);font-size:.95rem;}

.obra-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
.obra-card{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;
  padding:18px 20px;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;gap:10px;transition:transform .15s,box-shadow .15s;
}
.obra-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(0,0,0,0.25);}
.obra-card h3{font-size:1.05rem;}
.obra-card .regiao{font-size:11.5px;color:var(--muted);}
.obra-card .modulos{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}
.tag{
  font-size:10.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;
  padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--border);
}
.tag.confianca-baixa{opacity:.6;font-style:italic;}

.btn-back{
  display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--link);
  cursor:pointer;padding:7px 13px;border-radius:8px;background:var(--surface-2);border:none;margin-bottom:18px;
  text-decoration:none;
}
.btn-back:hover{background:var(--accent-soft-bg);color:var(--accent-strong);}

.obra-head{
  display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;justify-content:space-between;
  padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:20px;
}
.obra-head h1{font-size:1.7rem;}
.obra-head .regiao{color:var(--muted);font-size:.9rem;}

.module-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:26px;}
.module-tab{
  padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);
  color:var(--ink-soft);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;
}
.module-tab.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);}
.module-tab.disabled{opacity:.45;cursor:not-allowed;}

.stub-note{
  padding:22px 24px;background:var(--surface);border:1.5px dashed var(--border);border-radius:12px;
  color:var(--ink-soft);font-size:13.5px;line-height:1.7;
}
.stub-note b{color:var(--ink);}

/* ---- retomada module (reaproveitado do Painel de Retomada de Obras) ---- */
.st-pendente{color:var(--status-muted);}
.st-andamento{color:var(--status-warn);}
.st-concluido{color:var(--status-ok);}
.st-bloqueado{color:var(--status-crit);}

.obra-progress{display:flex;align-items:center;gap:10px;margin-bottom:20px;}
.obra-progress .bar{position:relative;flex:1 1 auto;height:10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden;}
.obra-progress .bar span{position:absolute;inset:0;width:0;background:var(--accent);}
.obra-progress .pct{font-size:12.5px;color:var(--ink-soft);white-space:nowrap;font-weight:600;}

.etapa-card{
  background:var(--surface);border:1px solid var(--border);border-left-width:5px;
  border-radius:4px 10px 10px 4px;margin-bottom:12px;box-shadow:var(--shadow);
}
.etapa-card summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;
}
.etapa-card summary::-webkit-details-marker{display:none;}
.etapa-num{font-weight:800;font-size:1.15rem;}
.etapa-title{font-weight:700;font-size:.98rem;flex:1 1 160px;}
.ws-chip{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:999px;white-space:nowrap;}
.etapa-momento{font-size:.78rem;color:var(--muted);}
.badge{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 9px;border-radius:999px;white-space:nowrap;}
.badge.st-pendente{background:color-mix(in srgb,var(--status-muted) 15%,transparent);}
.badge.st-andamento{background:color-mix(in srgb,var(--status-warn) 16%,transparent);}
.badge.st-concluido{background:color-mix(in srgb,var(--status-ok) 16%,transparent);}
.badge.st-bloqueado{background:color-mix(in srgb,var(--status-crit) 18%,transparent);}
.etapa-count{font-size:12px;color:var(--ink-soft);margin-left:auto;}

.itens-table{padding:4px 18px 18px;overflow-x:auto;}
.itens-head,.item-row{display:grid;grid-template-columns:138px 1.6fr 140px 130px 1fr;gap:10px;min-width:640px;}
.itens-head{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--border);}
.item-row{align-items:center;padding:8px 4px;border-bottom:1px solid var(--border);}
.item-row:last-child{border-bottom:none;}
.f-input,.st-select{width:100%;font-size:.85rem;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--ink);}
.st-select{font-weight:600;}

.toolbar-save{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);
  border-radius:10px;padding:12px 16px;margin-bottom:18px;font-size:12.5px;color:var(--ink-soft);
}
.btn-primary{
  background:var(--accent);color:var(--accent-contrast);border:none;padding:8px 15px;border-radius:8px;
  font-size:12.5px;font-weight:700;cursor:pointer;
}
.btn-primary:hover{background:var(--accent-strong);}

footer.app-footer{margin-top:60px;padding-top:18px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}

@media(max-width:640px){
  .itens-table{overflow-x:visible;}
  .itens-head{display:none;}
  .item-row{grid-template-columns:1fr;min-width:0;gap:6px;padding:12px 4px;}
  .item-row>span{display:flex;flex-direction:column;gap:3px;}
  .item-row>span::before{content:attr(data-label);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
}
