:root {
    --iris-bg: #f4f7f5;
    --iris-card: #ffffff;
    --iris-text: #18221c;
    --iris-muted: #68756d;
    --iris-border: #e3e9e5;
    --iris-accent: #2f7d4a;
    --iris-accent-soft: #e6f3ea;
    --iris-shadow: 0 12px 32px rgba(24, 34, 28, .08);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--iris-bg);
    color: var(--iris-text);
}

.iris-shell { min-height: 100vh; }

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px clamp(18px, 4vw, 48px);
    background: var(--iris-card);
    border-bottom: 1px solid var(--iris-border);
}

.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
    width: 44px; height: 44px; display: grid; place-items: center;
    border-radius: 14px; background: var(--iris-accent-soft); font-size: 24px;
}
.brand h1 { margin: 0; font-size: 1.25rem; }
.brand small { color: var(--iris-muted); }

.user-chip {
    text-align: right; padding: 8px 12px; border-radius: 12px;
    background: var(--iris-bg);
}
.user-chip strong, .user-chip span { display: block; }
.user-chip span { color: var(--iris-muted); font-size: .82rem; }

main { width: min(1180px, calc(100% - 32px)); margin: 28px auto 60px; }

.hero {
    display: flex; justify-content: space-between; align-items: end;
    gap: 18px; margin-bottom: 22px;
}
.hero h2 { margin: 0 0 6px; font-size: clamp(1.5rem, 4vw, 2.25rem); }
.hero p { margin: 0; color: var(--iris-muted); }

