:root {
    --paper: #f6f4f1;
    --paper-deep: #ece8e2;
    --ink: #17130f;
    --muted: #756e66;
    --line: #e5e0d9;
    --white: #ffffff;
    --red: #e42320;
    --red-dark: #a91413;
    --coral: #ef6b5c;
    --gold: #d6a443;
    --green: #2e7d5b;
    --sidebar: #17130f;
    --shadow: 0 16px 42px rgba(45, 35, 26, .08);
    --radius-lg: 22px;
    --radius-md: 15px;
    --radius-sm: 10px;
    --sidebar-width: 276px;
}

.receipt-automation-panel .panel-body,
.fiscal-profile-grid .panel-body { padding: 24px; }
.checkbox-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.check-card { display:flex; align-items:flex-start; gap:12px; padding:15px; border:1px solid var(--line); border-radius:14px; background:var(--white); cursor:pointer; }
.check-card input { width:18px; height:18px; margin:3px 0 0; accent-color:var(--red); }
.check-card span { display:flex; flex-direction:column; gap:3px; }
.check-card small { color:var(--muted); }
.form-submit-cell { display:flex; align-items:flex-end; }
.form-submit-cell .primary-button { width:100%; }
.fiscal-profile-grid { align-items: start; }
.selected-entity { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; margin-bottom:16px; border:1px solid var(--line); border-radius:14px; background:var(--paper); }
.selected-entity span { display:flex; flex-direction:column; gap:3px; }
.selected-entity a { color:var(--red); font-size:.82rem; font-weight:800; }
.receipt-list .receivable-card.status-blocked,
.receipt-list .receivable-card.status-rejected { border-left-color:#d97706; }
.receipt-list .receivable-card.status-issued { border-left-color:#16865d; }
.hub-entity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:22px; }
.hub-entity-card { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.hub-entity-card div { display:flex; flex-direction:column; gap:4px; }
.hub-entity-card small { color:var(--muted); }
.architecture-strip { padding:24px; margin-bottom:22px; }
.architecture-strip .guard-callout { margin:20px 0 0; }
.integration-contract-list { display:grid; gap:0; padding:8px 22px 22px; }
.integration-contract-list span { display:flex; flex-direction:column; gap:3px; padding:14px 0; border-bottom:1px solid var(--line); }
.integration-contract-list span:last-child { border-bottom:0; }
.integration-contract-list small { color:var(--muted); }
.dot-error { background:#b83c36; }
@media (max-width: 820px) {
    .checkbox-grid { grid-template-columns:1fr; }
    .hub-entity-grid { grid-template-columns:1fr; }
    .hub-entity-card { align-items:flex-start; flex-direction:column; }
}

* { box-sizing: border-box; }

html { min-height: 100%; background: var(--paper); }

body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: Manrope, Inter, "Segoe UI", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

button, input { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
svg { display: block; width: 100%; height: 100%; }

.brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    letter-spacing: .02em;
}

.brand-mark {
    display: grid;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    place-items: center;
}

.brand-mark svg path:first-child { fill: var(--red); }
.brand-mark svg .brand-cut { fill: var(--white); }
.brand > span:last-child { display: flex; flex-direction: column; line-height: 1; }
.brand strong { font-size: 18px; font-weight: 900; letter-spacing: .055em; }
.brand small { margin-top: 4px; color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .36em; }

.eyebrow {
    display: inline-flex;
    color: var(--red);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .18em;
}

.eyebrow-light { color: #ffb8b2; }

.guest-body {
    overflow-x: hidden;
    background: var(--ink);
}

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

.login-grid {
    display: grid;
    min-height: 100vh;
    grid-template-columns: minmax(420px, 1.04fr) minmax(460px, .96fr);
}

.login-story {
    position: relative;
    display: flex;
    min-height: 100vh;
    overflow: hidden;
    padding: 46px clamp(42px, 6vw, 86px);
    flex-direction: column;
    justify-content: space-between;
    color: var(--white);
    background:
        radial-gradient(circle at 78% 20%, rgba(228, 35, 32, .32), transparent 26%),
        radial-gradient(circle at 8% 75%, rgba(239, 107, 92, .18), transparent 30%),
        linear-gradient(145deg, #211a15 0%, #17130f 57%, #100d0a 100%);
}

.login-story::before,
.login-story::after {
    position: absolute;
    z-index: 0;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 50%;
    content: "";
}

.login-story::before { top: -230px; right: -210px; width: 610px; height: 610px; }
.login-story::after { right: 18%; bottom: -280px; width: 520px; height: 520px; }
.login-story > * { position: relative; z-index: 1; }
.brand-light strong { color: var(--white); }
.brand-light small { color: #ff9b92; }

.story-content { max-width: 640px; padding: 70px 0; }
.story-content h1 {
    max-width: 620px;
    margin: 19px 0 26px;
    font-family: "Arial Narrow", Impact, sans-serif;
    font-size: clamp(48px, 5.5vw, 83px);
    font-weight: 900;
    line-height: .97;
    letter-spacing: -.025em;
    text-transform: uppercase;
}

.story-content h1 em { color: var(--coral); font-style: normal; }
.story-content p { max-width: 520px; margin: 0; color: #c9c1bb; font-size: 17px; }

.story-foot { display: flex; align-items: center; gap: 13px; }
.story-foot > span:last-child { display: flex; flex-direction: column; }
.story-foot strong { font-size: 13px; }
.story-foot small { margin-top: 2px; color: #99908a; font-size: 11px; }
.shield-dot {
    display: grid;
    width: 35px;
    height: 35px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    color: #ff9b92;
    font-weight: 900;
    place-items: center;
}

.login-panel {
    display: flex;
    min-height: 100vh;
    padding: 42px clamp(36px, 7vw, 108px) 24px;
    flex-direction: column;
    justify-content: center;
    background: var(--paper);
}

.login-card { width: min(100%, 450px); margin: auto; }
.login-card h2 { margin: 7px 0 6px; font-size: clamp(34px, 4vw, 46px); line-height: 1.08; letter-spacing: -.045em; }
.login-intro { margin: 0 0 34px; color: var(--muted); }

.login-form { display: grid; gap: 9px; }
.login-form label { margin-top: 10px; font-size: 12px; font-weight: 850; }

.input-wrap {
    display: flex;
    height: 54px;
    align-items: center;
    gap: 10px;
    padding: 0 15px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--white);
    transition: border-color .2s, box-shadow .2s;
}

.input-wrap:focus-within { border-color: var(--red); box-shadow: 0 0 0 4px rgba(228, 35, 32, .08); }
.input-wrap > span { width: 18px; color: #a39a92; font-size: 12px; font-weight: 800; text-align: center; }
.input-wrap input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; }
.input-wrap input::placeholder { color: #afa8a2; }
.password-toggle { padding: 5px; border: 0; color: var(--red); background: transparent; font-size: 11px; font-weight: 800; cursor: pointer; }

.primary-button {
    display: flex;
    min-height: 54px;
    margin-top: 18px;
    padding: 0 20px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--white);
    background: var(--red);
    box-shadow: 0 12px 25px rgba(228, 35, 32, .2);
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
    transition: transform .15s, background .15s;
}

.primary-button:hover { background: var(--red-dark); transform: translateY(-1px); }
.primary-button span { font-size: 19px; }
.login-help { margin: 25px 0 0; color: var(--muted); font-size: 11px; text-align: center; }
.legal-copy { margin: 28px 0 0; color: #99918a; font-size: 10px; text-align: center; }

.alert { display: flex; margin: 0 0 20px; padding: 12px 14px; align-items: center; gap: 10px; border-radius: 9px; font-size: 12px; }
.alert-error { border: 1px solid #efc4c1; color: #8e2421; background: #fff1f0; }
.alert span { display: grid; width: 22px; height: 22px; border-radius: 50%; color: var(--white); background: var(--red); font-weight: 900; place-items: center; }

.app-shell { display: flex; min-height: 100vh; }
.sidebar {
    position: fixed;
    z-index: 40;
    inset: 0 auto 0 0;
    display: flex;
    width: var(--sidebar-width);
    padding: 29px 22px 20px;
    flex-direction: column;
    color: #f5f1ee;
    background: var(--sidebar);
}

.sidebar .brand { padding: 0 9px 27px; }
.sidebar .brand strong { font-size: 16px; }
.sidebar .brand small { font-size: 9px; }
.nav-list { display: flex; flex: 1; flex-direction: column; gap: 5px; overflow-y: auto; }
.nav-section { margin: 19px 11px 6px; color: #7d746d; font-size: 9px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.nav-item {
    display: flex;
    width: 100%;
    min-height: 45px;
    padding: 0 12px;
    align-items: center;
    gap: 12px;
    border: 0;
    border-radius: 10px;
    color: #a9a09a;
    background: transparent;
    font-size: 12px;
    text-align: left;
}

.nav-item.active { color: var(--white); background: var(--red); box-shadow: 0 8px 24px rgba(228, 35, 32, .22); }
.nav-item.locked { opacity: .8; cursor: not-allowed; }
.nav-item.locked small { margin-left: auto; color: #6f6761; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.nav-icon { display: grid; width: 20px; height: 20px; font-size: 17px; font-weight: 700; place-items: center; }
.sidebar-footer { padding-top: 18px; border-top: 1px solid #2c2621; }
.environment-chip { display: flex; margin: 0 7px 12px; align-items: center; gap: 8px; color: #938a83; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.environment-chip i { width: 7px; height: 7px; border-radius: 50%; background: #69b78e; box-shadow: 0 0 0 4px rgba(105, 183, 142, .1); }
.logout-button { display: flex; width: 100%; padding: 10px 8px; justify-content: space-between; border: 0; color: #b5aca5; background: transparent; font-size: 11px; cursor: pointer; }
.logout-button:hover { color: var(--white); }

.sidebar-overlay { display: none; }
.main-area { width: calc(100% - var(--sidebar-width)); min-height: 100vh; margin-left: var(--sidebar-width); }
.topbar {
    display: flex;
    height: 76px;
    padding: 0 clamp(22px, 3.5vw, 52px);
    align-items: center;
    gap: 18px;
    border-bottom: 1px solid var(--line);
    background: rgba(246, 244, 241, .94);
}

.menu-button { display: none; border: 0; background: transparent; font-size: 21px; cursor: pointer; }
.topbar-copy { display: flex; flex: 1; flex-direction: column; }
.topbar-copy span { font-size: 11px; font-weight: 850; }
.topbar-copy small { color: var(--muted); font-size: 9px; }
.user-menu { display: flex; align-items: center; gap: 10px; }
.user-avatar { display: grid; width: 37px; height: 37px; border: 1px solid #ebcac7; border-radius: 50%; color: var(--red); background: #fff4f3; font-size: 12px; font-weight: 900; place-items: center; }
.user-copy { display: flex; flex-direction: column; }
.user-copy strong { max-width: 190px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.user-copy small { max-width: 190px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }

.content-area { width: min(100%, 1580px); margin: 0 auto; padding: 39px clamp(22px, 3.5vw, 52px) 64px; }
.page-heading { display: flex; margin-bottom: 29px; align-items: flex-end; justify-content: space-between; gap: 24px; }
.page-heading h1 { margin: 5px 0 4px; font-size: clamp(34px, 4vw, 48px); line-height: 1; letter-spacing: -.05em; }
.page-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.foundation-badge { display: flex; min-width: 178px; padding: 13px 15px; align-items: center; gap: 10px; border: 1px solid #d8e8df; border-radius: 12px; background: #f5fbf7; }
.foundation-badge > span { display: grid; width: 29px; height: 29px; border-radius: 50%; color: var(--white); background: var(--green); font-weight: 900; place-items: center; }
.foundation-badge div { display: flex; flex-direction: column; }
.foundation-badge strong { font-size: 10px; }
.foundation-badge small { color: var(--green); font-size: 9px; }

.metric-grid { display: grid; margin-bottom: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.metric-card { position: relative; min-height: 177px; overflow: hidden; padding: 19px 20px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); box-shadow: 0 7px 24px rgba(52, 40, 30, .035); }
.metric-card::after { position: absolute; top: -20px; right: -20px; width: 75px; height: 75px; border-radius: 50%; background: var(--accent); content: ""; opacity: .055; }
.metric-top { display: flex; margin-bottom: 15px; align-items: center; justify-content: space-between; }
.metric-icon { display: grid; width: 33px; height: 33px; border-radius: 9px; color: var(--white); background: var(--accent); font-size: 17px; font-weight: 800; place-items: center; }
.metric-trend { padding: 4px 7px; border-radius: 12px; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.metric-trend.neutral { color: #867d76; background: #f3f0ed; }
.metric-card > strong { display: block; color: var(--ink); font-size: 33px; line-height: 1; }
.metric-card > span { display: block; margin-top: 7px; color: var(--ink); font-size: 11px; font-weight: 800; }
.metric-card > small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; }
.metric-red { --accent: var(--red); }
.metric-coral { --accent: var(--coral); }
.metric-gold { --accent: var(--gold); }
.metric-dark { --accent: var(--ink); }

.dashboard-grid { display: grid; margin-bottom: 20px; grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr); gap: 20px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow); }
.panel-heading { display: flex; padding: 20px 22px; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #eeeae6; }
.panel-heading > div { display: flex; flex-direction: column; }
.panel-heading h2 { margin: 3px 0 0; font-size: 17px; line-height: 1.2; letter-spacing: -.02em; }
.status-pill { display: inline-flex; padding: 5px 8px; border-radius: 20px; font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.status-pill.muted { color: #77706a; background: #f1efec; }
.status-pill.warning { color: #9c6713; background: #fff5df; }
.status-pill.success { color: #26704f; background: #e9f6ee; }

.empty-state { display: flex; min-height: 323px; padding: 44px 24px; align-items: center; flex-direction: column; justify-content: center; text-align: center; }
.empty-illustration { display: grid; width: 69px; height: 69px; margin-bottom: 15px; border: 1px solid #ecd6d3; border-radius: 21px; color: var(--red); background: #fff7f6; font-size: 31px; place-items: center; transform: rotate(-3deg); }
.empty-state h3 { margin: 0 0 6px; font-size: 14px; }
.empty-state p { max-width: 420px; margin: 0; color: var(--muted); font-size: 10px; }

.architecture-panel { padding-bottom: 12px; }
.architecture-flow { display: grid; padding: 21px 22px 16px; align-items: center; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 8px; }
.flow-node { display: flex; min-width: 0; align-items: center; gap: 8px; }
.flow-node > span { display: grid; flex: 0 0 auto; width: 35px; height: 35px; border-radius: 10px; color: var(--white); background: var(--red); font-size: 10px; font-weight: 900; place-items: center; }
.flow-node.hub > span { background: var(--ink); }
.flow-node.cih > span { color: #6e4c10; background: #f4d99d; font-size: 8px; }
.flow-node div { display: flex; min-width: 0; flex-direction: column; }
.flow-node strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.flow-node small { overflow: hidden; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.flow-arrow { color: #bcb4ad; font-size: 14px; }
.guard-callout { display: flex; margin: 0 22px 13px; padding: 12px; align-items: flex-start; gap: 10px; border: 1px solid #dceadf; border-radius: 11px; background: #f5faf6; }
.guard-callout > span { display: grid; flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; color: var(--white); background: var(--green); font-size: 10px; font-weight: 900; place-items: center; }
.guard-callout p { display: flex; margin: 0; flex-direction: column; color: #587063; font-size: 8px; }
.guard-callout strong { margin-bottom: 2px; color: #254f3a; font-size: 9px; }
.queue-row { display: flex; margin: 0 22px; padding: 9px 1px; align-items: center; justify-content: space-between; border-top: 1px solid #f0ece8; color: var(--muted); font-size: 9px; }
.queue-row span { display: flex; align-items: center; gap: 7px; }
.queue-row strong { color: var(--ink); font-size: 11px; }
.dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; }
.dot-pending { background: var(--gold); }
.dot-success { background: var(--green); }

.roadmap-panel { overflow: hidden; }
.roadmap-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.roadmap-item { position: relative; display: grid; min-height: 138px; padding: 20px; grid-template-columns: 31px 1fr; align-content: start; gap: 11px; border-right: 1px solid #eeeae6; }
.roadmap-item:last-child { border-right: 0; }
.roadmap-item > span { display: grid; width: 31px; height: 31px; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-size: 9px; font-weight: 900; place-items: center; }
.roadmap-item > div { display: flex; min-width: 0; flex-direction: column; }
.roadmap-item strong { font-size: 10px; }
.roadmap-item small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.roadmap-item b { position: absolute; right: 20px; bottom: 16px; color: #a59d96; font-size: 7px; text-transform: uppercase; letter-spacing: .07em; }
.roadmap-item.done > span { border-color: var(--green); color: var(--white); background: var(--green); }
.roadmap-item.done b { color: var(--green); }
.roadmap-item.next { background: #fff8f7; }
.roadmap-item.next > span { border-color: var(--red); color: var(--white); background: var(--red); }
.roadmap-item.next b { color: var(--red); }

.error-state { display: flex; min-height: 100vh; padding: 30px; align-items: center; flex-direction: column; justify-content: center; color: var(--ink); background: var(--paper); text-align: center; }
.error-code { color: var(--red); font-family: Impact, sans-serif; font-size: 90px; line-height: 1; }
.error-state h1 { margin: 15px 0 5px; font-size: 30px; }
.error-state p { max-width: 440px; margin: 0; color: var(--muted); }
.inline-button { width: auto; min-width: 180px; margin-top: 24px; }

.installer-body {
    min-height: 100vh;
    padding: 42px 20px;
    background:
        radial-gradient(circle at 5% 5%, rgba(228, 35, 32, .1), transparent 25%),
        radial-gradient(circle at 95% 95%, rgba(214, 164, 67, .12), transparent 26%),
        var(--paper);
}

.installer-shell { width: min(100%, 920px); margin: 0 auto; }
.installer-card { padding: clamp(25px, 5vw, 54px); border: 1px solid var(--line); border-radius: 26px; background: var(--white); box-shadow: 0 25px 80px rgba(50, 38, 28, .1); }
.installer-header { display: flex; margin-bottom: 41px; align-items: center; justify-content: space-between; }
.installer-logo { display: flex; align-items: center; gap: 10px; }
.installer-logo > span { display: grid; width: 38px; height: 38px; border-radius: 12px; color: var(--white); background: var(--red); font-size: 21px; font-weight: 900; place-items: center; }
.installer-logo > div { display: flex; flex-direction: column; line-height: 1; }
.installer-logo strong { font-size: 16px; font-weight: 900; letter-spacing: .07em; }
.installer-logo small { margin-top: 4px; color: var(--red); font-size: 8px; font-weight: 900; letter-spacing: .34em; }
.version-chip { padding: 6px 9px; border-radius: 20px; color: var(--muted); background: var(--paper); font-size: 9px; font-weight: 900; }
.installer-card > h1 { margin: 7px 0 7px; font-size: clamp(34px, 5vw, 50px); line-height: 1.04; letter-spacing: -.05em; }
.installer-intro { max-width: 650px; margin: 0 0 26px; color: var(--muted); font-size: 12px; }
.installer-alert { align-items: flex-start; }
.installer-alert p { margin: 0 0 3px; }
.installer-alert p:last-child { margin-bottom: 0; }
.requirements { display: flex; margin: 0 0 30px; padding: 14px; flex-wrap: wrap; gap: 7px; border: 1px solid var(--line); border-radius: 12px; background: #fbfaf9; }
.requirement { display: inline-flex; padding: 5px 8px; align-items: center; gap: 5px; border-radius: 15px; font-size: 8px; font-weight: 800; }
.requirement i { display: grid; width: 14px; height: 14px; border-radius: 50%; color: var(--white); font-size: 8px; font-style: normal; place-items: center; }
.requirement.ok { color: #315f48; background: #edf7f1; }
.requirement.ok i { background: var(--green); }
.requirement.fail { color: #8e2421; background: #fff0ef; }
.requirement.fail i { background: var(--red); }
.installer-form { display: grid; gap: 19px; }
.installer-form fieldset { display: grid; margin: 0; padding: 23px; gap: 9px; border: 1px solid var(--line); border-radius: var(--radius-md); }
.installer-form legend { padding: 0 8px 0 0; font-size: 12px; font-weight: 900; }
.installer-form legend span { display: inline-grid; width: 25px; height: 25px; margin-right: 7px; border-radius: 50%; color: var(--white); background: var(--ink); font-size: 9px; place-items: center; }
.installer-form label { display: block; margin: 5px 0 4px; font-size: 9px; font-weight: 850; }
.installer-form input { width: 100%; height: 47px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; outline: 0; background: #fff; font-size: 12px; }
.installer-form input:focus { border-color: var(--red); box-shadow: 0 0 0 4px rgba(228, 35, 32, .07); }
.installer-form small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.form-grid.two-one { grid-template-columns: minmax(0, 2fr) minmax(100px, 1fr); }
.installer-submit { width: 100%; }
.installer-submit:disabled { box-shadow: none; cursor: not-allowed; opacity: .45; }
.installer-result { min-height: 520px; text-align: center; }
.installer-result .installer-logo { margin-bottom: 70px; justify-content: center; }
.installer-result > h1 { margin-top: 10px; }
.installer-result > p { max-width: 540px; margin: 0 auto; color: var(--muted); }
.installer-result .inline-button { display: inline-flex; }
.install-success-list { display: flex; margin: 28px 0 5px; justify-content: center; flex-wrap: wrap; gap: 8px; }
.install-success-list span { padding: 7px 10px; border-radius: 20px; color: var(--green); background: #edf7f1; font-size: 9px; font-weight: 800; }
.installer-note { display: block; margin-top: 21px; color: var(--muted); font-size: 9px; }

@media (max-width: 1180px) {
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .dashboard-grid { grid-template-columns: 1fr; }
    .roadmap-list { grid-template-columns: repeat(2, 1fr); }
    .roadmap-item:nth-child(2) { border-right: 0; }
    .roadmap-item:nth-child(-n+2) { border-bottom: 1px solid #eeeae6; }
}

@media (max-width: 920px) {
    .login-grid { grid-template-columns: 1fr; }
    .login-story { min-height: 420px; padding: 34px 36px; }
    .story-content { padding: 50px 0 25px; }
    .story-content h1 { font-size: clamp(45px, 10vw, 68px); }
    .story-foot { display: none; }
    .login-panel { min-height: auto; padding: 62px 30px 30px; }
    .legal-copy { margin-top: 60px; }

    .sidebar { transform: translateX(-100%); transition: transform .25s ease; }
    .sidebar-open .sidebar { transform: translateX(0); }
    .sidebar-overlay { position: fixed; z-index: 30; inset: 0; display: block; visibility: hidden; background: rgba(18, 14, 11, .55); opacity: 0; transition: opacity .25s, visibility .25s; }
    .sidebar-open .sidebar-overlay { visibility: visible; opacity: 1; }
    .main-area { width: 100%; margin-left: 0; }
    .menu-button { display: block; }
}

@media (max-width: 640px) {
    .login-story { min-height: 350px; padding: 26px 22px; }
    .story-content { padding: 43px 0 10px; }
    .story-content h1 { margin-bottom: 16px; font-size: 41px; }
    .story-content p { font-size: 13px; }
    .login-panel { padding: 48px 22px 22px; }

    .topbar { height: 68px; padding: 0 17px; }
    .topbar-copy { display: none; }
    .user-menu { margin-left: auto; }
    .user-copy small { display: none; }
    .content-area { padding: 30px 17px 48px; }
    .page-heading { align-items: flex-start; flex-direction: column; }
    .foundation-badge { width: 100%; }
    .metric-grid { grid-template-columns: 1fr; }
    .metric-card { min-height: 158px; }
    .architecture-flow { align-items: stretch; grid-template-columns: 1fr; }
    .flow-arrow { transform: rotate(90deg); text-align: center; }
    .roadmap-list { grid-template-columns: 1fr; }
    .roadmap-item { border-right: 0; border-bottom: 1px solid #eeeae6; }
    .roadmap-item:last-child { border-bottom: 0; }
    .panel-heading { align-items: flex-start; flex-direction: column; }
    .installer-body { padding: 15px; }
    .installer-card { border-radius: 18px; }
    .installer-header { margin-bottom: 30px; }
    .form-grid,
    .form-grid.two-one { grid-template-columns: 1fr; }
    .installer-form fieldset { padding: 17px; }
    .installer-result .installer-logo { margin-bottom: 45px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Core Operacional v1.5.0 */
select, textarea { font: inherit; color: inherit; }
.alert p { margin: 0; }
.alert-success { border: 1px solid #cce5d6; color: #236142; background: #eff9f3; }
.alert-success span { background: var(--green); }
.secondary-button { display: inline-flex; min-height: 42px; padding: 0 16px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 9px; background: var(--white); font-size: 11px; font-weight: 850; cursor: pointer; }
.secondary-button:hover { border-color: #d3b5b2; color: var(--red); }
.secondary-button.full { width: 100%; }
.module-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(330px, .8fr); align-items: start; gap: 20px; }
.module-grid.wide-list { grid-template-columns: minmax(0, 2fr) minmax(350px, .85fr); }
.appointment-layout { grid-template-columns: minmax(0, 1.8fr) minmax(360px, .75fr); }
.table-panel, .form-panel { overflow: hidden; }
.form-panel { position: sticky; top: 18px; }
.panel-body { padding: 24px; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 11px 16px; color: var(--muted); background: #faf9f7; font-size: 8px; letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }
td { padding: 14px 16px; border-top: 1px solid #f0ece8; color: #4c453f; font-size: 10px; vertical-align: middle; }
td strong, td small { display: block; }
td strong { color: var(--ink); font-size: 11px; }
td small { max-width: 330px; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.empty-cell { padding: 45px 20px !important; color: var(--muted); text-align: center; }
.table-action { display: inline-flex; padding: 5px 8px; border: 0; border-radius: 7px; color: var(--red); background: #fff2f1; font-size: 9px; font-weight: 850; cursor: pointer; white-space: nowrap; }
.filter-inline { display: flex; align-items: center; gap: 7px; }
.filter-inline input, .filter-inline select, .filter-inline button { height: 34px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; outline: 0; background: var(--white); font-size: 9px; }
.filter-inline button { border-color: var(--ink); color: var(--white); background: var(--ink); cursor: pointer; }
.filter-inline.multi { flex-wrap: wrap; justify-content: flex-end; }
.module-form { display: grid; padding: 21px 22px 25px; gap: 12px; }
.module-form label { display: grid; gap: 5px; color: #443d37; font-size: 9px; font-weight: 850; }
.module-form input:not([type="checkbox"]), .module-form select, .module-form textarea, .professional-picker select, .user-card select, .user-card input { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; outline: 0; background: #fff; font-size: 11px; }
.module-form textarea { min-height: 82px; resize: vertical; }
.module-form input:focus, .module-form select:focus, .module-form textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(228,35,32,.07); }
.module-form small { color: var(--muted); font-size: 8px; font-weight: 500; }
.module-form .primary-button { width: 100%; }
.check-row { display: flex !important; min-height: 36px; padding: 8px 10px; align-items: center; gap: 8px !important; border: 1px solid var(--line); border-radius: 8px; background: #fbfaf9; cursor: pointer; }
.check-row input { width: 15px; height: 15px; accent-color: var(--red); }
.check-group { display: grid; margin: 0; padding: 13px; gap: 7px; border: 1px solid var(--line); border-radius: 10px; }
.check-group legend { padding: 0 6px; color: var(--ink); font-size: 9px; font-weight: 900; }
.card-list { display: grid; }
.list-card { display: flex; min-height: 84px; padding: 15px 18px; align-items: center; gap: 13px; border-top: 1px solid #f0ece8; }
.list-card:first-child { border-top: 0; }
.list-card-icon { display: grid; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px; color: var(--red); background: #fff2f1; font-weight: 900; place-items: center; }
.list-card-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.list-card-copy strong { font-size: 11px; }
.list-card-copy span { color: #4f4842; font-size: 9px; }
.list-card-copy small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.professional-picker { display: flex; margin-bottom: 20px; padding: 17px 20px; align-items: end; gap: 10px; }
.professional-picker label { display: grid; width: min(100%, 460px); gap: 5px; font-size: 9px; font-weight: 850; }
.settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 20px; }
.settings-grid .block-panel { grid-column: 1 / -1; }
.mini-list { display: grid; padding: 0 22px 20px; }
.mini-list > div { display: flex; padding: 10px 0; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid #f0ece8; }
.mini-list > small { padding: 12px 0; color: var(--muted); font-size: 8px; }
.mini-list span { display: flex; flex-direction: column; color: var(--muted); font-size: 8px; }
.mini-list strong { color: var(--ink); font-size: 10px; }
.danger-link { padding: 5px; border: 0; color: #9a3834; background: transparent; font-size: 8px; font-weight: 800; cursor: pointer; }
.appointment-list { display: grid; }
.appointment-card { display: grid; min-height: 95px; padding: 14px 17px; align-items: center; grid-template-columns: 62px minmax(150px,1fr) auto; gap: 12px; border-top: 1px solid #f0ece8; }
.appointment-card:first-child { border-top: 0; }
.appointment-card.status-cancelled, .appointment-card.status-no_show { opacity: .68; }
.appointment-time { display: flex; flex-direction: column; }
.appointment-time strong { color: var(--red); font-size: 19px; line-height: 1; }
.appointment-time small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.appointment-copy { display: flex; min-width: 0; flex-direction: column; }
.appointment-copy strong { font-size: 11px; }
.appointment-copy span { color: #4f4842; font-size: 9px; }
.appointment-copy small { color: var(--muted); font-size: 8px; }
.appointment-actions { display: flex; grid-column: 2 / -1; justify-content: flex-end; flex-wrap: wrap; gap: 5px; }
.inline-status { display: flex; gap: 4px; }
.inline-status input { width: 110px; height: 27px; padding: 0 6px; border: 1px solid var(--line); border-radius: 6px; font-size: 8px; }
.inline-status button { padding: 5px 7px; border: 1px solid var(--line); border-radius: 6px; color: #554d46; background: var(--white); font-size: 8px; font-weight: 800; cursor: pointer; }
.dashboard-appointments .appointment-card { grid-template-columns: 58px 1fr auto; }
.empty-state.compact { min-height: 260px; }
.role-grid { display: grid; padding: 17px; grid-template-columns: repeat(3,1fr); gap: 8px; border-top: 1px solid var(--line); background: #faf9f7; }
.role-grid > div { display: flex; padding: 10px; flex-direction: column; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.role-grid strong { font-size: 9px; }
.role-grid small { margin-top: 3px; color: var(--muted); font-size: 7px; }
.user-card { display: grid; grid-template-columns: 38px minmax(130px,1fr) 105px 130px 90px minmax(130px,.7fr) auto; }
.user-card .user-avatar { width: 38px; }
.user-card select, .user-card input { min-height: 34px; padding: 5px 7px; font-size: 8px; }
.update-panel { max-width: 820px; }

@media (max-width: 1250px) {
    .module-grid, .module-grid.wide-list, .appointment-layout { grid-template-columns: 1fr; }
    .form-panel { position: static; }
    .user-card { grid-template-columns: 38px minmax(150px,1fr) 110px 90px; }
    .user-card input { grid-column: 2 / 4; }
}
@media (max-width: 760px) {
    .settings-grid { grid-template-columns: 1fr; }
    .settings-grid .block-panel { grid-column: auto; }
    .filter-inline, .filter-inline.multi { width: 100%; align-items: stretch; flex-direction: column; }
    .filter-inline input, .filter-inline select, .filter-inline button { width: 100%; }
    .appointment-card { grid-template-columns: 54px 1fr; }
    .appointment-card > .status-pill { grid-column: 2; justify-self: start; }
    .appointment-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .user-card { grid-template-columns: 38px 1fr; }
    .user-card select, .user-card input, .user-card button { grid-column: 2; }
    .role-grid { grid-template-columns: 1fr; }
}

/* Financeiro v2.0.0 */
.status-pill.neutral { color: #716a64; background: #f1efec; }
.status-pill.danger { color: #a3332f; background: #ffebe9; }
.danger-button { display: inline-flex; min-height: 42px; padding: 0 15px; align-items: center; justify-content: center; border: 1px solid #f0c8c5; border-radius: 9px; color: #a3332f; background: #fff6f5; font-size: 9px; font-weight: 850; cursor: pointer; }
.finance-metrics { display: grid; margin-bottom: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.finance-metric { display: flex; min-height: 128px; padding: 21px 23px; flex-direction: column; justify-content: center; border: 1px solid var(--line); border-radius: 13px; background: var(--white); box-shadow: var(--shadow); }
.finance-metric > span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.finance-metric > strong { margin: 8px 0 3px; color: var(--ink); font-size: clamp(23px, 2.5vw, 34px); line-height: 1; }
.finance-metric > small { color: var(--muted); font-size: 9px; }
.finance-metric.danger { border-bottom: 3px solid #d4564f; }
.finance-metric.danger > strong { color: #a3332f; }
.finance-metric.success { border-bottom: 3px solid var(--green); }
.finance-metric.success > strong { color: #26704f; }
.finance-tools-grid { display: grid; margin-bottom: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.finance-tool-card { position: static; }
.guard-callout.compact { margin: 0; padding: 13px 14px; }
.guard-callout.compact p { font-size: 8px; }
.finance-list-panel { margin-bottom: 20px; overflow: hidden; }
.finance-filter-heading { align-items: flex-end; }
.receivable-list { display: grid; }
.receivable-card { border-top: 1px solid #f0ece8; border-left: 3px solid transparent; }
.receivable-card:first-child { border-top: 0; }
.receivable-card.status-overdue { border-left-color: #d4564f; background: #fffdfd; }
.receivable-card.status-paid { border-left-color: var(--green); }
.receivable-card.status-cancelled { opacity: .65; }
.receivable-main { display: grid; min-height: 94px; padding: 15px 18px; align-items: center; grid-template-columns: 55px minmax(220px, 1.6fr) minmax(120px, .5fr) minmax(105px, .4fr); gap: 14px; }
.receivable-id { display: flex; flex-direction: column; }
.receivable-id span { color: var(--red); font-size: 11px; font-weight: 900; }
.receivable-id small { margin-top: 3px; color: var(--muted); font-size: 7px; text-transform: uppercase; }
.receivable-copy, .receivable-values, .receivable-state { display: flex; min-width: 0; flex-direction: column; }
.receivable-copy strong, .receivable-values strong { color: var(--ink); font-size: 11px; }
.receivable-copy span { overflow: hidden; color: #4f4842; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.receivable-copy small, .receivable-values small, .receivable-state small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.receivable-values { align-items: flex-end; }
.receivable-values strong { font-size: 15px; }
.receivable-state { align-items: flex-end; }
.receivable-details { border-top: 1px dashed #eee8e3; background: #fbfaf9; }
.receivable-details summary { padding: 9px 18px; color: #645c55; font-size: 8px; font-weight: 850; cursor: pointer; list-style-position: inside; }
.receivable-detail-grid { display: grid; padding: 5px 18px 20px; grid-template-columns: minmax(260px, .75fr) minmax(360px, 1.25fr); gap: 20px; }
.receivable-facts { display: grid; align-content: start; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.receivable-facts > span { display: flex; padding: 10px; flex-direction: column; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.receivable-facts small { color: var(--muted); font-size: 7px; text-transform: uppercase; }
.receivable-facts strong { margin-top: 3px; font-size: 9px; }
.receivable-facts p { grid-column: 1 / -1; margin: 0; padding: 11px; color: #514a44; border: 1px solid var(--line); border-radius: 8px; background: var(--white); font-size: 9px; }
.receivable-facts p small { display: block; margin-bottom: 4px; }
.compact-action-form { display: grid; padding: 14px; gap: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.compact-action-form > strong { font-size: 10px; }
.compact-action-form label { display: grid; gap: 4px; color: #443d37; font-size: 8px; font-weight: 850; }
.compact-action-form input, .compact-action-form select, .compact-action-form textarea { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--white); font: inherit; font-size: 9px; }
.compact-action-form textarea { min-height: 52px; resize: vertical; }
.compact-action-form .primary-button { min-height: 40px; }
.receivable-actions { display: flex; margin-top: 10px; justify-content: flex-end; gap: 7px; }
.payments-panel { overflow: hidden; }
.inline-reversal { display: flex; min-width: 180px; align-items: center; gap: 4px; }
.inline-reversal input { width: 120px; height: 30px; padding: 0 7px; border: 1px solid var(--line); border-radius: 6px; font-size: 8px; }
.rule-callout { margin: 16px 18px; }

@media (max-width: 1100px) {
    .finance-tools-grid { grid-template-columns: 1fr; }
    .receivable-main { grid-template-columns: 50px minmax(180px, 1fr) 120px; }
    .receivable-state { grid-column: 2 / -1; align-items: flex-start; }
    .receivable-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .finance-metrics { grid-template-columns: 1fr; }
    .finance-metric { min-height: 110px; }
    .receivable-main { grid-template-columns: 44px 1fr; }
    .receivable-values, .receivable-state { grid-column: 2; align-items: flex-start; }
    .receivable-values { margin-top: 4px; }
    .receivable-detail-grid { padding: 5px 12px 16px; }
    .receivable-facts { grid-template-columns: 1fr; }
    .receivable-facts p { grid-column: auto; }
    .receivable-actions { align-items: stretch; flex-direction: column; }
    .receivable-actions form, .receivable-actions button { width: 100%; }
    .inline-reversal { align-items: stretch; flex-direction: column; }
    .inline-reversal input { width: 100%; }
}

/* Comunicações via CIH v3.0.0 */
.primary-button.full { width: 100%; }
.communication-metrics { display: grid; margin-bottom: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.communication-metrics article { display: flex; min-height: 112px; padding: 19px 20px; flex-direction: column; justify-content: center; border: 1px solid var(--line); border-bottom: 3px solid #d8d1ca; border-radius: 13px; background: var(--white); box-shadow: var(--shadow); }
.communication-metrics article.success { border-bottom-color: var(--green); }
.communication-metrics article.danger { border-bottom-color: #d4564f; }
.communication-metrics span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.communication-metrics strong { margin: 6px 0 2px; font-size: 28px; line-height: 1; }
.communication-metrics small { color: var(--muted); font-size: 8px; }
.communication-tools { display: grid; margin-bottom: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; }
.communication-settings-panel, .communication-operations-panel { overflow: hidden; }
.communication-operations { display: grid; padding: 21px 22px 25px; gap: 12px; }
.scheduler-details { margin-top: 5px; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: #fbfaf9; }
.scheduler-details summary { font-size: 9px; font-weight: 900; cursor: pointer; }
.scheduler-details p, .scheduler-details small { color: var(--muted); font-size: 8px; }
.scheduler-details code { overflow-wrap: anywhere; color: var(--ink); }
.scheduler-details label { display: grid; margin: 9px 0; gap: 4px; font-size: 8px; font-weight: 850; }
.scheduler-details input { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--white); font: inherit; font-size: 8px; }
.templates-panel, .communication-events-panel { margin-bottom: 20px; overflow: hidden; }
.template-grid { display: grid; padding: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border-top: 1px solid var(--line); }
.template-card { border: 1px solid var(--line); border-radius: 10px; background: #fbfaf9; }
.template-card > summary { display: flex; min-height: 66px; padding: 12px 14px; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; list-style: none; }
.template-card > summary::-webkit-details-marker { display: none; }
.template-card > summary > span:first-child { display: flex; flex-direction: column; }
.template-card > summary strong { font-size: 10px; }
.template-card > summary small { color: var(--muted); font-size: 8px; }
.template-card[open] > summary { border-bottom: 1px solid var(--line); background: var(--white); }
.template-card .module-form { padding: 14px; }
.communication-filter-heading { align-items: flex-end; }
.communication-event-list { display: grid; }
.communication-event { display: grid; min-height: 88px; padding: 14px 17px; align-items: center; grid-template-columns: 62px minmax(220px, 1fr) minmax(130px, auto) auto; gap: 13px; border-top: 1px solid #f0ece8; border-left: 3px solid transparent; }
.communication-event:first-child { border-top: 0; }
.communication-event.status-failed { border-left-color: #d4564f; background: #fffdfd; }
.communication-event.status-delivered, .communication-event.status-sent { border-left-color: var(--green); }
.communication-event.status-cancelled, .communication-event.status-skipped { opacity: .68; }
.communication-event-time, .communication-event-copy, .communication-event-state { display: flex; min-width: 0; flex-direction: column; }
.communication-event-time strong { color: var(--red); font-size: 18px; line-height: 1; }
.communication-event-time small, .communication-event-copy small, .communication-event-state small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.communication-event-copy strong { font-size: 10px; }
.communication-event-copy span { overflow: hidden; color: #4f4842; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.communication-event-copy .event-error { color: #a3332f; }
.communication-event-state { align-items: flex-end; }

@media (max-width: 1100px) {
    .communication-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .communication-tools { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .communication-metrics, .template-grid { grid-template-columns: 1fr; }
    .communication-event { grid-template-columns: 48px 1fr; }
    .communication-event-state, .communication-event form { grid-column: 2; align-items: flex-start; }
}

/* Homologação final e produção v5.0.0 */
.status-pill.danger { color:#982f2a; background:#fdebea; }
.report-filter-panel, .audit-filter-panel { margin-bottom:20px; overflow:hidden; }
.report-filter { display:grid; padding:18px 20px; grid-template-columns:repeat(3,minmax(150px,1fr)) auto; align-items:end; gap:12px; }
.report-filter label { display:grid; gap:5px; color:#514941; font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.05em; }
.report-filter input, .report-filter select { width:100%; min-height:41px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; font:inherit; font-size:9px; }
.report-filter .secondary-button { min-height:41px; }
.report-metric-grid { display:grid; margin-bottom:20px; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.report-metric-grid article, .audit-integrity-grid article { display:flex; min-height:115px; padding:18px; flex-direction:column; justify-content:center; border:1px solid var(--line); border-bottom:3px solid var(--gold); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.report-metric-grid article.success, .audit-integrity-grid article.success { border-bottom-color:var(--green); }
.report-metric-grid span, .audit-integrity-grid span { color:var(--muted); font-size:8px; font-weight:900; letter-spacing:.09em; }
.report-metric-grid strong, .audit-integrity-grid strong { margin:6px 0 3px; font-size:23px; line-height:1; }
.report-metric-grid small, .audit-integrity-grid small { color:var(--muted); font-size:8px; }
.report-dashboard-grid { grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); }
.report-series { display:grid; padding:18px 22px 24px; gap:12px; }
.report-series-row { display:grid; grid-template-columns:55px minmax(100px,1fr) 38px 95px; align-items:center; gap:10px; font-size:9px; }
.report-series-row > div { height:9px; overflow:hidden; border-radius:10px; background:#eeeae6; }
.report-series-row i { display:block; height:100%; border-radius:10px; background:linear-gradient(90deg,var(--red),var(--coral)); }
.report-series-row strong { text-align:right; }
.report-series-row small { color:var(--muted); text-align:right; }
.report-facts { display:grid; padding:20px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.report-facts span { display:flex; min-height:95px; padding:14px; flex-direction:column; justify-content:center; border:1px solid var(--line); border-radius:12px; background:#fbfaf9; }
.report-facts small { color:var(--muted); font-size:8px; }
.report-facts strong { margin-top:6px; font-size:22px; }
.report-table-panel { overflow:hidden; }
.table-wrap { overflow-x:auto; }
.table-wrap table { width:100%; border-collapse:collapse; }
.table-wrap th, .table-wrap td { padding:12px 14px; border-top:1px solid #f0ece8; font-size:9px; text-align:left; white-space:nowrap; }
.table-wrap th { color:var(--muted); background:#fbfaf9; font-size:7px; letter-spacing:.06em; text-transform:uppercase; }
.privacy-tools-grid, .privacy-bottom-grid, .operations-grid, .operations-history-grid { display:grid; margin-bottom:20px; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:20px; }
.privacy-consent-panel, .privacy-requests-panel, .processing-panel, .checklist-panel { margin-bottom:20px; overflow:hidden; }
.privacy-consent-form { padding:20px 22px; }
.privacy-request-list { display:grid; }
.privacy-request { display:grid; padding:16px 20px; grid-template-columns:minmax(240px,1fr) auto minmax(220px,.65fr) auto; align-items:center; gap:14px; border-top:1px solid #f0ece8; }
.privacy-request:first-child { border-top:0; }
.privacy-request > div:first-child { display:flex; min-width:0; flex-direction:column; }
.privacy-request > div:first-child small { color:var(--red); font-size:7px; font-weight:850; }
.privacy-request > div:first-child strong { font-size:10px; }
.privacy-request > div:first-child span, .privacy-request > div:first-child p { margin:2px 0 0; color:var(--muted); font-size:8px; }
.privacy-request .compact-action-form { min-width:220px; padding:10px; }
.simple-list { display:grid; padding:5px 20px 15px; }
.simple-list > div { display:flex; min-height:60px; padding:10px 0; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid #f0ece8; }
.simple-list > div:last-child { border-bottom:0; }
.simple-list > div > span:first-child { display:flex; min-width:0; flex-direction:column; }
.simple-list strong { font-size:9px; }
.simple-list small { color:var(--muted); font-size:8px; }
.list-empty { padding:24px 0; color:var(--muted); font-size:9px; text-align:center; }
.retention-list { display:grid; padding:10px 20px 20px; }
.retention-list form { display:grid; padding:12px 0; grid-template-columns:minmax(180px,1fr) 90px 110px auto; align-items:center; gap:9px; border-bottom:1px solid #f0ece8; }
.retention-list form > span { display:flex; flex-direction:column; }
.retention-list strong { font-size:9px; text-transform:capitalize; }
.retention-list small { color:var(--muted); font-size:7px; }
.retention-list label { display:flex; align-items:center; gap:4px; color:var(--muted); font-size:8px; }
.retention-list input, .retention-list select { width:100%; min-height:34px; padding:5px 7px; border:1px solid var(--line); border-radius:7px; background:#fff; font:inherit; font-size:8px; }
.processing-grid { display:grid; padding:18px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.processing-grid article { display:flex; min-height:190px; padding:17px; flex-direction:column; border:1px solid var(--line); border-radius:13px; background:#fbfaf9; }
.processing-grid strong { font-size:11px; }
.processing-grid p { margin:8px 0 12px; color:#514941; font-size:9px; }
.processing-grid small { margin-top:6px; color:var(--muted); font-size:8px; }
.readiness-badge { display:flex; min-width:130px; padding:13px 18px; align-items:center; gap:10px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.readiness-badge strong { font-size:25px; }
.readiness-badge span { font-size:9px; font-weight:900; text-transform:uppercase; }
.readiness-badge.healthy { border-color:#cfe5d8; color:var(--green); background:#f4faf6; }
.readiness-badge.attention { border-color:#eed9af; color:#95630f; background:#fff9ec; }
.readiness-badge.critical { border-color:#edc5c2; color:#9c312d; background:#fff5f4; }
.readiness-checks { display:grid; }
.readiness-checks > div { display:grid; min-height:67px; padding:12px 18px; grid-template-columns:31px 1fr auto; align-items:center; gap:11px; border-top:1px solid #f0ece8; }
.readiness-checks > div:first-child { border-top:0; }
.readiness-checks > div > span:nth-child(2) { display:flex; flex-direction:column; }
.readiness-checks strong { font-size:9px; }
.readiness-checks small { color:var(--muted); font-size:8px; }
.check-dot { display:grid; width:28px; height:28px; border-radius:50%; color:#fff; font-size:10px; font-weight:900; place-items:center; }
.check-dot.pass { background:var(--green); }
.check-dot.warn { background:var(--gold); }
.check-dot.fail { background:#b83c36; }
.operations-action-body { padding:20px 22px 24px; }
.operations-action-body .guard-callout { margin:0 0 17px; }
.operations-action-body dl { display:grid; margin:0; }
.operations-action-body dl div { display:flex; padding:10px 0; justify-content:space-between; border-bottom:1px solid #f0ece8; font-size:9px; }
.operations-action-body dt { color:var(--muted); }
.operations-action-body dd { margin:0; font-weight:900; }
.checklist-list { display:grid; }
.checklist-list form { display:grid; padding:14px 18px; grid-template-columns:minmax(260px,1fr) 145px minmax(220px,.75fr) auto; align-items:center; gap:12px; border-top:1px solid #f0ece8; }
.checklist-list form:first-child { border-top:0; }
.checklist-list form > span { display:flex; flex-direction:column; }
.checklist-list small { color:var(--red); font-size:7px; font-weight:900; text-transform:uppercase; }
.checklist-list strong { font-size:9px; }
.checklist-list em { margin-top:3px; color:var(--muted); font-size:7px; font-style:normal; }
.checklist-list select, .checklist-list textarea { width:100%; min-height:38px; padding:7px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; font:inherit; font-size:8px; }
.audit-filter { grid-template-columns:repeat(5,minmax(120px,1fr)) auto; }
.audit-integrity-grid { display:grid; margin-bottom:20px; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.audit-integrity-grid article.warning { border-bottom-color:var(--gold); }
.audit-integrity-grid article.danger { border-bottom-color:#b83c36; }
.audit-log-panel { overflow:hidden; }
.audit-list { display:grid; }
.audit-list details { border-top:1px solid #f0ece8; }
.audit-list details:first-child { border-top:0; }
.audit-list summary { display:grid; min-height:70px; padding:13px 18px; grid-template-columns:125px 1fr auto; align-items:center; gap:14px; cursor:pointer; list-style:none; }
.audit-list summary::-webkit-details-marker { display:none; }
.audit-time, .audit-copy { display:flex; min-width:0; flex-direction:column; }
.audit-time strong, .audit-copy strong { font-size:9px; }
.audit-time small, .audit-copy small { color:var(--muted); font-size:8px; }
.audit-details { display:grid; padding:12px 18px 18px 157px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; background:#fbfaf9; }
.audit-details span { display:flex; min-width:0; flex-direction:column; }
.audit-details small { color:var(--muted); font-size:7px; text-transform:uppercase; }
.audit-details code { overflow:hidden; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.audit-details pre { grid-column:1/-1; max-height:260px; margin:0; overflow:auto; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:8px; white-space:pre-wrap; }

@media (max-width: 1180px) {
    .report-metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .processing-grid { grid-template-columns:1fr; }
    .privacy-request { grid-template-columns:1fr auto; }
    .privacy-request .compact-action-form { grid-column:1/-1; }
    .checklist-list form { grid-template-columns:1fr 140px; }
    .checklist-list textarea { grid-column:1/-1; }
}
@media (max-width: 820px) {
    .report-filter, .audit-filter { grid-template-columns:1fr; }
    .report-metric-grid, .audit-integrity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .report-dashboard-grid, .privacy-tools-grid, .privacy-bottom-grid, .operations-grid, .operations-history-grid { grid-template-columns:1fr; }
    .retention-list form { grid-template-columns:1fr 100px; }
    .retention-list form select, .retention-list form button { grid-column:auto; }
    .audit-details { padding-left:18px; }
}
@media (max-width: 560px) {
    .report-metric-grid, .audit-integrity-grid { grid-template-columns:1fr; }
    .report-series-row { grid-template-columns:45px 1fr 30px; }
    .report-series-row small { grid-column:2/-1; }
    .privacy-request { grid-template-columns:1fr; }
    .checklist-list form { grid-template-columns:1fr; }
    .audit-list summary { grid-template-columns:1fr auto; }
    .audit-copy { grid-column:1/-1; }
    .audit-details { grid-template-columns:1fr; }
    .retention-list form { grid-template-columns:1fr; }
}

/* Estabilização pós-produção e operação assistida v5.1.0 */
.assisted-state { display:flex; min-width:145px; padding:13px 18px; align-items:center; gap:10px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.assisted-state strong { font-size:25px; }
.assisted-state span { font-size:8px; font-weight:900; text-transform:uppercase; }
.assisted-state.healthy { color:var(--green); border-color:#cfe5d8; background:#f4faf6; }
.assisted-state.attention { color:#9c312d; border-color:#edc5c2; background:#fff5f4; }
.assisted-metrics { display:grid; margin-bottom:20px; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.assisted-metrics article { display:flex; min-height:112px; padding:18px; flex-direction:column; justify-content:center; border:1px solid var(--line); border-bottom:3px solid var(--green); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.assisted-metrics article.warning { border-bottom-color:var(--gold); }
.assisted-metrics article.danger { border-bottom-color:#b83c36; }
.assisted-metrics span { color:var(--muted); font-size:8px; font-weight:900; letter-spacing:.08em; }
.assisted-metrics strong { margin:6px 0 3px; font-size:26px; line-height:1; }
.assisted-metrics small { color:var(--muted); font-size:8px; }
.assisted-tools-grid { display:grid; margin-bottom:20px; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:20px; }
.assisted-action-body { padding:20px 22px 24px; }
.assisted-action-body .guard-callout { margin:0 0 14px; }
.assisted-action-body dl { display:grid; margin:0 0 16px; }
.assisted-action-body dl div { display:flex; padding:9px 0; justify-content:space-between; border-bottom:1px solid #f0ece8; font-size:9px; }
.assisted-action-body dt { color:var(--muted); }
.assisted-action-body dd { margin:0; font-weight:900; }
.assisted-settings-form { display:grid; padding:18px 20px 22px; gap:14px; }
.assisted-settings-form label, .assisted-incident-form label { display:grid; gap:5px; color:#514941; font-size:8px; font-weight:850; }
.assisted-settings-form input, .assisted-incident-form input, .assisted-incident-form select, .assisted-incident-form textarea { width:100%; min-height:39px; padding:7px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; font:inherit; font-size:9px; }
.assisted-incident-form textarea { resize:vertical; }
.assisted-alerts-panel, .incidents-panel, .queue-reprocess-panel { margin-bottom:20px; overflow:hidden; }
.assisted-alert-list { display:grid; }
.alert-row { display:grid; min-height:95px; padding:14px 18px; grid-template-columns:34px minmax(240px,1fr) auto minmax(210px,.55fr); align-items:center; gap:13px; border-top:1px solid #f0ece8; border-left:3px solid transparent; }
.alert-row:first-child { border-top:0; }
.alert-row.severity-critical { border-left-color:#b83c36; background:#fffdfd; }
.alert-row.severity-warning { border-left-color:var(--gold); }
.alert-row.status-resolved { opacity:.68; border-left-color:var(--green); }
.alert-symbol { display:grid; width:30px; height:30px; border-radius:50%; color:#fff; background:var(--gold); font-size:11px; font-weight:900; place-items:center; }
.severity-critical .alert-symbol { background:#b83c36; }
.status-resolved .alert-symbol { background:var(--green); }
.alert-row > div { display:flex; min-width:0; flex-direction:column; }
.alert-row > div small { color:var(--red); font-size:7px; font-weight:900; text-transform:uppercase; }
.alert-row > div strong { font-size:10px; }
.alert-row > div p { margin:3px 0; color:#514941; font-size:9px; }
.alert-row > div em { color:var(--muted); font-size:7px; font-style:normal; }
.alert-row form { display:grid; grid-template-columns:1fr auto; gap:6px; }
.alert-row form input { min-width:0; height:32px; padding:5px 7px; border:1px solid var(--line); border-radius:7px; font-size:8px; }
.alert-row form .table-action:first-of-type { grid-column:1/-1; justify-self:end; }
.danger-text { color:#9c312d; }
.assisted-incident-form { padding:18px 20px 22px; }
.metric-history { display:grid; padding:10px 20px 20px; }
.metric-history > div { display:grid; min-height:54px; grid-template-columns:75px minmax(80px,1fr) 50px 58px; align-items:center; gap:10px; border-bottom:1px solid #f0ece8; }
.metric-history > div > span { display:flex; flex-direction:column; }
.metric-history strong, .metric-history b { font-size:9px; }
.metric-history small { color:var(--muted); font-size:7px; }
.metric-history progress { width:100%; height:7px; overflow:hidden; border:0; border-radius:10px; background:#eeeae6; appearance:none; }
.metric-history progress::-webkit-progress-bar { border-radius:10px; background:#eeeae6; }
.metric-history progress::-webkit-progress-value { border-radius:10px; background:linear-gradient(90deg,var(--gold),var(--red)); }
.metric-history progress::-moz-progress-bar { border-radius:10px; background:linear-gradient(90deg,var(--gold),var(--red)); }
.incident-list { display:grid; }
.incident-card { border-top:1px solid #f0ece8; }
.incident-card:first-child { border-top:0; }
.incident-card summary { display:grid; min-height:76px; padding:14px 18px; grid-template-columns:1fr auto; align-items:center; gap:14px; cursor:pointer; list-style:none; }
.incident-card summary::-webkit-details-marker { display:none; }
.incident-card summary > span:first-child { display:flex; min-width:0; flex-direction:column; }
.incident-card summary small { color:var(--red); font-size:7px; font-weight:850; }
.incident-card summary strong { font-size:10px; }
.incident-card summary em { margin-top:3px; color:var(--muted); font-size:8px; font-style:normal; }
.incident-detail { display:grid; padding:16px 18px 20px; grid-template-columns:minmax(250px,1fr) minmax(300px,.8fr); gap:18px; background:#fbfaf9; }
.incident-detail > div:first-child { padding:14px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.incident-detail > div:first-child small { color:var(--muted); font-size:7px; font-weight:900; text-transform:uppercase; }
.incident-detail > div:first-child p { margin:6px 0 15px; color:#514941; font-size:9px; line-height:1.6; }
.queue-reprocess-panel td { vertical-align:middle; white-space:normal; }
.queue-reprocess-panel td > small, .queue-reprocess-panel td > strong { display:block; }
.queue-error { display:block; max-width:330px; color:#8b3733; font-size:8px; }
.inline-reprocess { display:flex; min-width:250px; gap:6px; }
.inline-reprocess input { min-width:150px; height:32px; padding:5px 7px; border:1px solid var(--line); border-radius:7px; font-size:8px; }
.assisted-queue-note { margin:16px 18px; }

@media (max-width:1180px) {
    .assisted-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .alert-row { grid-template-columns:34px 1fr auto; }
    .alert-row form { grid-column:2/-1; }
}
@media (max-width:820px) {
    .assisted-tools-grid { grid-template-columns:1fr; }
    .assisted-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .incident-detail { grid-template-columns:1fr; }
}
@media (max-width:560px) {
    .assisted-metrics { grid-template-columns:1fr; }
    .alert-row { grid-template-columns:30px 1fr; }
    .alert-row > .status-pill, .alert-row form { grid-column:2; justify-self:start; }
    .alert-row form { grid-template-columns:1fr; width:100%; }
    .metric-history > div { grid-template-columns:60px 1fr 42px; }
    .metric-history > div > span:last-child { grid-column:3; }
    .inline-reprocess { min-width:190px; align-items:stretch; flex-direction:column; }
}
/* Ecossistema V3 / PWA: personalização controlada e áreas seguras para dispositivos. */
:root{--tenant-primary:#0f766e;--tenant-secondary:#d6a44a}
.topbar{padding-top:max(0px,env(safe-area-inset-top))}
.content-area{padding-bottom:max(24px,env(safe-area-inset-bottom))}
.install-app-button{border:1px solid color-mix(in srgb,var(--tenant-primary) 35%,#fff);background:#fff;color:var(--tenant-primary);border-radius:10px;padding:10px 14px;min-height:44px;font-weight:750;cursor:pointer}
.environment-banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff7db;border:1px solid #efd583;color:#654c0a;border-radius:14px;padding:12px 16px;margin-bottom:18px}.environment-banner span{font-size:.9rem}
.pwa-dialog{position:fixed;inset:0;background:#102d2a80;z-index:1000;display:grid;place-items:center;padding:20px}.pwa-dialog[hidden],.update-toast[hidden]{display:none}.pwa-dialog>div{position:relative;background:#fff;border-radius:20px;padding:28px;max-width:420px;box-shadow:0 24px 80px #102d2a40}.pwa-dialog button{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:28px}.pwa-dialog h2{margin:0 32px 8px 0}.pwa-dialog p{margin:0;color:#526b68}
.update-toast{position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom));z-index:900;display:flex;align-items:center;gap:14px;background:#173f3b;color:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 16px 48px #102d2a55}.update-toast button{border:0;border-radius:9px;background:#fff;color:#0f766e;padding:9px 12px;font-weight:750}
.account-links{display:grid;gap:12px}.account-links a,.account-links button,.account-links span{display:flex;justify-content:space-between;align-items:center;border:1px solid #dce7e5;border-radius:12px;padding:13px 14px;color:#294744;background:#fff;text-decoration:none;text-align:left}.account-links button{font-weight:700;cursor:pointer}.details-list{display:grid;gap:14px;margin:0}.details-list div{display:grid;gap:3px}.details-list dt{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#718683}.details-list dd{margin:0;color:#294744}
@media(max-width:720px){input,select,textarea,button{font-size:16px}.topbar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.install-app-button{margin-left:auto}.user-copy{display:none}.environment-banner{align-items:flex-start;flex-direction:column}.update-toast{left:12px;right:12px;justify-content:space-between}.table-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}}
