@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');

:root {
  --ink: #132018;
  --muted: #68756c;
  --line: #e3e9e5;
  --paper: #ffffff;
  --canvas: #f4f7f4;
  --green: #22a860;
  --green-dark: #157a45;
  --green-soft: #e7f7ee;
  --orange: #ff9d43;
  --red: #d94b5b;
  --shadow: 0 14px 45px rgba(22, 49, 31, .08);
  --radius: 20px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--canvas); font: 15px/1.5 'DM Sans', Arial, sans-serif; }
a { color: var(--green-dark); text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, .button { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: 'Manrope', 'DM Sans', sans-serif; line-height: 1.18; }
small { color: var(--muted); }

.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; width: 258px; flex-direction: column; border-right: 1px solid #e1e7e2; background: #fbfdfb; padding: 26px 18px 18px; }
.brand { display: flex; align-items: center; gap: 11px; color: var(--ink); font-family: 'Manrope', sans-serif; font-size: 19px; font-weight: 700; }
.brand b { color: var(--green); }
.brand-mark { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: linear-gradient(145deg, #31c873, #138249); color: #fff; font-size: 13px; font-weight: 800; box-shadow: 0 8px 22px rgba(34,168,96,.28); }
.brand-large { margin-bottom: 34px; font-size: 22px; }
.brand-large .brand-mark { width: 46px; height: 46px; }
.workspace-card { margin: 30px 0 20px; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.workspace-card span, .workspace-card small, .sidebar-footer small { display: block; font-size: 11px; }
.workspace-card strong { display: block; overflow: hidden; margin: 3px 0; text-overflow: ellipsis; white-space: nowrap; }
.main-nav { display: grid; gap: 3px; overflow-y: auto; }
.main-nav a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 11px; color: #4d5c52; font-weight: 600; }
.main-nav a span { display: grid; width: 23px; place-items: center; color: #829087; font-size: 16px; }
.main-nav a:hover, .main-nav a.active { background: var(--green-soft); color: var(--green-dark); }
.main-nav a.active span { color: var(--green); }
.sidebar-footer { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; margin-top: auto; padding: 16px 6px 0; border-top: 1px solid var(--line); }
.sidebar-footer strong { display: block; max-width: 120px; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.avatar { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: #dff5e8; color: var(--green-dark); font-weight: 800; }
.icon-button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 21px; }

.main-column { min-height: 100vh; margin-left: 258px; }
.topbar { display: flex; min-height: 102px; align-items: center; gap: 20px; justify-content: space-between; padding: 22px 42px; border-bottom: 1px solid #e3e8e4; background: rgba(244,247,244,.9); backdrop-filter: blur(12px); }
.topbar h1 { margin: 0; font-size: clamp(22px, 3vw, 30px); }
.topbar .eyebrow { margin-bottom: 3px; }
.content { max-width: 1600px; margin: 0 auto; padding: 32px 42px 60px; }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 24px; }
.impersonation-bar { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px 18px; background: #fff0d9; color: #8a4f13; font-size: 13px; font-weight: 600; }
.impersonation-bar form { display: inline; }
.impersonation-bar button { padding: 2px 8px; border: 0; background: transparent; color: #8a4f13; text-decoration: underline; cursor: pointer; }

.eyebrow { margin-bottom: 8px; color: var(--green-dark); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.muted { color: var(--muted); }
.pill { display: inline-flex; align-items: center; width: max-content; padding: 6px 10px; border-radius: 999px; background: var(--green-soft); color: var(--green-dark); font-size: 11px; font-weight: 700; }
.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; padding: 0 18px; border: 1px solid transparent; border-radius: 12px; cursor: pointer; font-weight: 700; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button:disabled { cursor: not-allowed; opacity: .45; transform: none; }
.button.primary { background: var(--green); color: #fff; box-shadow: 0 9px 20px rgba(34,168,96,.2); }
.button.primary:hover { background: var(--green-dark); }
.button.secondary { border-color: var(--line); background: #fff; color: var(--ink); box-shadow: none; }
.button.ghost { background: var(--green-soft); color: var(--green-dark); }
.button.light { background: #fff; color: var(--green-dark); }
.button.compact { min-height: 36px; padding: 0 12px; font-size: 13px; }
.button.wide { width: 100%; }

.alert { margin-bottom: 18px; padding: 13px 16px; border-radius: 12px; font-weight: 600; }
.alert.success { border: 1px solid #bde8ce; background: #eaf9f0; color: #17643a; }
.alert.danger { border: 1px solid #f0c7cc; background: #fff0f2; color: #963341; }
.alert.warning { border: 1px solid #efd5a8; background: #fff8e9; color: #8c5518; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); padding: 24px; box-shadow: 0 7px 28px rgba(24,47,31,.035); }
.panel-header, .page-actions, .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.panel-header { margin-bottom: 20px; }
.panel-header h3, .section-heading h4 { margin: 0; }
.panel-header a { font-weight: 700; }
.page-actions { margin-bottom: 22px; }
.page-actions p { margin: 0; color: var(--muted); }
.section-heading { margin: 28px 0 14px; padding-top: 22px; border-top: 1px solid var(--line); }
.section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.section-heading h4 { font-size: 16px; }
.full { grid-column: 1 / -1; }

.hero-strip { display: flex; min-height: 205px; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 22px; padding: 36px 40px; border-radius: 25px; background: radial-gradient(circle at 90% 10%, rgba(255,255,255,.16), transparent 28%), linear-gradient(125deg, #126d40, #22a860); color: #fff; overflow: hidden; box-shadow: 0 20px 50px rgba(21,122,69,.18); }
.hero-strip .pill { background: rgba(255,255,255,.14); color: #fff; }
.hero-strip h2 { margin: 14px 0 7px; font-size: clamp(27px, 4vw, 40px); }
.hero-strip p { margin: 0; color: #dff5e8; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 22px; }
.metric-grid.three { grid-template-columns: repeat(3, 1fr); }
.metric-card { min-height: 142px; padding: 21px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.metric-card span, .metric-card small { display: block; }
.metric-card span { color: var(--muted); font-size: 13px; font-weight: 600; }
.metric-card strong { display: block; margin: 15px 0 5px; font: 800 clamp(23px, 3vw, 31px)/1 'Manrope'; }
.metric-card.accent-card { border-color: #2cab6a; background: linear-gradient(145deg, #1c8d53, #30b971); color: #fff; }
.metric-card.accent-card span, .metric-card.accent-card small { color: #dff5e8; }
.metric-card.loss-card { border-color: #f0c9ce; background: #fff5f6; }
.metric-card.loss-card strong { color: var(--red); }
.two-panel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-bottom: 22px; }
.list-stack { display: grid; gap: 9px; }
.stock-row, .order-row, .rank-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid #edf0ed; }
.stock-row:last-child, .order-row:last-child, .rank-row:last-child { border-bottom: 0; }
.stock-row > div:nth-child(2), .order-row > div:first-child, .rank-row > div:nth-child(2) { flex: 1; }
.stock-row strong, .stock-row small, .order-row strong, .order-row small, .rank-row strong, .rank-row small { display: block; }
.color-dot { flex: 0 0 auto; width: 13px; height: 13px; border: 2px solid #fff; border-radius: 50%; background: var(--dot, #94a3b8); box-shadow: 0 0 0 1px #cbd5ce; }
.progress-wrap { width: 42%; }
.progress-wrap > span, .big-progress > span { display: block; height: 7px; overflow: hidden; border-radius: 99px; background: #e9eeea; }
.progress-wrap i, .big-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green-dark), #39c87c); }
.progress-wrap small { margin-top: 4px; text-align: right; }
.empty-state { padding: 30px 15px; color: var(--muted); text-align: center; }

.status { display: inline-flex; align-items: center; justify-content: center; padding: 5px 9px; border-radius: 999px; background: #edf0ee; color: #617066; font-size: 10px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.status.active, .status.open, .status.completed, .status.approved, .status.entry, .status.return, .status.exact { background: #e4f7ec; color: #187643; }
.status.low, .status.pending, .status.draft, .status.estimated { background: #fff0dc; color: #9a5a15; }
.status.printing, .status.sent, .status.confirmed { background: #e6efff; color: #315fa8; }
.status.ready { background: #f0e9ff; color: #7040aa; }
.status.cancelled, .status.rejected, .status.expired, .status.loss { background: #ffe8eb; color: #a63c4a; }
.status.paid, .status.success, .status.baixo, .status.downloaded { background: #e4f7ec; color: #187643; }
.status.moderado, .status.issued, .status.store { background: #fff0dc; color: #9a5a15; }
.status.alto, .status.failed, .status.refunded, .status.blocked { background: #ffe8eb; color: #a63c4a; }
.positive { color: #16804a !important; }
.negative { color: var(--red) !important; }

.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 24px; }
.filament-card { position: relative; padding: 22px; border: 1px solid var(--line); border-radius: 19px; background: #fff; }
.filament-top { display: flex; align-items: flex-start; justify-content: space-between; }
.spool-visual { position: relative; display: grid; width: 56px; height: 56px; place-items: center; border: 8px solid #dfe6e1; border-radius: 50%; background: var(--spool); box-shadow: inset 0 0 0 8px color-mix(in srgb, var(--spool), #fff 38%); }
.spool-visual i { width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 5px #dfe6e1; }
.filament-card .eyebrow { margin-top: 20px; }
.filament-card h3 { margin-bottom: 20px; }
.big-progress { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; }
.big-progress > div { text-align: right; }
.big-progress strong, .big-progress small { display: block; }
.filament-card dl, .product-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 18px 0; padding-top: 16px; border-top: 1px solid var(--line); }
.filament-card dl div, .product-card dl div { padding: 10px; border-radius: 10px; background: #f7f9f7; }
dt { color: var(--muted); font-size: 11px; }
dd { margin: 3px 0 0; font-weight: 800; }
details { border-top: 1px solid var(--line); padding-top: 13px; }
summary { color: var(--green-dark); cursor: pointer; font-weight: 700; }
.inline-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 7px; margin-top: 10px; }

.table-panel { padding: 0; overflow: hidden; }
.table-panel .panel-header { padding: 22px 24px 0; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 12px 18px; background: #f6f8f6; color: #748078; font-size: 10px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
td { padding: 15px 18px; border-top: 1px solid var(--line); vertical-align: middle; }
td strong, td small { display: block; }
td small { margin-top: 3px; }
.status-form select, .admin-inline-form select { min-width: 118px; padding: 7px 9px; }

label { display: grid; gap: 7px; color: #344139; font-size: 12px; font-weight: 700; }
input, select, textarea { width: 100%; min-height: 44px; border: 1px solid #d7ded9; border-radius: 10px; outline: none; background: #fff; color: var(--ink); padding: 9px 12px; transition: .15s ease; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(34,168,96,.12); }
label small { font-weight: 400; }
.form-grid { display: grid; gap: 15px; }
.form-grid.two-columns { grid-template-columns: 1fr 1fr; }
.form-grid.three-columns { grid-template-columns: repeat(3, 1fr); }
.input-suffix { position: relative; }
.input-suffix input { padding-right: 40px; }
.input-suffix span { position: absolute; top: 12px; right: 13px; color: var(--muted); }
dialog { width: min(760px, calc(100% - 24px)); max-height: calc(100vh - 30px); overflow: auto; border: 0; border-radius: 22px; padding: 0; box-shadow: 0 30px 100px rgba(7,27,14,.3); }
dialog::backdrop { background: rgba(9,24,14,.5); backdrop-filter: blur(5px); }
.wide-dialog { width: min(980px, calc(100% - 24px)); }
.dialog-card { display: grid; gap: 20px; padding: 26px; }
.dialog-header { display: flex; align-items: start; justify-content: space-between; }
.dialog-header h2 { margin: 0; }
.dialog-header button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 27px; }

.calculator-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr); gap: 22px; align-items: start; }
.calculator-side { display: grid; gap: 18px; position: sticky; top: 20px; }
.filament-rows { display: grid; gap: 9px; }
.filament-input-row { display: grid; grid-template-columns: minmax(0, 1fr) 155px 38px; gap: 8px; }
.supply-input-row, .quote-item-row { display: grid; grid-template-columns: minmax(0, 1fr) 155px 38px; gap: 8px; }
.quote-item-rows { display: grid; gap: 9px; }
.remove-row { border: 0; border-radius: 9px; background: #fff0f2; color: var(--red); cursor: pointer; font-size: 22px; }
.calculator-form > .button { margin-top: 24px; }
.result-placeholder { display: grid; min-height: 300px; place-content: center; color: var(--muted); text-align: center; }
.result-placeholder h3 { color: var(--ink); }
.result-icon { display: grid; width: 64px; height: 64px; place-items: center; margin: 0 auto 18px; border-radius: 18px; background: var(--green-soft); color: var(--green-dark); font: 800 22px 'Manrope'; }
.result-price { display: block; margin: 10px 0 12px; color: var(--green-dark); font: 800 clamp(34px, 5vw, 49px)/1 'Manrope'; }
.profit-chip { display: inline-flex; padding: 7px 10px; border-radius: 9px; background: var(--green-soft); color: var(--green-dark); font-size: 12px; font-weight: 700; }
.cost-breakdown { display: grid; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.cost-breakdown div { display: flex; justify-content: space-between; gap: 15px; }
.cost-breakdown span { color: var(--muted); }
.cost-breakdown .total { margin-top: 4px; padding-top: 12px; border-top: 1px dashed #ccd5cf; color: var(--ink); }
.save-product-card { display: grid; gap: 14px; }

.files-layout { grid-template-columns: .9fr 1.1fr; }
.dropzone { display: grid; min-height: 185px; place-content: center; margin-bottom: 18px; border: 2px dashed #b9d7c4; border-radius: 16px; background: #f7fcf8; text-align: center; cursor: pointer; }
.dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dropzone strong, .dropzone small { display: block; }
.upload-icon { font-size: 36px; color: var(--green); }
.info-callout { margin: 18px 0; padding: 14px 16px; border-left: 3px solid var(--green); border-radius: 0 10px 10px 0; background: #f1f8f3; }
.info-callout p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.page-callout { margin-bottom: 20px; }
.analysis-result { min-height: 440px; }
.analysis-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.analysis-metrics div { padding: 14px; border-radius: 12px; background: #f6f9f6; }
.analysis-metrics span, .analysis-metrics strong { display: block; }
.analysis-metrics span { color: var(--muted); font-size: 11px; }
.analysis-metrics strong { margin-top: 5px; }
.material-result-list { margin-top: 20px; }
.material-result-list > div { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }

.product-card { position: relative; }
.product-card > .status { position: absolute; top: 20px; right: 20px; }
.product-icon { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 22px; border-radius: 15px; background: linear-gradient(145deg, #e6f8ed, #d3f0de); color: var(--green-dark); font-weight: 800; }
.product-card h3 { min-height: 43px; }
.line-clamp { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-card dl .highlight { background: var(--green-soft); color: var(--green-dark); }
.kanban-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
.kanban-summary div { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.kanban-summary span { color: var(--muted); }
.kanban-summary strong { font: 800 24px 'Manrope'; }
.status-select { min-width: 130px; }

.bar-chart { display: flex; height: 250px; align-items: end; justify-content: space-around; gap: 12px; padding: 25px 10px 0; border-bottom: 1px solid var(--line); }
.bar-group { display: grid; height: 100%; grid-template-rows: 1fr auto; gap: 8px; align-items: end; text-align: center; }
.bars { display: flex; height: 100%; align-items: end; gap: 4px; }
.bars i { display: block; width: 17px; min-height: 2px; border-radius: 5px 5px 0 0; }
.bars .revenue, .chart-legend i.revenue { background: var(--green); }
.bars .cost, .chart-legend i.cost { background: #ffb66f; }
.bar-group span { color: var(--muted); font-size: 11px; }
.chart-legend { display: flex; gap: 20px; justify-content: center; margin-top: 16px; }
.chart-legend span { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.chart-legend i { width: 9px; height: 9px; border-radius: 50%; }
.rank-row > span { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 9px; background: var(--green-soft); color: var(--green-dark); font-weight: 800; }
.rank-row > div:last-child { text-align: right; }
.settings-form { display: grid; gap: 22px; max-width: 1080px; }
.settings-info { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; max-width: 1080px; margin-top: 20px; }
.settings-info > div { display: flex; gap: 14px; }
.settings-info h3 { margin-bottom: 7px; font-size: 15px; }
.settings-info p { margin: 0; color: var(--muted); font-size: 13px; }
.settings-icon { display: grid; flex: 0 0 auto; width: 38px; height: 38px; place-items: center; border-radius: 11px; background: var(--green-soft); color: var(--green-dark); font-weight: 800; }
.admin-inline-form { display: flex; gap: 6px; align-items: center; }
.table-actions { display: flex; align-items: center; gap: 8px; }

.supply-card-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.supply-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 15px; background: linear-gradient(145deg, #e6f8ed, #d3f0de); color: var(--green-dark); font-weight: 800; }
.supply-card h3 { margin-bottom: 3px; }
.supply-stock { margin: 22px 0 16px; padding: 17px; border-radius: 14px; background: #f6f9f6; }
.supply-stock strong, .supply-stock span { display: block; }
.supply-stock strong { font: 800 28px 'Manrope'; }
.supply-stock span { color: var(--muted); font-size: 12px; }
.supply-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 18px; }
.supply-card dl div { padding: 10px; border-radius: 10px; background: #f7f9f7; }

.auth-body { min-height: 100vh; background: #eff4f0; }
.auth-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(430px, .8fr) minmax(520px, 1.2fr); }
.auth-card { display: flex; flex-direction: column; justify-content: center; padding: clamp(35px, 7vw, 90px); background: #fff; }
.auth-card h1 { max-width: 510px; margin-bottom: 12px; font-size: clamp(30px, 4vw, 46px); }
.stack-form { display: grid; gap: 15px; width: min(100%, 440px); margin-top: 25px; }
.auth-link { margin: 20px 0 0; color: var(--muted); }
.auth-link a { font-weight: 700; }
.auth-showcase { position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(45px, 7vw, 100px); background: radial-gradient(circle at 80% 18%, rgba(255,255,255,.14), transparent 26%), linear-gradient(135deg, #102a1c, #176a40 55%, #23aa61); color: #fff; }
.auth-showcase::after { position: absolute; width: 440px; height: 440px; right: -120px; bottom: -140px; border: 80px solid rgba(255,255,255,.06); border-radius: 50%; content: ''; }
.showcase-copy { position: relative; z-index: 2; max-width: 650px; }
.showcase-copy .pill { background: rgba(255,255,255,.13); color: #fff; }
.showcase-copy h2 { margin: 24px 0 14px; font-size: clamp(35px, 5vw, 62px); }
.showcase-copy p { color: #d6eadf; font-size: 18px; }
.showcase-card { position: relative; z-index: 2; width: min(100%, 580px); padding: 27px; border: 1px solid rgba(255,255,255,.18); border-radius: 22px; background: rgba(255,255,255,.11); backdrop-filter: blur(12px); }
.showcase-card > div:not(.mini-chart) { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 12px; }
.showcase-card .accent { color: #8ff0b9; }
.mini-chart { display: flex; height: 100px; align-items: end; gap: 9px; margin-top: 22px; }
.mini-chart i { flex: 1; border-radius: 6px 6px 0 0; background: linear-gradient(#70e7a3, #31b86c); }
.check-list { position: relative; z-index: 2; display: grid; gap: 13px; list-style: none; padding: 0; }
.check-list li::before { margin-right: 9px; color: #82efb1; content: '✓'; font-weight: 800; }
.install-shell { min-height: 100vh; padding: 35px; }
.install-card { width: min(900px, 100%); margin: 0 auto; border-radius: 25px; box-shadow: var(--shadow); }
.install-card .brand { margin-bottom: 25px; }
.section-title { display: flex; align-items: center; gap: 9px; margin-top: 14px; font: 800 15px 'Manrope'; }
.section-title span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: var(--green-soft); color: var(--green-dark); }

.quote-document-body { min-height: 100vh; padding: 28px; background: #e9eeea; }
.quote-toolbar { display: flex; width: min(900px, 100%); justify-content: space-between; margin: 0 auto 18px; }
.quote-document { width: min(900px, 100%); min-height: 1120px; margin: 0 auto; padding: 54px; background: #fff; box-shadow: var(--shadow); }
.quote-document-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; padding-bottom: 30px; border-bottom: 2px solid var(--ink); }
.quote-document-header > div:last-child { text-align: right; }
.quote-document-header p, .quote-document-header small, .quote-parties span, .quote-notes span { display: block; margin: 0; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.quote-document-header > div:last-child strong { display: block; margin: 4px 0; font: 800 24px 'Manrope'; }
.quote-document .brand small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.quote-parties { display: grid; grid-template-columns: 1.5fr 1fr; gap: 35px; padding: 30px 0; }
.quote-parties strong { display: block; margin: 7px 0; font-size: 17px; }
.quote-parties p { margin: 0; color: var(--muted); }
.quote-items { margin: 12px 0 28px; }
.quote-items th:last-child, .quote-items td:last-child, .quote-items th:nth-child(2), .quote-items td:nth-child(2), .quote-items th:nth-child(3), .quote-items td:nth-child(3) { text-align: right; }
.quote-totals { display: grid; width: min(360px, 100%); gap: 8px; margin-left: auto; }
.quote-totals > div { display: flex; justify-content: space-between; gap: 20px; padding: 5px 0; }
.quote-totals .grand-total { margin-top: 5px; padding-top: 15px; border-top: 2px solid var(--ink); font-size: 18px; }
.quote-notes { margin-top: 40px; padding: 20px; border-radius: 12px; background: #f6f8f6; }
.quote-notes p { margin: 8px 0 0; }
.quote-document footer { margin-top: 60px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; text-align: center; }
.migration-list { color: var(--ink); }

@media (max-width: 1180px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .calculator-layout { grid-template-columns: 1fr; }
  .calculator-side { position: static; grid-template-columns: 1fr 1fr; }
  .auth-shell { grid-template-columns: 1fr 1fr; }
  .auth-card, .auth-showcase { padding: 50px; }
}

@media (max-width: 900px) {
  .sidebar { transform: translateX(-102%); box-shadow: 20px 0 50px rgba(10,28,15,.14); transition: transform .2s ease; }
  .sidebar.open { transform: translateX(0); }
  .main-column { margin-left: 0; }
  .mobile-menu { display: block; }
  .topbar, .content { padding-left: 24px; padding-right: 24px; }
  .topbar { justify-content: flex-start; }
  .topbar > .button { margin-left: auto; }
  .two-panel-grid, .files-layout, .settings-info { grid-template-columns: 1fr; }
  .auth-shell { grid-template-columns: 1fr; }
  .auth-showcase { display: none; }
  .auth-card { min-height: 100vh; }
}

@media (max-width: 680px) {
  .content { padding: 20px 14px 45px; }
  .topbar { min-height: 78px; padding: 14px; }
  .topbar .eyebrow, .topbar > .button { display: none; }
  .hero-strip { display: block; padding: 28px 24px; }
  .hero-strip .button { margin-top: 20px; }
  .metric-grid, .metric-grid.three, .card-grid, .kanban-summary, .calculator-side { grid-template-columns: 1fr; }
  .form-grid.two-columns, .form-grid.three-columns, .analysis-metrics { grid-template-columns: 1fr; }
  .filament-input-row, .supply-input-row, .quote-item-row { grid-template-columns: 1fr 110px 38px; }
  .quote-document-body { padding: 0; }
  .quote-toolbar { padding: 12px; }
  .quote-document { min-height: 100vh; padding: 28px 20px; box-shadow: none; }
  .quote-document-header, .quote-parties { grid-template-columns: 1fr; display: grid; }
  .quote-document-header > div:last-child { text-align: left; }
  .panel { padding: 19px; }
  .table-panel { padding: 0; }
  .dialog-card { padding: 19px; }
  .auth-card { padding: 30px 22px; }
  .install-shell { padding: 12px; }
  .inline-form { grid-template-columns: 1fr 1fr; }
  .inline-form .button { grid-column: 1 / -1; }
}

@media print {
  @page { size: A4; margin: 12mm; }
  .quote-document-body { padding: 0; background: #fff; }
  .quote-toolbar { display: none; }
  .quote-document { width: 100%; min-height: 0; padding: 0; box-shadow: none; }
}

/* Plataforma 1.0 */
.section-space { margin-top: 22px; }
.action-group { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.action-group form { margin: 0; }
.button.danger { border-color: #f1ccd1; background: #fff3f4; color: #a83b49; }
.text-link { display: inline-block; margin-top: 3px; font-size: 12px; font-weight: 700; }
.check-field { display: flex; min-height: 44px; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f9fbf9; }
.check-field input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--green); }
.compact-form { display: grid; grid-template-columns: minmax(110px, 1fr) 90px 110px 100px auto; gap: 8px; align-items: end; }
.product-cover { width: 72px; height: 72px; margin-bottom: 18px; border-radius: 15px; object-fit: cover; }
.risk-result { border-color: #ffd6a5; background: #fffaf2; }
.risk-gauge { display: flex; align-items: end; gap: 10px; margin: 25px 0 12px; }
.risk-gauge strong { color: var(--green-dark); font: 800 48px/1 'Manrope'; }
.risk-gauge span { max-width: 140px; color: var(--muted); font-size: 12px; }
.compact-list { display: grid; gap: 8px; margin: 16px 0 0; padding-left: 20px; color: var(--muted); }
.scenario-stack { display: grid; gap: 10px; margin-top: 18px; }
.scenario-card { display: grid; grid-template-columns: 1fr auto; gap: 7px 12px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; }
.scenario-card > div strong, .scenario-card > div span, .scenario-card small { display: block; }
.scenario-card > div span { color: var(--muted); font-size: 11px; }
.scenario-card b { color: var(--green-dark); font-size: 19px; }
.scenario-card small { grid-column: 1 / -1; }
.scenario-card.over { border-color: #f0c7cc; background: #fff7f8; }
.scenario-card.fits { border-color: #bfe5cc; background: #f7fcf9; }
.opportunity-grid, .vault-grid, .passport-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.opportunity-card, .passport-card, .vault-card { display: flex; min-height: 280px; flex-direction: column; }
.opportunity-score { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 18px; background: var(--green-soft); color: var(--green-dark); font: 800 22px 'Manrope'; }
.opportunity-numbers { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: auto 0 14px; }
.opportunity-numbers div { padding: 10px; border-radius: 10px; background: #f6f9f6; }
.opportunity-numbers span, .opportunity-numbers strong { display: block; }
.opportunity-numbers span { color: var(--muted); font-size: 11px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 6px; }
.tag-row span { padding: 5px 8px; border-radius: 99px; background: #edf2ee; color: var(--muted); font-size: 11px; }
.network-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.network-request { display: grid; gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.network-request > div:first-child { display: grid; gap: 5px; }
.network-price { display: flex; justify-content: space-between; }
.network-price small { text-align: right; }
.bid-row { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.bid-row strong, .bid-row small { display: block; }
.passport-card dl, .vault-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: auto 0 18px; }
.passport-card dl div, .vault-card dl div { padding: 10px; border-radius: 10px; background: #f6f9f6; }
.vault-lock { display: grid; width: 50px; height: 50px; place-items: center; margin-bottom: 18px; border-radius: 16px; background: #17231b; color: #6fe7a2; }
.token-panel { margin-bottom: 22px; border-color: #a9dec0; background: linear-gradient(145deg,#f1fff7,#e0f6e9); }

/* Loja pública */
.store-body { min-height: 100vh; background: #f6f7f6; color: var(--store-dark,#132018); }
.store-header { position: sticky; top: 0; z-index: 10; display: flex; min-height: 72px; align-items: center; justify-content: space-between; padding: 12px max(20px,calc((100vw - 1180px)/2)); border-bottom: 1px solid #e6e9e7; background: rgba(255,255,255,.94); backdrop-filter: blur(12px); }
.store-brand { display: flex; align-items: center; gap: 10px; color: var(--store-dark); }
.store-brand img, .store-brand span { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 13px; object-fit: cover; background: var(--store-primary); color: #fff; font-weight: 800; }
.store-cart-link { padding: 10px 14px; border-radius: 99px; background: color-mix(in srgb,var(--store-primary),#fff 85%); color: var(--store-dark); font-weight: 800; }
.store-banner { height: min(34vw,360px); background-position: center; background-size: cover; }
.store-shell { width: min(1180px,calc(100% - 32px)); margin: 0 auto; padding: 45px 0 80px; }
.store-hero { max-width: 720px; padding: 30px 0 50px; }
.store-hero h1 { margin-bottom: 15px; font-size: clamp(34px,6vw,64px); letter-spacing: -.045em; }
.store-hero > p:last-child { color: #627067; font-size: 18px; }
.store-products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.store-product { overflow: hidden; border: 1px solid #e0e5e2; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px rgba(20,36,25,.05); }
.store-product-image { display: grid; height: 240px; place-items: center; background: linear-gradient(145deg,#ecf7f0,#dcece2); }
.store-product-image img { width: 100%; height: 100%; object-fit: cover; }
.store-product-image span { color: var(--store-primary); font: 800 38px 'Manrope'; }
.store-product-content { padding: 22px; }
.store-product-content h2 { min-height: 48px; margin-bottom: 9px; }
.store-product-content > p:not(.eyebrow) { min-height: 66px; color: #66726a; }
.store-price { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin: 18px 0; }
.store-price strong { color: var(--store-primary); font: 800 25px 'Manrope'; }
.store-price small { max-width: 120px; text-align: right; }
.store-add-form { display: grid; grid-template-columns: 75px 1fr; gap: 8px; }
.store-add-form input[name=personalization] { grid-column: 1 / -1; }
.store-add-form button, .store-customer-form button { min-height: 44px; border: 0; border-radius: 11px; background: var(--store-primary); color: #fff; cursor: pointer; font-weight: 800; }
.store-success { display: grid; grid-template-columns: auto 1fr; gap: 18px; margin-bottom: 25px; padding: 22px; border: 1px solid color-mix(in srgb,var(--store-primary),#fff 60%); border-radius: 18px; background: color-mix(in srgb,var(--store-primary),#fff 91%); }
.store-success > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: var(--store-primary); color: #fff; font-size: 22px; }
.store-success h1 { margin: 0 0 7px; }
.store-checkout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; margin-top: 60px; padding: 35px; border-radius: 25px; background: #fff; box-shadow: 0 20px 55px rgba(20,36,25,.06); }
.store-cart-form { display: grid; gap: 9px; }
.store-cart-row { display: grid; grid-template-columns: 1fr 80px 110px; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid #e8ece9; }
.store-cart-row small { display: block; }
.store-cart-row > strong { text-align: right; }
.store-secondary { min-height: 40px; border: 1px solid #d8dfda; border-radius: 10px; background: #fff; color: var(--store-dark); cursor: pointer; font-weight: 700; }
.store-coupon-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 18px; }
.store-coupon-ok { color: var(--store-primary); font-size: 12px; font-weight: 700; }
.store-totals { display: grid; gap: 7px; margin: 20px 0 0; }
.store-totals div { display: flex; justify-content: space-between; }
.store-totals div:last-child { margin-top: 7px; padding-top: 12px; border-top: 2px solid var(--store-dark); font-size: 18px; }
.store-customer-form { display: grid; gap: 12px; }
.store-customer-form h3 { margin: 0; }
.store-customer-form > small { text-align: center; }
.store-terms { display: flex; align-items: center; gap: 8px; }
.store-terms input { width: 17px; min-height: 17px; }
.store-terms-text { margin-top: 30px; color: #677169; }
.store-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 30px max(20px,calc((100vw - 1180px)/2)); background: var(--store-dark); color: #fff; }
.store-footer div { display: flex; gap: 15px; }
.store-footer a { color: #fff; }
.store-empty { display: grid; min-height: 300px; place-content: center; padding: 30px; text-align: center; }

/* Passaporte público */
.passport-public-body { min-height: 100vh; padding: 35px 16px; background: linear-gradient(145deg,#edf3ef,#dae9df); }
.passport-public { width: min(720px,100%); margin: 0 auto; padding: clamp(24px,6vw,52px); border-radius: 28px; background: #fff; box-shadow: 0 30px 90px rgba(12,36,20,.15); }
.passport-public header { display: flex; align-items: center; gap: 18px; padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.passport-public h1 { margin-bottom: 6px; }
.passport-seal { display: grid; flex: 0 0 auto; width: 66px; height: 66px; place-items: center; border-radius: 21px; background: #173d28; color: #7aefa9; font: 800 18px 'Manrope'; }
.passport-status { display: flex; gap: 14px; align-items: center; margin: 25px 0; padding: 16px; border-radius: 14px; background: #fff5df; }
.passport-status.approved { background: #e8f8ee; color: #17653a; }
.passport-status.rejected { background: #fff0f2; color: #9e3745; }
.passport-status > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: currentColor; color: #fff; }
.passport-status strong, .passport-status small { display: block; }
.passport-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.passport-facts div { padding: 15px; border-radius: 12px; background: #f5f8f6; }
.passport-public footer { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; text-align: center; }

@media (max-width: 1000px) {
  .opportunity-grid, .vault-grid, .passport-grid, .store-products { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .network-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .opportunity-grid, .vault-grid, .passport-grid, .store-products, .store-checkout { grid-template-columns: 1fr; }
  .compact-form { grid-template-columns: 1fr 1fr; }
  .store-shell { width: min(100% - 20px,1180px); padding-top: 20px; }
  .store-hero { padding: 20px 5px 35px; }
  .store-product-image { height: 220px; }
  .store-checkout { gap: 28px; padding: 22px 16px; }
  .store-cart-row { grid-template-columns: 1fr 65px; }
  .store-cart-row > strong { grid-column: 1 / -1; text-align: left; }
  .store-footer { align-items: flex-start; flex-direction: column; }
  .passport-facts { grid-template-columns: 1fr; }
}

/* Portal público 1.1 */
.public-site-body { min-height: 100vh; background: #f7faf8; color: #142219; }
.public-header { position: sticky; top: 0; z-index: 40; display: grid; min-height: 76px; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; padding: 12px max(22px, calc((100vw - 1240px) / 2)); border-bottom: 1px solid rgba(211,222,214,.86); background: rgba(250,252,250,.92); backdrop-filter: blur(14px); }
.public-header nav, .public-header-actions { display: flex; align-items: center; gap: 22px; }
.public-header nav a { color: #526058; font-size: 13px; font-weight: 700; }
.public-header nav a:hover { color: var(--green-dark); }
.public-header-actions { justify-content: flex-end; gap: 8px; }
.public-alert { width: min(1180px, calc(100% - 32px)); margin: 18px auto 0; }
.public-hero { display: grid; width: min(1240px, calc(100% - 40px)); min-height: 690px; grid-template-columns: 1.02fr .98fr; align-items: center; gap: clamp(40px, 7vw, 100px); margin: 0 auto; padding: 75px 0 85px; }
.public-kicker { display: inline-flex; padding: 7px 11px; border: 1px solid #bfe5cc; border-radius: 999px; background: #ecfaf1; color: #157a45; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.public-hero h1 { max-width: 720px; margin: 25px 0 20px; font-size: clamp(48px, 6.5vw, 84px); letter-spacing: -.06em; line-height: .99; }
.public-hero-copy > p { max-width: 650px; color: #5f6f65; font-size: clamp(17px, 2vw, 21px); }
.public-hero-actions { display: flex; flex-wrap: wrap; gap: 11px; margin: 30px 0 14px; }
.public-hero-copy > small { display: block; }
.public-dashboard-preview { position: relative; min-height: 480px; overflow: hidden; padding: 32px; border: 1px solid rgba(255,255,255,.17); border-radius: 35px; background: radial-gradient(circle at 82% 12%, rgba(87,235,151,.22), transparent 28%), linear-gradient(145deg, #0d2518, #164c2e 70%, #187c45); color: #fff; box-shadow: 0 38px 90px rgba(14,58,32,.24); }
.public-dashboard-preview::before { position: absolute; width: 270px; height: 270px; right: -100px; bottom: -100px; border: 55px solid rgba(255,255,255,.045); border-radius: 50%; content: ''; }
.preview-top { display: flex; align-items: center; justify-content: space-between; color: #cfe9d8; font-weight: 700; }
.preview-top i { padding: 6px 9px; border-radius: 99px; background: rgba(85,235,147,.14); color: #75e9a5; font-size: 10px; font-style: normal; text-transform: uppercase; }
.preview-value { margin: 70px 0 28px; }
.preview-value small, .preview-value strong { display: block; }
.preview-value small { color: #afc9b8; }
.preview-value strong { margin: 8px 0; font: 800 clamp(41px, 5vw, 64px)/1 'Manrope'; letter-spacing: -.045em; }
.preview-value span { color: #79eda9; font-weight: 800; }
.preview-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.preview-grid div { padding: 15px; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; background: rgba(255,255,255,.07); }
.preview-grid small, .preview-grid b { display: block; }
.preview-grid small { color: #b8d0c0; font-size: 10px; }
.preview-grid b { margin-top: 5px; font-size: 16px; }
.preview-bars { display: flex; height: 85px; align-items: end; gap: 9px; margin-top: 28px; }
.preview-bars i { flex: 1; border-radius: 7px 7px 2px 2px; background: linear-gradient(#65e99d,#25ad62); opacity: .88; }
.public-proof { display: grid; width: min(1240px, calc(100% - 40px)); grid-template-columns: repeat(4,1fr); margin: 0 auto 30px; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 18px 55px rgba(25,55,35,.045); }
.public-proof div { padding: 22px 25px; border-right: 1px solid var(--line); }
.public-proof div:last-child { border-right: 0; }
.public-proof strong, .public-proof span { display: block; }
.public-proof strong { margin-bottom: 4px; }
.public-proof span { color: var(--muted); font-size: 11px; }
.public-section { width: min(1240px, calc(100% - 40px)); margin: 0 auto; padding: 100px 0; scroll-margin-top: 70px; }
.public-section-heading { display: grid; grid-template-columns: 1fr minmax(280px, 480px); align-items: end; gap: 50px; margin-bottom: 42px; }
.public-section-heading h2 { max-width: 760px; margin: 0; font-size: clamp(35px, 5vw, 58px); letter-spacing: -.045em; }
.public-section-heading > p { margin: 0; color: var(--muted); font-size: 17px; }
.public-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.public-feature-grid article { min-height: 260px; padding: 29px; border: 1px solid var(--line); border-radius: 22px; background: #fff; transition: .2s ease; }
.public-feature-grid article:hover { transform: translateY(-4px); border-color: #bddfca; box-shadow: 0 20px 55px rgba(25,65,39,.08); }
.public-feature-grid article > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: var(--green-soft); color: var(--green-dark); font-weight: 800; }
.public-feature-grid h3 { margin: 48px 0 10px; font-size: 21px; }
.public-feature-grid p { margin: 0; color: var(--muted); }
.public-pricing-section { width: 100%; padding-right: max(20px,calc((100vw - 1240px)/2)); padding-left: max(20px,calc((100vw - 1240px)/2)); background: #10281a; color: #fff; }
.public-pricing-section .public-section-heading > p { color: #b8cbbf; }
.public-plan-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(245px,1fr)); gap: 17px; }
.public-plan { position: relative; display: flex; min-height: 520px; flex-direction: column; padding: 28px; border: 1px solid rgba(255,255,255,.14); border-radius: 25px; background: rgba(255,255,255,.075); }
.public-plan.featured { border-color: #52d88c; background: linear-gradient(145deg,rgba(47,184,105,.25),rgba(255,255,255,.08)); box-shadow: 0 25px 65px rgba(0,0,0,.2); }
.plan-badge { position: absolute; top: 20px; right: 20px; padding: 5px 8px; border-radius: 99px; background: #61e49a; color: #10321e; font-size: 10px; font-weight: 800; }
.public-plan h3 { margin: 5px 0 10px; font-size: 27px; }
.plan-description { min-height: 66px; color: #c0d0c6; }
.plan-price { display: flex; min-height: 64px; align-items: baseline; gap: 5px; margin: 17px 0 20px; }
.plan-price strong { font: 800 35px 'Manrope'; }
.plan-price small, .plan-price span { color: #b8cbbf; }
.public-plan ul { display: grid; gap: 10px; margin: 0 0 28px; padding: 0; list-style: none; }
.public-plan li { color: #e5f0e9; font-size: 13px; }
.public-plan li::before { margin-right: 8px; color: #65e99d; content: '✓'; font-weight: 800; }
.public-plan .button { margin-top: auto; }
.public-market-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.public-market-card { overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: 0 12px 40px rgba(20,50,30,.05); }
.market-image { position: relative; display: grid; height: 245px; place-items: center; overflow: hidden; background: radial-gradient(circle at 70% 20%,#fff,transparent 30%),linear-gradient(145deg,#eaf7ef,#d6ebde); }
.market-image img { width: 100%; height: 100%; object-fit: cover; }
.market-image > span { color: #1a8a50; font: 800 42px 'Manrope'; }
.market-image i { position: absolute; left: 15px; bottom: 15px; padding: 6px 9px; border-radius: 99px; background: rgba(16,40,26,.86); color: #fff; font-size: 10px; font-style: normal; font-weight: 700; }
.market-copy { padding: 23px; }
.market-copy h3 { margin-bottom: 8px; font-size: 21px; }
.market-copy > p { min-height: 64px; color: var(--muted); }
.market-price { display: flex; align-items: center; gap: 10px; margin: 18px 0; }
.market-price del { color: #9ba69f; font-size: 12px; }
.market-price strong { color: var(--green-dark); font: 800 24px 'Manrope'; }
.market-add-form { display: grid; grid-template-columns: 72px 1fr; gap: 8px; }
.public-empty { display: grid; min-height: 230px; place-content: center; border: 1px dashed #bfcfc4; border-radius: 23px; background: #fff; padding: 35px; text-align: center; }
.public-empty h3 { margin-bottom: 8px; }
.public-empty p { margin: 0; color: var(--muted); }
.public-checkout-section { padding-top: 20px; }
.public-checkout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 45px; padding: 38px; border: 1px solid var(--line); border-radius: 27px; background: #fff; box-shadow: 0 25px 70px rgba(20,55,32,.08); }
.market-cart-form { display: grid; gap: 8px; }
.market-cart-form > div { display: grid; grid-template-columns: 1fr 80px 120px; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.market-cart-form span strong, .market-cart-form span small { display: block; }
.market-cart-form > div > b { text-align: right; }
.market-cart-total { display: flex; justify-content: space-between; padding-top: 12px; font-size: 20px; }
.market-checkout-form { display: grid; gap: 12px; }
.market-checkout-form h3 { margin-bottom: 0; }
.market-checkout-form > small { text-align: center; }
.public-order-status { display: grid; grid-template-columns: auto 1fr; gap: 20px; margin-bottom: 30px; padding: 30px; border: 1px solid #b9e2c8; border-radius: 23px; background: #edfaf2; }
.public-order-status > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-size: 23px; }
.public-order-status h2 { margin-bottom: 8px; }
.download-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.public-roadmap { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; }
.public-roadmap article { min-height: 230px; padding: 24px; border-left: 3px solid #2cb269; border-radius: 0 18px 18px 0; background: #fff; box-shadow: 0 10px 35px rgba(20,55,32,.045); }
.public-roadmap article > span { color: var(--green-dark); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.public-roadmap h3 { margin: 40px 0 10px; font-size: 19px; }
.public-roadmap p { color: var(--muted); font-size: 13px; }
.public-roadmap-link { display: inline-block; margin-top: 25px; font-weight: 800; }
.public-cta { display: flex; width: min(1240px,calc(100% - 40px)); align-items: center; justify-content: space-between; gap: 35px; margin: 40px auto 100px; padding: clamp(35px,6vw,70px); border-radius: 32px; background: radial-gradient(circle at 80% 20%,rgba(255,255,255,.16),transparent 28%),linear-gradient(125deg,#147541,#25ad62); color: #fff; box-shadow: 0 30px 80px rgba(22,125,68,.22); }
.public-cta h2 { max-width: 780px; margin: 0; font-size: clamp(30px,4vw,49px); }
.public-cta .eyebrow { color: #b9f1d0; }
.public-footer { display: grid; min-height: 180px; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; padding: 35px max(22px,calc((100vw - 1240px)/2)); background: #0d2115; color: #b8c9be; }
.public-footer .brand { color: #fff; }
.public-footer p { margin: 0; text-align: center; }
.public-footer > div { display: flex; justify-content: flex-end; gap: 20px; }
.public-footer a { color: #dce9e0; }
.plan-editor { width: min(900px,100%); }
.plan-toggle-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; align-self: end; }
.plan-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }

@media (max-width: 1080px) {
  .public-header { grid-template-columns: 1fr auto; }
  .public-header nav { display: none; }
  .public-hero { min-height: auto; grid-template-columns: 1fr; padding-top: 60px; }
  .public-dashboard-preview { min-height: 430px; }
  .public-proof, .public-feature-grid, .public-market-grid { grid-template-columns: repeat(2,1fr); }
  .public-proof div:nth-child(2) { border-right: 0; }
  .public-proof div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .public-roadmap { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 760px) {
  .public-header { min-height: 68px; padding: 10px 14px; }
  .public-header .brand { font-size: 16px; }
  .public-header .brand-mark { width: 36px; height: 36px; }
  .public-header-actions .secondary { display: none; }
  .public-hero { width: min(100% - 28px,1240px); gap: 45px; padding: 45px 0 65px; }
  .public-hero h1 { font-size: clamp(43px,14vw,65px); }
  .public-dashboard-preview { min-height: 390px; padding: 24px; border-radius: 26px; }
  .preview-value { margin-top: 45px; }
  .preview-grid { grid-template-columns: 1fr; }
  .preview-grid div:nth-child(n+2) { display: none; }
  .public-proof, .public-feature-grid, .public-market-grid, .public-roadmap { grid-template-columns: 1fr; }
  .public-proof div { border-right: 0; border-bottom: 1px solid var(--line); }
  .public-proof div:last-child { border-bottom: 0; }
  .public-section { width: min(100% - 28px,1240px); padding: 70px 0; }
  .public-pricing-section { width: 100%; padding-right: 14px; padding-left: 14px; }
  .public-section-heading { grid-template-columns: 1fr; gap: 18px; }
  .public-feature-grid article { min-height: 230px; }
  .public-checkout { grid-template-columns: 1fr; gap: 35px; padding: 24px 17px; }
  .market-cart-form > div { grid-template-columns: 1fr 65px; }
  .market-cart-form > div > b { grid-column: 1 / -1; text-align: left; }
  .public-order-status { grid-template-columns: 1fr; padding: 22px; }
  .public-cta { align-items: flex-start; flex-direction: column; margin-bottom: 60px; }
  .public-footer { grid-template-columns: 1fr; text-align: left; }
  .public-footer p { text-align: left; }
  .public-footer > div { justify-content: flex-start; }
  .plan-toggle-grid, .plan-feature-grid { grid-template-columns: 1fr; }
}

/* Plataforma 2.0 */
.formula-card { display: grid; gap: 9px; margin-top: 18px; }
.formula-card > div { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px; border-radius: 12px; background: #f5f8f6; }
.formula-card span { color: var(--muted); }
.choice-stack { display: grid; gap: 7px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.choice-stack legend { padding: 0 7px; font-weight: 800; }
.integration-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 18px 0; }
.integration-card { display: flex; gap: 11px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 13px; }
.integration-card > span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 10px; background: #eef2ef; font-weight: 800; }
.integration-card strong, .integration-card small { display: block; }
.integration-card small { color: var(--muted); }
.integration-card.ready { border-color: #b6dfc5; background: #f5fcf8; }
.integration-card.ready > span { background: var(--green-soft); color: var(--green-dark); }
.token-box { overflow: auto; margin: 18px 0; padding: 15px; border-radius: 12px; background: #14231a; color: #8ceab4; }
.agreement-create-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 20px; }
.subtle-panel { box-shadow: none; background: #f8faf8; }
.creator-profile { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.qr-label-link { display: inline-flex; align-items: center; gap: 7px; font-size: 10px; font-weight: 800; }
.qr-label-link img { width: 54px; height: 54px; border: 1px solid var(--line); background: #fff; }
.store-header-action { display: inline-grid; min-height: 40px; place-items: center; padding: 0 13px; }
.store-custom-field { display: grid; grid-column: 1 / -1; gap: 5px; color: #5d6961; font-size: 11px; font-weight: 700; }
.store-custom-field input, .store-custom-field select { width: 100%; min-height: 42px; border: 1px solid #d9e0db; border-radius: 10px; padding: 8px 10px; background: #fff; }
.store-product-image { position: relative; }
.store-product-image canvas { width: 100%; height: 100%; touch-action: none; cursor: grab; }
.store-product-image canvas:active { cursor: grabbing; }
.viewer-hint { position: absolute; right: 12px; bottom: 12px; padding: 5px 8px; border-radius: 99px; background: rgba(15,38,24,.78); color: #fff; font-size: 10px; }

.instant-quote-body { min-height: 100vh; background: linear-gradient(150deg,#f7faf8,#edf5f0); color: var(--store-dark,#132018); }
.instant-quote-shell { width: min(1180px,calc(100% - 32px)); min-height: calc(100vh - 250px); margin: 0 auto; padding: 55px 0 90px; }
.instant-quote-hero { max-width: 820px; margin-bottom: 40px; }
.instant-quote-hero h1, .instant-result-header h1 { margin: 20px 0 14px; font-size: clamp(39px,6vw,68px); letter-spacing: -.05em; line-height: 1.02; }
.instant-quote-hero > p:last-child, .instant-result-header p { color: #627067; font-size: 18px; }
.instant-upload-layout, .analysis-result-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 22px; }
.instant-form { display: grid; gap: 20px; }
.dark-list { color: var(--ink); }
.instant-result-header { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 35px; }
.analysis-score { display: grid; flex: 0 0 150px; min-height: 150px; place-content: center; border-radius: 50%; background: linear-gradient(145deg,#153c27,#1d9a58); color: #fff; text-align: center; box-shadow: 0 25px 60px rgba(22,95,51,.2); }
.analysis-score strong, .analysis-score span { display: block; }
.analysis-score strong { font: 800 37px 'Manrope'; }
.analysis-score span { max-width: 90px; color: #ccebd8; font-size: 10px; }
.instant-option-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; margin: 24px 0; }
.instant-option { padding: 26px; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 14px 42px rgba(20,50,30,.05); }
.instant-option.selected { border-color: var(--store-primary); box-shadow: 0 18px 52px color-mix(in srgb,var(--store-primary),transparent 82%); }
.instant-option h2 { margin: 9px 0 14px; color: var(--store-primary); font-size: 32px; }
.instant-option > p:not(.eyebrow) { min-height: 60px; color: var(--muted); }
.instant-option dl { display: grid; gap: 7px; margin: 20px 0; }
.instant-option dl div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid var(--line); }
.instant-option dt { color: var(--muted); }

@media (max-width: 900px) {
  .instant-upload-layout, .analysis-result-grid { grid-template-columns: 1fr; }
  .instant-option-grid { grid-template-columns: 1fr; }
  .agreement-create-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .integration-grid { grid-template-columns: 1fr; }
  .instant-result-header { align-items: flex-start; flex-direction: column; }
  .analysis-score { min-height: 120px; flex-basis: 120px; }
  .store-header-action { display: none; }
}

/* Candy3D 2.1 */
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.notification-shell { position: relative; }
.notification-button { position: relative; display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); cursor: pointer; font-size: 18px; }
.notification-button > b { position: absolute; top: -6px; right: -6px; display: grid; min-width: 20px; height: 20px; place-items: center; padding: 0 5px; border: 2px solid var(--canvas); border-radius: 99px; background: var(--red); color: #fff; font-size: 9px; font-weight: 800; }
.notification-panel { position: absolute; top: calc(100% + 12px); right: 0; z-index: 50; display: none; width: min(420px, calc(100vw - 28px)); overflow: hidden; border: 1px solid var(--line); border-radius: 19px; background: #fff; box-shadow: 0 25px 75px rgba(12,35,20,.2); }
.notification-panel.open, .notification-panel:not([hidden]) { display: block; }
.notification-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 17px 19px; border-bottom: 1px solid var(--line); }
.notification-heading h3 { margin: 0; font-size: 16px; }
.notification-heading form { margin: 0; }
.notification-heading button { border: 0; background: transparent; color: var(--green-dark); cursor: pointer; font-size: 11px; font-weight: 800; }
.notification-list { display: grid; max-height: 460px; overflow: auto; }
.notification-item { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; padding: 16px 18px; border-bottom: 1px solid #edf0ed; }
.notification-item.unread { background: #f3fbf6; box-shadow: inset 3px 0 var(--green); }
.notification-item > span { display: none; }
.notification-item > div { min-width: 0; }
.notification-item p { margin: 4px 0 8px; color: var(--muted); font-size: 13px; }
.notification-item small { display: block; font-size: 10px; }
.notification-item .action-group form { display: inline; }
.notification-item form button { border: 0; background: transparent; color: var(--green-dark); cursor: pointer; font-size: 11px; font-weight: 700; }

.platform-body { background: #f0f3f1; }
.platform-sidebar { background: #11271a; border-color: #20392a; }
.platform-sidebar .brand, .platform-sidebar .workspace-card strong, .platform-sidebar .sidebar-footer strong { color: #fff; }
.platform-sidebar .workspace-card { border-color: #294333; background: #183021; color: #bcd0c2; }
.platform-sidebar .main-nav a { color: #b9c9be; }
.platform-sidebar .main-nav a:hover, .platform-sidebar .main-nav a.active { background: #214a31; color: #fff; }
.platform-sidebar .sidebar-footer { border-color: #294333; }
.platform-hero { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 24px; padding: clamp(25px,5vw,48px); border-radius: 27px; background: radial-gradient(circle at 85% 0,rgba(104,239,159,.2),transparent 30%),linear-gradient(135deg,#102719,#1b4d2f); color: #fff; }
.platform-hero h2 { margin: 8px 0; font-size: clamp(28px,4vw,43px); }
.platform-hero p:last-child { margin: 0; color: #c0d4c6; }
.platform-hero .eyebrow { color: #6ce49d; }
.section-title { margin: 35px 0 14px; }
.section-title h2 { margin: 0; }

.onboarding-card { margin-bottom: 22px; padding: 25px; border: 1px solid #bce2ca; border-radius: 22px; background: linear-gradient(135deg,#f6fff9,#edf9f1); }
.onboarding-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.onboarding-header h3 { margin-bottom: 6px; }
.onboarding-dismiss button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 12px; text-decoration: underline; }
.onboarding-progress { display: flex; align-items: center; gap: 15px; margin: 18px 0; }
.onboarding-progress > div { flex: 1; height: 9px; overflow: hidden; border-radius: 99px; background: #dbe9df; }
.onboarding-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--green-dark),#4ad186); }
.onboarding-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.onboarding-steps a { padding: 13px; border: 1px solid #d9e8dd; border-radius: 13px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; }
.onboarding-steps a::before { display: inline-grid; width: 20px; height: 20px; place-items: center; margin-right: 6px; border-radius: 50%; background: #eef2ef; color: #7d8981; content: '○'; }
.onboarding-steps a.done { color: var(--green-dark); }
.onboarding-steps a.done::before { background: var(--green); color: #fff; content: '✓'; }

.enhanced-dropzone { min-height: 225px; transition: .18s ease; }
.enhanced-dropzone.dragging { border-color: var(--green); background: var(--green-soft); transform: scale(1.01); }
.upload-panel { align-content: start; }
.upload-preview { display: none; position: relative; min-height: 260px; margin: 0 0 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #eef4ef; }
.upload-preview.ready, .upload-preview:not([hidden]) { display: block; }
.upload-preview canvas { display: block; width: 100%; height: 300px; touch-action: none; }
.analysis-visual { position: relative; min-height: 300px; overflow: hidden; margin-bottom: 18px; border: 1px solid var(--line); border-radius: 18px; background: #edf3ef; }
.analysis-visual.split { display: grid; grid-template-columns: 1fr 1fr; }
.analysis-visual.split img { border-right: 1px solid var(--line); }
.analysis-visual img, .analysis-visual canvas { display: block; width: 100%; height: 330px; object-fit: cover; touch-action: none; }
.file-name-cell { display: flex; align-items: center; gap: 10px; min-width: 210px; }
.file-name-cell img { width: 58px; height: 45px; object-fit: cover; border: 1px solid var(--line); border-radius: 9px; background: #eef3ef; }

.recipe-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.recipe-card { overflow: hidden; padding: 0; }
.recipe-cover { display: grid; width: 100%; height: 190px; place-items: center; object-fit: cover; background: linear-gradient(145deg,#e9f7ee,#d6ecdf); color: var(--green-dark); font: 800 28px 'Manrope'; }
.recipe-cover img { width: 100%; height: 100%; object-fit: cover; }
.recipe-card > :not(.recipe-cover) { margin-right: 22px; margin-left: 22px; }
.recipe-card > .eyebrow { margin-top: 20px; }
.recipe-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.recipe-facts div { display: grid; }
.recipe-facts span { color: var(--muted); font-size: 10px; }
.recipe-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; margin-bottom: 22px; }
.recipe-actions form { display: inline-flex; }

.guard-list { display: grid; gap: 12px; }
.guard-alert { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: start; }
.guard-alert.critical { border-color: #efc1c7; background: #fff8f9; }
.guard-alert.warning { border-color: #edd9b5; }
.guard-icon { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 13px; background: #fff0dc; color: #a26017; font-weight: 900; }
.guard-alert.critical .guard-icon { background: #ffe5e8; color: #a63c4a; }
.reliability-score { display: inline-grid; min-width: 55px; height: 36px; place-items: center; border-radius: 10px; font-weight: 900; }
.reliability-score.good { background: var(--green-soft); color: var(--green-dark); }
.reliability-score.attention { background: #fff0dc; color: #975611; }
.reliability-score.risk { background: #ffe7ea; color: #a43d4a; }
.credentials-alert { border: 1px solid #b9e2c8; background: #f1fbf5; }
.credentials-alert code { display: block; overflow-wrap: anywhere; margin: 6px 0; padding: 8px; border-radius: 8px; background: #11271a; color: #8ceab4; }
.copy-callout { display: flex; align-items: center; justify-content: space-between; gap: 15px; }

.approval-public-body { min-height: 100vh; padding: 26px 15px 60px; background: linear-gradient(145deg,#edf4ef,#dfece3); }
.approval-public-shell { width: min(1080px,100%); margin: 0 auto; }
.approval-public-shell > .brand { margin: 10px 0 28px; }
.approval-public-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; align-items: start; }
.approval-preview { position: relative; overflow: hidden; min-height: 420px; padding: 0; }
.approval-preview > p, .approval-preview > h1 { margin-right: 24px; margin-left: 24px; }
.approval-preview > p { margin-top: 22px; }
.approval-preview img, .approval-preview canvas { display: block; width: 100%; min-height: 420px; object-fit: contain; background: #edf3ef; touch-action: none; }
.approval-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 20px 0; }
.approval-specs div { padding: 11px; border-radius: 10px; background: #f6f8f6; }
.approval-specs dt, .approval-specs dd { display: block; }
.approval-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.approval-decision-form { display: grid; gap: 13px; }

.product-badges { display: flex; position: absolute; top: 20px; right: 20px; gap: 5px; }
.status.neutral { background: #e8edf8; color: #506289; }
.store-downloads { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 14px; }
.store-downloads > strong { width: 100%; }
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.faq-grid details { padding: 17px 19px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.faq-grid details p { margin: 10px 0 0; color: var(--muted); }
.migration-error-detail { display: block; margin-top: 10px; padding-top: 10px; border-top: 1px solid currentColor; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: .78rem; line-height: 1.45; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .recipe-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .onboarding-steps { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 820px) {
  .platform-hero, .copy-callout { align-items: flex-start; flex-direction: column; }
  .approval-public-grid { grid-template-columns: 1fr; }
  .guard-alert { grid-template-columns: auto 1fr; }
  .guard-alert > form { grid-column: 2; }
  .faq-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .notification-panel { position: fixed; top: 74px; right: 14px; }
  .recipe-grid { grid-template-columns: 1fr; }
  .onboarding-steps { grid-template-columns: 1fr; }
  .product-badges { position: static; flex-wrap: wrap; margin-bottom: 12px; }
  .approval-buttons { grid-template-columns: 1fr; }
  .analysis-visual img, .analysis-visual canvas, .upload-preview canvas { height: 250px; }
  .analysis-visual.split { grid-template-columns: 1fr; }
  .analysis-visual.split img { border-right: 0; border-bottom: 1px solid var(--line); }
}