.badge {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 11px; border-radius: 999px;
    background: var(--iris-accent-soft); color: var(--iris-accent);
    font-weight: 700; font-size: .82rem;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.card {
    background: var(--iris-card);
    border: 1px solid var(--iris-border);
    border-radius: 20px;
    padding: 20px;
    box-shadow: var(--iris-shadow);
}

.metric-card { display: flex; align-items: center; gap: 18px; min-height: 150px; }

.progress-ring {
    --progress: 0;
    --size: 92px;
    width: var(--size); height: var(--size);
    flex: 0 0 var(--size);
    border-radius: 50%;
    display: grid; place-items: center;
    background: conic-gradient(
        var(--iris-accent) calc(var(--progress) * 1%),
        #e7ece9 0
    );
    position: relative;
}

.progress-ring::before {
    content: "";
    position: absolute; inset: 9px;
    border-radius: 50%; background: var(--iris-card);
}

.progress-ring strong { position: relative; z-index: 1; font-size: 1.05rem; }

.metric-copy small { color: var(--iris-muted); }
.metric-copy h3 { margin: 5px 0; font-size: 1.35rem; }
.metric-copy p { margin: 0; color: var(--iris-muted); font-size: .88rem; }

.modules { margin-top: 18px; }
.modules h3 { margin-top: 0; }
.module-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.module {
    padding: 16px; border: 1px solid var(--iris-border);
    border-radius: 15px; background: #fafcfb;
}
.module strong { display: block; margin-bottom: 5px; }
.module span { color: var(--iris-muted); font-size: .88rem; }

.notice {
    width: min(650px, calc(100% - 32px)); margin: 70px auto;
    text-align: center;
}

@media (max-width: 900px) {
    .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .topbar, .hero { align-items: flex-start; }
    .topbar { flex-direction: column; }
    .user-chip { text-align: left; }
    .hero { flex-direction: column; }
    .dashboard-grid, .module-grid { grid-template-columns: 1fr; }
    .metric-card { min-height: 130px; }
}


/* Status da Frente */
.back-link {
    color: var(--iris-accent); text-decoration: none; font-weight: 700;
}
.flash {
    margin-bottom: 16px; padding: 13px 16px; border-radius: 14px; font-weight: 650;
}
.flash.success { background: #e6f3ea; color: #22623a; }
.flash.error { background: #fdeaea; color: #9b2c2c; }
.status-section { margin-bottom: 18px; }
.status-section h3 { margin: 0 0 14px; }
.equipment-list { display: grid; gap: 12px; }
.equipment-row {
    border: 1px solid var(--iris-border); border-radius: 16px;
    padding: 16px; background: #fafcfb;
}
.equipment-head { display: flex; justify-content: space-between; gap: 14px; align-items: center; }
.equipment-head > div { display: flex; align-items: center; gap: 10px; }
.equipment-head strong { font-size: 1.08rem; }
.equipment-head p { margin: 0; color: var(--iris-muted); font-size: .88rem; }
.status-pill {
    display: inline-flex; padding: 5px 9px; border-radius: 999px;
    font-size: .78rem; font-weight: 750; background: #edf1ee;
}
.status-operando { background: #e6f3ea; color: #22623a; }
.status-alerta { background: #fff4d6; color: #7a5700; }
.status-parado, .status-indisponivel { background: #fdeaea; color: #9b2c2c; }
.status-oficina { background: #eeeaf7; color: #57427a; }
.status-actions {
    display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0;
}
.status-option input { position: absolute; opacity: 0; pointer-events: none; }
.status-option span {
    display: inline-flex; padding: 8px 11px; border: 1px solid var(--iris-border);
    border-radius: 10px; background: white; cursor: pointer; font-size: .86rem;
}
.status-option input:checked + span {
    border-color: var(--iris-accent); background: var(--iris-accent-soft);
    color: var(--iris-accent); font-weight: 750;
}
.status-note { display: flex; gap: 8px; }
.status-note input {
    flex: 1; min-width: 0; padding: 11px 12px; border: 1px solid var(--iris-border);
    border-radius: 11px; font: inherit;
}
.status-note button {
    border: 0; border-radius: 11px; padding: 0 18px;
    background: var(--iris-accent); color: white; font-weight: 750; cursor: pointer;
}
.module-link { color: inherit; text-decoration: none; display: block; }

@media (max-width: 600px) {
    .equipment-head { align-items: flex-start; flex-direction: column; }
    .status-note { flex-direction: column; }
    .status-note button { padding: 12px 18px; }
}


/* Operação atual da frente */
.operation-card { margin-bottom: 18px; }
.operation-title {
    display: flex; justify-content: space-between; gap: 14px; align-items: flex-start;
}
.operation-title h3 { margin: 0 0 5px; }
.operation-title p, .empty-operation { margin: 0; color: var(--iris-muted); }
.operation-summary {
    display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px; margin: 18px 0;
}
.operation-summary div {
    padding: 12px; border: 1px solid var(--iris-border);
    border-radius: 13px; background: #fafcfb;
}
.operation-summary small, .operation-summary strong { display: block; }
.operation-summary small { color: var(--iris-muted); margin-bottom: 4px; font-size: .76rem; }
.operation-form {
    display: grid; grid-template-columns: minmax(220px, 2fr) minmax(120px, 1fr) auto;
    gap: 10px; align-items: end; margin-top: 18px;
}
.operation-form label span { display: block; margin-bottom: 6px; font-size: .82rem; color: var(--iris-muted); font-weight: 650; }
.operation-form select, .operation-form input {
    width: 100%; padding: 11px 12px; border: 1px solid var(--iris-border);
    border-radius: 11px; background: white; font: inherit;
}
.operation-form button {
    min-height: 44px; border: 0; border-radius: 11px; padding: 0 18px;
    background: var(--iris-accent); color: white; font-weight: 750; cursor: pointer;
}
@media (max-width: 900px) {
    .operation-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .operation-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .operation-form { grid-template-columns: 1fr; }
}


/* Relatório e exportação do Status da Frente */
.report-summary {
    display: flex; align-items: center; gap: 20px; margin-bottom: 18px;
}
.report-summary h3 { margin: 0 0 6px; }
.report-summary p { margin: 0; color: var(--iris-muted); }
.export-card {
    display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-top: 18px;
}
.export-card h3 { margin: 0 0 5px; }
.export-card p { margin: 0; color: var(--iris-muted); }
.export-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.export-btn {
    border: 0; border-radius: 12px; padding: 12px 15px; color: white;
    font: inherit; font-weight: 750; cursor: pointer;
}
.export-btn.whatsapp { background: #238b57; }
.export-btn.image { background: #3e64c7; }
.export-btn.pdf { background: #b83242; }

@media (max-width: 700px) {
    .export-card { align-items: stretch; flex-direction: column; }
    .export-actions { display: grid; grid-template-columns: 1fr; }
}

@media print {
    body { background: white; }
    .topbar, .export-card, .operation-form, .status-actions, .status-note, .flash { display: none !important; }
    main { width: 100%; margin: 0; }
    .card { box-shadow: none; break-inside: avoid; }
    #status-report { padding: 8mm; }
}


/* Relatório compartilhável: mesma composição para PNG e PDF */
.export-report {
    margin-top: 18px; padding: 24px; border-radius: 20px;
    background: linear-gradient(145deg, #0b3527, #0e4b35);
    color: #fff;
}
.export-report-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.export-brand { font-weight:900; letter-spacing:.08em; color:#b9efc9; }
.export-report-head h2 { margin:5px 0 2px; }
.export-report-head p, .export-date { margin:0; color:#c8ddd2; }
.export-meta {
    display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; margin:16px 0;
}
.export-meta div, .export-overview, .export-group {
    background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.12);
    border-radius:13px;
}
.export-meta div { padding:9px; }
.export-meta small,.export-meta strong { display:block; }
.export-meta small { color:#bcd2c7; font-size:.68rem; margin-bottom:3px; }
.export-overview { display:flex; align-items:center; gap:18px; padding:14px; }
.export-overview h3 { margin:0 0 8px; }
.export-ring {
    --size:88px; width:var(--size); height:var(--size); flex:0 0 var(--size);
    border-radius:50%; display:grid; place-items:center;
    background:conic-gradient(#45d77b calc(var(--report-progress) * 1%),rgba(255,255,255,.14) 0);
}
.export-ring > div {
    width:70px;height:70px;border-radius:50%;background:#0d3e2d;
    display:grid;place-content:center;text-align:center;
}
.export-ring strong,.export-ring span { display:block; }
.export-ring strong { font-size:1.25rem; }
.export-ring span { font-size:.62rem;color:#bdd5ca; }
.export-counts { display:flex; flex-wrap:wrap; gap:7px 12px; font-size:.78rem; color:#d8e9e0; }
.export-equipment-grid {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:10px;
}
.export-group { padding:11px; }
.export-group h4 { margin:0 0 7px; color:#d9f6e2; }
.export-equipment {
    display:grid; grid-template-columns:minmax(90px,1fr) auto; gap:4px 10px;
    padding:6px 0; border-bottom:1px solid rgba(255,255,255,.08); font-size:.78rem;
}
.export-equipment:last-child { border-bottom:0; }
.export-equipment small { grid-column:1/-1; color:#ffd98c; }
.export-pair {
    display:grid; grid-template-columns:1fr 1fr; gap:8px;
    padding:5px 0; border-bottom:1px solid rgba(255,255,255,.1);
}
.export-pair:last-child { border-bottom:0; }
.export-pair .export-equipment { display:block; border:0; padding:3px; }
.export-pair .export-equipment strong,.export-pair .export-equipment span,.export-pair .export-equipment small { display:block; }
.export-footer { margin-top:12px; text-align:center; color:#aac9ba; font-size:.68rem; }

@media (max-width:700px) {
    .export-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .export-equipment-grid { grid-template-columns:1fr; }
}

@media print {
    body.printing-export-report * { visibility:hidden !important; }
    body.printing-export-report #export-report,
    body.printing-export-report #export-report * { visibility:visible !important; }
    body.printing-export-report #export-report {
        position:absolute; left:0; top:0; width:100%; margin:0;
        border-radius:0; padding:8mm; print-color-adjust:exact; -webkit-print-color-adjust:exact;
    }
    body.printing-export-report @page { size:A4 portrait; margin:0; }
}


/* Pareamento também na edição operacional */
.equipment-pair-editor {
    border: 1px solid var(--iris-border);
    border-radius: 17px; overflow: hidden; background: #f7faf8;
}
.pair-title {
    display: flex; justify-content: space-between; gap: 12px;
    padding: 11px 14px; background: var(--iris-accent-soft);
    color: var(--iris-accent);
}
.pair-equipment-row { border: 0; border-radius: 0; border-top: 1px solid var(--iris-border); }

/* Gestão da Frota */
.fleet-create,.fleet-list{margin-top:18px}.fleet-create h3,.fleet-list h3{margin-top:0}
.fleet-form,.fleet-row{display:grid;grid-template-columns:1fr 1.4fr 1.6fr auto;gap:10px;align-items:end}
.fleet-form label span,.fleet-row label span{display:block;margin-bottom:5px;color:var(--iris-muted);font-size:.76rem;font-weight:700}
.fleet-form input,.fleet-form select,.fleet-row input,.fleet-row select{width:100%;padding:10px 11px;border:1px solid var(--iris-border);border-radius:10px;background:#fff;font:inherit}
.fleet-form button,.fleet-actions button{border:0;border-radius:10px;padding:11px 15px;background:var(--iris-accent);color:#fff;font-weight:750;cursor:pointer}
.fleet-table{display:grid;gap:9px}.fleet-row{grid-template-columns:1fr 1.3fr 1.5fr auto auto;padding:12px;border:1px solid var(--iris-border);border-radius:14px;background:#fafcfb}
.fleet-state{align-self:center}.fleet-actions{display:flex;gap:6px;align-self:end}.fleet-actions .danger{background:#a43b3b}
.fleet-row input:disabled,.fleet-row select:disabled{opacity:.8;color:var(--iris-text);background:#f0f3f1}
@media(max-width:800px){.fleet-form,.fleet-row{grid-template-columns:1fr 1fr}.fleet-actions{grid-column:1/-1}.fleet-state{align-self:end}}
@media(max-width:520px){.fleet-form,.fleet-row{grid-template-columns:1fr}.fleet-actions{grid-column:auto}}

.fleet-pairs{margin-top:18px}.fleet-pairs h3{margin:0 0 6px}.fleet-help{color:var(--iris-muted);margin:0 0 14px}
.pair-form{display:grid;grid-template-columns:1fr auto 1fr auto;gap:10px;align-items:end}
.pair-form label span{display:block;margin-bottom:5px;color:var(--iris-muted);font-size:.76rem;font-weight:700}
.pair-form select{width:100%;padding:10px 11px;border:1px solid var(--iris-border);border-radius:10px;background:#fff;font:inherit}
.pair-form button,.unlink-btn{border:0;border-radius:10px;padding:11px 15px;background:var(--iris-accent);color:#fff;font-weight:750;cursor:pointer}
.pair-arrow{align-self:center;font-size:1.4rem;font-weight:800;color:var(--iris-accent);padding-top:17px}
.current-pairs{display:grid;gap:8px}.current-pair{display:grid;grid-template-columns:1fr auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--iris-border);border-radius:13px;background:#fafcfb}.current-pair>span{color:var(--iris-accent);font-weight:900}.unlink-btn{background:#a43b3b;padding:8px 11px}
@media(max-width:600px){.pair-form{grid-template-columns:1fr}.pair-arrow{display:none}.current-pair{grid-template-columns:1fr auto 1fr}.current-pair form{grid-column:1/-1}.unlink-btn{width:100%}}


/* Folga 5x1 — calendário projetado */
.folga-proximas {
    grid-column: 1 / -1;
    margin-top: 6px;
}
.folga-proximas > span {
    display: block;
    margin-bottom: 10px;
    color: var(--iris-muted);
    font-size: .82rem;
    font-weight: 700;
}
.folga-lista {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.folga-data {
    padding: 13px 10px;
    border-radius: 14px;
    text-align: center;
    font-size: .84rem;
    font-weight: 750;
    color: #fff;
    box-shadow: 0 5px 14px rgba(24, 34, 28, .08);
}
.folga-domingo { background: #dc3545; }
.folga-segunda { background: #f4c430; color: #302600; }
.folga-terca { background: #2f8f4e; }
.folga-quarta { background: #3276c3; }
.folga-quinta { background: #d94f8a; }
.folga-sexta { background: #168c87; }
.folga-sabado { background: #202624; }

@media (max-width: 800px) {
    .folga-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 460px) {
    .folga-lista { grid-template-columns: 1fr; }
}


/* Administração do Íris */
.admin-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
}
.admin-form label > span, .admin-fronts legend {
    display: block; margin-bottom: 6px; color: var(--iris-muted);
    font-size: .82rem; font-weight: 700;
}
.admin-form input, .admin-form select {
    width: 100%; padding: 11px 12px; border: 1px solid var(--iris-border);
    border-radius: 11px; background: #fff; font: inherit;
}
.admin-fronts {
    grid-column: 1 / -1; border: 1px solid var(--iris-border);
    border-radius: 14px; padding: 14px; display: flex; flex-wrap: wrap;
    gap: 10px 18px;
}
.admin-fronts label { display: flex; align-items: center; gap: 7px; }
.admin-fronts input { width: auto; }
.admin-form > button {
    border: 0; border-radius: 11px; padding: 12px 18px;
    background: var(--iris-accent); color: #fff; font-weight: 750; cursor: pointer;
}
.admin-list { margin-top: 18px; }
.admin-row {
    display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 14px;
    padding: 14px; border: 1px solid var(--iris-border);
    border-radius: 14px; background: #fafcfb;
}
.admin-row strong, .admin-row span { display: block; }
.admin-row span { color: var(--iris-muted); font-size: .82rem; margin-top: 3px; }
@media (max-width: 760px) {
    .admin-form, .admin-row { grid-template-columns: 1fr; }
}


/* Administração — lista limpa + edição em modal */
.admin-access-list {
    display: grid;
    gap: 10px;
}
.admin-access-card {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(280px, 2fr) auto;
    gap: 16px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid var(--iris-border);
    border-radius: 16px;
    background: #fafcfb;
}
.admin-access-main {
    display: flex;
    align-items: center;
    gap: 11px;
}
.admin-avatar {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--iris-accent-soft);
}
.admin-access-main strong,
.admin-access-main span {
    display: block;
}
.admin-access-main span,
.admin-access-meta {
    color: var(--iris-muted);
    font-size: .82rem;
}
.admin-access-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px 12px;
}
.admin-edit-button,
.admin-dialog-actions button {
    border: 0;
    border-radius: 11px;
    padding: 10px 14px;
    background: var(--iris-accent);
    color: #fff;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}
.admin-dialog {
    width: min(720px, calc(100% - 28px));
    max-height: calc(100vh - 40px);
    padding: 0;
    border: 0;
    border-radius: 20px;
    background: var(--iris-card);
    color: var(--iris-text);
    box-shadow: 0 24px 70px rgba(24, 34, 28, .25);
}
.admin-dialog::backdrop {
    background: rgba(18, 28, 22, .55);
    backdrop-filter: blur(3px);
}
.admin-edit-form {
    padding: 20px;
}
.admin-dialog-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--iris-border);
}
.admin-dialog-head strong,
.admin-dialog-head span {
    display: block;
}
.admin-dialog-head strong {
    font-size: 1.15rem;
}
.admin-dialog-head span {
    margin-top: 3px;
    color: var(--iris-muted);
    font-size: .82rem;
}
.admin-dialog-close {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: var(--iris-bg);
    color: var(--iris-text);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}
.admin-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}
.admin-edit-grid label > span,
.admin-current-front > span {
    display: block;
    margin-bottom: 6px;
    color: var(--iris-muted);
    font-size: .82rem;
    font-weight: 700;
}
.admin-edit-grid input,
.admin-edit-grid select {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--iris-border);
    border-radius: 11px;
    background: #fff;
    color: var(--iris-text);
    font: inherit;
}
.admin-edit-grid input:focus,
.admin-edit-grid select:focus {
    outline: 3px solid var(--iris-accent-soft);
    border-color: var(--iris-accent);
}
.admin-current-front {
    margin: 14px 0;
    padding: 12px 14px;
    border-radius: 13px;
    background: var(--iris-accent-soft);
}
.admin-current-front strong {
    color: var(--iris-accent);
}
.admin-dialog .admin-fronts {
    margin-top: 0;
}
.admin-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 18px;
}
.admin-dialog-actions .admin-secondary-button {
    background: #edf1ee;
    color: var(--iris-text);
}
@media (max-width: 760px) {
    .admin-access-card {
        grid-template-columns: 1fr;
    }
    .admin-edit-button {
        width: 100%;
    }
    .admin-edit-grid {
        grid-template-columns: 1fr;
    }
    .admin-dialog-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}


/* Folga 5x1 — lista compacta e modal */
.folga-team-list { display:grid; gap:10px; }
.folga-person-card {
    display:grid; grid-template-columns:minmax(260px,1.6fr) minmax(150px,.7fr) auto;
    gap:16px; align-items:center; padding:14px 16px;
    border:1px solid var(--iris-border); border-radius:16px; background:#fafcfb;
}
.folga-summary span,.folga-summary strong { display:block; }
.folga-summary span { color:var(--iris-muted); font-size:.78rem; margin-bottom:3px; }
.folga-base-field { display:block; margin-top:16px; }
.folga-base-field > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.folga-base-field input {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.folga-dialog { width:min(900px,calc(100% - 28px)); }
.folga-dialog .folga-lista { max-height:340px; overflow:auto; padding-right:4px; }

/* Escala da Frente */
.scale-filter-card,.scale-team-card { margin-bottom:18px; }
.scale-filter {
    display:grid; grid-template-columns:1fr 1fr auto; gap:12px; align-items:end;
}
.scale-filter label > span,.scale-note > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.scale-filter input,.scale-filter select,.scale-note input {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.scale-filter button {
    min-height:44px; border:0; border-radius:11px; padding:0 18px;
    background:var(--iris-accent); color:#fff; font-weight:750; cursor:pointer;
}
.scale-section-head {
    display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px;
}
.scale-section-head h3 { margin:0 0 4px; }
.scale-section-head p { margin:0; color:var(--iris-muted); }
.scale-team-list,.scale-list { display:grid; gap:9px; }
.scale-person {
    display:flex; justify-content:space-between; align-items:center; gap:14px;
    padding:13px 14px; border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.scale-person strong,.scale-person span { display:block; }
.scale-person > div > span { color:var(--iris-muted); font-size:.82rem; margin-top:3px; }
.scale-person.is-off { background:#fff7f7; }
.scale-note { display:block; margin-top:12px; }
.scale-row {
    display:grid; grid-template-columns:1.4fr 1.2fr 1fr auto;
    gap:14px; align-items:center; padding:14px;
    border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.scale-row strong,.scale-row span { display:block; }
.scale-row span { color:var(--iris-muted); font-size:.82rem; margin-top:3px; }
.scale-empty {
    padding:24px; text-align:center; color:var(--iris-muted);
    border:1px dashed var(--iris-border); border-radius:14px;
}
.scale-remove-form { margin:0; }

@media(max-width:760px) {
    .folga-person-card,.scale-row { grid-template-columns:1fr; }
    .folga-person-card .admin-edit-button { width:100%; }
    .scale-filter { grid-template-columns:1fr; }
    .scale-person { align-items:flex-start; flex-direction:column; }
    .scale-person .admin-edit-button { width:100%; }
}


/* Escala de Guarda */
.guard-date-card { margin-bottom:18px; }
.guard-date-form {
    display:grid; grid-template-columns:minmax(220px,360px) auto; gap:12px; align-items:end;
}
.guard-date-form label > span,.guard-choice-grid label > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.guard-date-form input,.guard-choice-grid select {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.guard-date-form button {
    min-height:44px; border:0; border-radius:11px; padding:0 18px;
    background:var(--iris-accent); color:#fff; font-weight:750; cursor:pointer;
}
.guard-pair {
    display:grid; grid-template-columns:1fr auto 1fr; gap:14px; align-items:center;
}
.guard-person {
    display:flex; gap:12px; align-items:center; padding:18px;
    border:1px solid var(--iris-border); border-radius:16px; background:#fafcfb;
}
.guard-icon {
    width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center;
    border-radius:14px; background:var(--iris-accent-soft); font-size:1.35rem;
}
.guard-person span,.guard-person strong,.guard-person small { display:block; }
.guard-person span,.guard-person small { color:var(--iris-muted); }
.guard-person span { font-size:.78rem; font-weight:700; margin-bottom:3px; }
.guard-person small { margin-top:3px; }
.guard-plus { font-size:1.4rem; font-weight:800; color:var(--iris-muted); }
.guard-choice-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:18px;
}
.guard-choice-grid small {
    display:block; margin-top:6px; color:var(--iris-muted); line-height:1.35;
}
.guard-history { display:grid; gap:9px; }
.guard-history-row {
    display:grid; grid-template-columns:.7fr 1.3fr 1.3fr; gap:14px; align-items:center;
    padding:13px 14px; border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.guard-history-row strong,.guard-history-row span { display:block; }
.guard-history-row span { margin-top:3px; color:var(--iris-muted); font-size:.82rem; }

@media(max-width:760px) {
    .guard-date-form,.guard-choice-grid,.guard-pair,.guard-history-row { grid-template-columns:1fr; }
    .guard-plus { text-align:center; }
}


/* Confirmação de exclusão — Escala de Guarda */
.guard-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.guard-delete-button {
    border:1px solid #e3b7b7; border-radius:11px; padding:10px 14px;
    background:#fff5f5; color:#a72b2b; font:inherit; font-weight:750; cursor:pointer;
}
.guard-confirm-dialog { width:min(460px,calc(100% - 28px)); text-align:center; }
.guard-confirm-icon {
    width:58px; height:58px; display:grid; place-items:center; margin:4px auto 14px;
    border-radius:18px; background:#fff0f0; font-size:1.6rem;
}
.guard-confirm-copy strong { display:block; font-size:1.15rem; }
.guard-confirm-copy p { margin:8px 0 0; color:var(--iris-muted); line-height:1.5; }
.guard-confirm-actions {
    display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:20px;
}
.guard-confirm-actions button {
    border:0; border-radius:11px; padding:11px 14px; font:inherit;
    font-weight:750; cursor:pointer;
}
.guard-confirm-actions .admin-secondary-button { background:#edf1ee; color:var(--iris-text); }
.guard-confirm-actions .guard-confirm-delete { background:#b83232; color:#fff; }

@media(max-width:760px) {
    .guard-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; }
}


/* Índice de Chuva */
.rain-current {
    display:grid; grid-template-columns:auto 1fr auto; gap:18px; align-items:center; margin-bottom:18px;
}
.rain-current-value {
    min-width:130px; padding:16px 18px; border-radius:16px; background:var(--iris-accent-soft); text-align:center;
}
.rain-current-value span,.rain-current-value strong { display:block; }
.rain-current-value span { color:var(--iris-muted); font-size:.78rem; font-weight:700; }
.rain-current-value strong { margin-top:4px; color:var(--iris-accent); font-size:1.65rem; }
.rain-current-info strong,.rain-current-info span { display:block; }
.rain-current-info span { margin-top:4px; color:var(--iris-muted); font-size:.85rem; }
.rain-form {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;
}
.rain-form label > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.rain-form input,.rain-form select {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.rain-form .rain-observation { grid-column:1/-1; }
.rain-form > button {
    grid-column:1/-1; min-height:44px; border:0; border-radius:11px;
    background:var(--iris-accent); color:#fff; font-weight:750; cursor:pointer;
}
.rain-history { display:grid; gap:9px; }
.rain-history-row {
    display:grid; grid-template-columns:.65fr 1.25fr 1fr auto; gap:14px; align-items:center;
    padding:13px 14px; border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.rain-history-row strong,.rain-history-row span { display:block; }
.rain-history-row span { margin-top:3px; color:var(--iris-muted); font-size:.82rem; }
.rain-mm strong { font-size:1.08rem; color:var(--iris-accent); }

@media(max-width:760px) {
    .rain-current,.rain-form,.rain-history-row { grid-template-columns:1fr; }
    .rain-current .admin-edit-button { width:100%; }
    .rain-form .rain-observation,.rain-form > button { grid-column:auto; }
}


/* Dashboard — seleção de frentes */
.front-switcher { margin-bottom:18px; }
.front-switcher-head {
    display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px;
}
.front-switcher-head h3 { margin:0 0 5px; }
.front-switcher-head p { margin:0; color:var(--iris-muted); }
.front-overview-link {
    flex:0 0 auto; padding:9px 12px; border-radius:11px;
    background:var(--iris-accent-soft); color:var(--iris-accent);
    text-decoration:none; font-weight:750; font-size:.84rem;
}
.front-selector-grid {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px;
}
.front-selector-card {
    display:block; padding:14px 15px; border:1px solid var(--iris-border);
    border-radius:15px; background:#fafcfb; color:var(--iris-text); text-decoration:none;
    transition:border-color .15s ease, transform .15s ease, background .15s ease;
}
.front-selector-card:hover {
    border-color:var(--iris-accent); transform:translateY(-1px);
}
.front-selector-card.is-active {
    border-color:var(--iris-accent); background:var(--iris-accent-soft);
}
.front-selector-card span,.front-selector-card strong,.front-selector-card small { display:block; }
.front-selector-card span {
    color:var(--iris-accent); font-size:.72rem; font-weight:800; text-transform:uppercase;
}
.front-selector-card strong { margin-top:3px; font-size:1.05rem; }
.front-selector-card small { margin-top:4px; color:var(--iris-muted); }

@media(max-width:760px) {
    .front-switcher-head { flex-direction:column; }
    .front-selector-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:480px) {
    .front-selector-grid { grid-template-columns:1fr; }
    .front-overview-link { width:100%; text-align:center; }
}


/* Rodapé / versão */
.iris-footer {
    display:flex; justify-content:center; align-items:center; flex-wrap:wrap;
    gap:7px; padding:0 18px 28px; color:var(--iris-muted);
    font-size:.78rem; text-align:center;
}
.iris-footer span:first-child { font-weight:750; color:var(--iris-text); }


/* Teste de Partida */
.start-last {
    display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px;
}
.start-last small,.start-last strong,.start-last span { display:block; }
.start-last small,.start-last span { color:var(--iris-muted); }
.start-last strong { margin:3px 0; font-size:1.12rem; }
.start-time-card { margin-bottom:18px; }
.start-time-card label > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.start-time-card input {
    width:min(100%,360px); padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.start-group { margin-bottom:18px; }
.start-group h3 { margin-top:0; }
.start-list,.start-history { display:grid; gap:9px; }
.start-row {
    display:grid; grid-template-columns:minmax(150px,.7fr) auto minmax(220px,1.3fr);
    gap:14px; align-items:center; padding:13px 14px;
    border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.start-equipment { display:flex; align-items:center; gap:9px; }
.start-equipment span { font-size:1.25rem; }
.start-options { display:flex; gap:7px; }
.start-options input { position:absolute; opacity:0; pointer-events:none; }
.start-options span {
    display:inline-flex; padding:8px 11px; border:1px solid var(--iris-border);
    border-radius:10px; background:#fff; cursor:pointer; font-size:.84rem; font-weight:700;
}
.start-options input:checked + span {
    border-color:var(--iris-accent); background:var(--iris-accent-soft); color:var(--iris-accent);
}
.start-reason {
    width:100%; padding:10px 11px; border:1px solid var(--iris-border);
    border-radius:10px; background:#fff; color:var(--iris-text); font:inherit;
}
.start-submit {
    width:100%; min-height:48px; margin-bottom:18px; border:0; border-radius:13px;
    background:var(--iris-accent); color:#fff; font:inherit; font-weight:800; cursor:pointer;
}
.start-history-row {
    display:grid; grid-template-columns:1fr 1.3fr auto; gap:14px; align-items:center;
    padding:13px 14px; border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.start-history-row strong,.start-history-row span { display:block; }
.start-history-row span { margin-top:3px; color:var(--iris-muted); font-size:.82rem; }
.start-counts { display:flex; gap:10px; }
.start-counts span { margin:0; font-weight:750; }

@media(max-width:760px) {
    .start-last,.start-row { align-items:stretch; grid-template-columns:1fr; }
    .start-last { flex-direction:column; }
    .start-last .admin-edit-button { width:100%; }
    .start-row { display:grid; }
    .start-options { display:grid; grid-template-columns:1fr 1fr; }
    .start-options span { justify-content:center; }
    .start-history-row { grid-template-columns:1fr; }
}


/* Índice de Abastecimento */
.fuel-last {
    display:grid; grid-template-columns:auto 1fr auto; gap:18px; align-items:center; margin-bottom:18px;
}
.fuel-last-copy small,.fuel-last-copy strong,.fuel-last-copy span { display:block; }
.fuel-last-copy small,.fuel-last-copy span { color:var(--iris-muted); }
.fuel-last-copy strong { margin:3px 0; font-size:1.12rem; }
.fuel-time-card { margin-bottom:18px; }
.fuel-time-card label > span,.fuel-row label > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.fuel-time-card input,.fuel-row input,.fuel-row select {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.fuel-time-card input { width:min(100%,360px); }
.fuel-group { margin-bottom:18px; }
.fuel-group h3 { margin-top:0; }
.fuel-list,.fuel-history { display:grid; gap:9px; }
.fuel-row {
    display:grid; grid-template-columns:minmax(150px,.65fr) minmax(150px,.7fr) minmax(260px,1.4fr);
    gap:14px; align-items:end; padding:13px 14px;
    border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.fuel-equipment { display:flex; align-items:center; gap:9px; min-height:44px; }
.fuel-equipment span { font-size:1.25rem; }
.fuel-percent-input { display:grid; grid-template-columns:1fr auto; align-items:center; gap:7px; }
.fuel-percent-input strong { color:var(--iris-accent); }
.fuel-history-row {
    display:grid; grid-template-columns:1fr 1.3fr .8fr; gap:14px; align-items:center;
    padding:13px 14px; border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.fuel-history-row strong,.fuel-history-row span { display:block; }
.fuel-history-row span { margin-top:3px; color:var(--iris-muted); font-size:.82rem; }

@media(max-width:760px) {
    .fuel-last,.fuel-row,.fuel-history-row { grid-template-columns:1fr; }
    .fuel-last .admin-edit-button { width:100%; }
}


/* Tempo de Carregamento */
.loading-last {
    display:grid; grid-template-columns:auto auto 1fr auto; gap:18px; align-items:center; margin-bottom:18px;
}
.loading-metric {
    min-width:145px; padding:12px 14px; border:1px solid var(--iris-border);
    border-radius:13px; background:#fafcfb;
}
.loading-metric small,.loading-metric strong,.loading-last-info strong,.loading-last-info span { display:block; }
.loading-metric small,.loading-last-info span { color:var(--iris-muted); }
.loading-metric strong { margin-top:4px; font-size:1.25rem; color:var(--iris-accent); }
.loading-form-card,.loading-group { margin-bottom:18px; }
.loading-form-card label > span,.loading-row label > span,.loading-aux label > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.loading-form-card input,.loading-row input,.loading-aux input {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.loading-form-card input { width:min(100%,360px); }
.loading-group h3 { margin-top:0; }
.loading-list,.loading-history { display:grid; gap:9px; }
.loading-row {
    display:grid; grid-template-columns:minmax(180px,.7fr) minmax(260px,1fr);
    gap:14px; align-items:end; padding:13px 14px;
    border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.loading-equipment { display:flex; align-items:center; gap:9px; min-height:44px; }
.loading-equipment span { font-size:1.25rem; }
.loading-input { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; }
.loading-input strong { color:var(--iris-accent); }
.loading-aux { max-width:420px; }
.loading-history-row {
    display:grid; grid-template-columns:1fr .8fr .8fr 1.2fr; gap:14px; align-items:center;
    padding:13px 14px; border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.loading-history-row strong,.loading-history-row span { display:block; }
.loading-history-row span { margin-top:3px; color:var(--iris-muted); font-size:.82rem; }

@media(max-width:760px) {
    .loading-last,.loading-row,.loading-history-row { grid-template-columns:1fr; }
    .loading-last .admin-edit-button { width:100%; }
}


/* O.S. / Manutenção */
.os-form-card { margin-bottom:18px; }
.os-form {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
}
.os-form label > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.os-form input,.os-form select,.os-form textarea,.os-status-form select {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.os-form textarea { resize:vertical; min-height:90px; }
.os-wide { grid-column:1/-1; }
.os-submit {
    grid-column:1/-1; min-height:48px; border:0; border-radius:13px;
    background:var(--iris-accent); color:#fff; font:inherit; font-weight:800; cursor:pointer;
}
.os-list { display:grid; gap:12px; }
.os-card {
    padding:15px; border:1px solid var(--iris-border); border-radius:15px; background:#fafcfb;
}
.os-card-head {
    display:flex; justify-content:space-between; align-items:flex-start; gap:14px;
}
.os-card-head small { color:var(--iris-muted); }
.os-card-head h3 { margin:5px 0 0; }
.os-details {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;
    margin-top:14px; padding-top:14px; border-top:1px solid var(--iris-border);
}
.os-details small,.os-details strong { display:block; }
.os-details small { margin-bottom:4px; color:var(--iris-muted); font-size:.8rem; }
.os-actions {
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    margin-top:14px; padding-top:14px; border-top:1px solid var(--iris-border);
}
.os-status-form { display:flex; gap:8px; align-items:center; }
.os-status-form button {
    min-height:40px; border:0; border-radius:10px; padding:0 13px;
    background:var(--iris-accent); color:#fff; font:inherit; font-weight:750; cursor:pointer;
}

@media(max-width:760px) {
    .os-form,.os-details { grid-template-columns:1fr; }
    .os-wide,.os-submit { grid-column:auto; }
    .os-card-head,.os-actions,.os-status-form { flex-direction:column; align-items:stretch; }
}


/* CME — Motor / Elevador */
.cme-summary {
    display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; margin-bottom:18px;
}
.cme-summary-copy small,.cme-summary-copy strong,.cme-summary-copy span { display:block; }
.cme-summary-copy small,.cme-summary-copy span { color:var(--iris-muted); }
.cme-summary-copy strong { margin:4px 0; font-size:1.18rem; }
.cme-result-grid {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:18px;
}
.cme-result-head { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.cme-result-head small { color:var(--iris-muted); }
.cme-result-head h3 { margin:4px 0 0; }
.cme-ring {
    --size: 76px;
    width: var(--size);
    height: var(--size);
    flex: 0 0 var(--size);
    aspect-ratio: 1 / 1;
}
.cme-values {
    display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:14px;
}
.cme-values span {
    padding:10px 11px; border:1px solid var(--iris-border); border-radius:12px; background:#fafcfb;
}
.cme-values small,.cme-values strong { display:block; }
.cme-values small { color:var(--iris-muted); font-size:.76rem; margin-bottom:3px; }
.cme-observation { margin:12px 0 0; color:var(--iris-muted); }
.cme-config,.cme-entry { margin-bottom:18px; }
.cme-config-grid {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;
}
.cme-config label > span,.cme-entry-row label > span {
    display:block; margin-bottom:6px; color:var(--iris-muted); font-size:.82rem; font-weight:700;
}
.cme-config input,.cme-entry-row input {
    width:100%; padding:11px 12px; border:1px solid var(--iris-border);
    border-radius:11px; background:#fff; color:var(--iris-text); font:inherit;
}
.cme-entry-list,.cme-history { display:grid; gap:9px; }
.cme-entry-row {
    display:grid; grid-template-columns:minmax(150px,.6fr) repeat(2,minmax(130px,.65fr)) minmax(220px,1.2fr);
    gap:14px; align-items:end; padding:13px 14px;
    border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.cme-entry-row > strong { min-height:44px; display:flex; align-items:center; }
.cme-history-row {
    display:grid; grid-template-columns:1fr .8fr .8fr 1.2fr; gap:14px; align-items:center;
    padding:13px 14px; border:1px solid var(--iris-border); border-radius:14px; background:#fafcfb;
}
.cme-history-row strong,.cme-history-row span { display:block; }
.cme-history-row span { margin-top:3px; color:var(--iris-muted); font-size:.82rem; }

@media(max-width:760px) {
    .cme-summary,.cme-result-grid,.cme-config-grid,.cme-entry-row,.cme-history-row { grid-template-columns:1fr; }
    .cme-result-head { align-items:flex-start; }
    .cme-values { grid-template-columns:1fr; }
}
