@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#f6f8fa;--surface:#fff;--surface-2:#f8fafb;--surface-soft:var(--surface-2);--ink:#101820;--muted:#6f7b87;--line:#e5eaee;--border:var(--line);--nav:#0c1825;--nav-hover:#142436;--accent:#23c7bd;--primary:var(--accent);--accent-dark:#159e97;--green:#1a9a62;--amber:#c98522;--red:#d84d60;--purple:#7159d7;--radius:14px;--shadow:0 8px 30px rgba(15,30,45,.055);--sidebar:232px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Inter",Arial,sans-serif;font-size:var(--fs-sm);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.muted{color:var(--muted)}.text-danger{color:var(--red)}.text-success{color:var(--green)}.hidden{display:none!important}

/* Base */
.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;width:var(--sidebar);padding:24px 16px;background:var(--nav);color:#d8e0e8;display:flex;flex-direction:column}.main{min-height:100vh;margin-left:var(--sidebar)}.topbar{height:68px;padding:0 28px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:25;backdrop-filter:blur(10px)}.content{padding:28px;max-width:1480px;margin:0 auto}.topbar-left,.top-actions,.head-actions{display:flex;align-items:center;gap:10px}.breadcrumb{font-size:var(--fs-sm)}.mobile-menu{display:none;border:0;background:transparent;color:var(--ink);padding:6px;cursor:pointer}.sidebar-overlay{display:none}
.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--accent);position:relative;box-shadow:inset 0 0 0 7px rgba(255,255,255,.15)}.brand-mark:after{content:"";position:absolute;width:8px;height:8px;background:white;border-radius:3px;left:11px;top:11px}.brand strong,.brand small{display:block}.brand strong{font-size:16px;letter-spacing:-.02em}.brand small{font-size:var(--fs-2xs);color:#8090a2;margin-top:1px}.brand-light strong{color:white}.sidebar>.brand{padding:0 8px 24px}.nav-label{padding:18px 10px 8px;color:#617388;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.14em;font-weight:700}.nav-link{height:42px;padding:0 11px;border-radius:10px;display:flex;align-items:center;gap:11px;color:#91a2b4;font-size:var(--fs-sm);font-weight:500;margin:2px 0}.nav-link:hover{background:var(--nav-hover);color:#fff}.nav-link.active{background:var(--brand-08);color:#fff}.nav-link.active svg{color:var(--accent)}.sidebar-foot{margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.07)}.sidebar-user{display:flex;align-items:center;gap:9px;padding:8px}.sidebar-user .meta{flex:1;min-width:0}.sidebar-user strong,.sidebar-user span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user strong{font-size:var(--fs-xs);color:#e8eef4}.sidebar-user span{font-size:var(--fs-2xs);color:#708296}.avatar{width:31px;height:31px;border-radius:9px;background:#1c3447;display:grid;place-items:center;color:var(--brand-04);font-weight:700}

/* Headers / cards */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.page-head h1{font-size:28px;line-height:1.15;letter-spacing:-.035em;margin:0 0 5px}.page-head p{margin:0;color:var(--muted);font-size:var(--fs-sm)}.page-code{margin-bottom:6px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px}.card-head{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.card-head h3{margin:0;font-size:var(--fs-sm)}.card-head p{margin:3px 0 0;color:var(--muted);font-size:var(--fs-xs)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 10px}.section-title h3{margin:0;font-size:var(--fs-sm)}

/* Buttons */
.btn{border:1px solid transparent;border-radius:10px;min-height:38px;padding:8px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600;font-size:var(--fs-xs);cursor:pointer;transition:.16s;background:white}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:var(--brand-08);border-color:var(--accent)}.btn-primary:hover{background:var(--brand-06)}.btn-secondary{background:#fff;border-color:#dfe5e9;color:#31404d}.btn-soft{background:var(--surface-01);border-color:var(--surface-02);color:#53616d}.btn-dark{background:var(--nav);color:white}.btn-sm{min-height:32px;padding:6px 10px;font-size:var(--fs-xs)}.btn-table{min-height:30px;padding:5px 10px;background:#fff;border-color:#dde4e8;color:#394955}.btn-block{width:100%}.icon-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:white;color:#65727e;display:grid;place-items:center;cursor:pointer}

/* Forms */
.field{margin-bottom:14px}.field label:not(.choice-option){display:block;font-size:var(--fs-xs);font-weight:600;margin:0 0 6px;color:#394854}.input,.select,.textarea{width:100%;border:1px solid #dfe5e9;background:#fff;color:var(--ink);border-radius:10px;padding:10px 11px;outline:none;transition:.15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-05);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent)}.textarea{min-height:92px;resize:vertical}.required{color:var(--red)}.form-note{font-size:var(--fs-2xs);color:var(--muted);margin-top:5px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-card{padding:0 22px}.form-section{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:24px 0;border-bottom:1px solid var(--line)}.section-number,.flow-number{width:32px;height:32px;border-radius:10px;background:var(--brand-02);color:var(--brand-07);display:grid;place-items:center;font-weight:700}.section-content h3{margin:2px 0 2px;font-size:15px}.section-content>p{margin:0 0 17px;color:var(--muted);font-size:var(--fs-xs)}.form-actions{display:flex;justify-content:flex-end;gap:9px;padding:18px 0 22px}

/* Tables */
.table-wrap{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;min-width:720px}.table th{text-align:left;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--surface-02);color:#7a8793;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.table td{padding:13px 16px;border-bottom:1px solid #edf0f2;vertical-align:middle;font-size:var(--fs-xs)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-01)}.code{font-size:var(--fs-2xs);letter-spacing:.04em;font-weight:700;color:#55707d}.entity-title{font-weight:600;font-size:var(--fs-xs)}.entity-sub{font-size:var(--fs-2xs);color:var(--muted);margin-top:2px}.table-actions{text-align:right;white-space:nowrap}.empty-cell{text-align:center!important;padding:34px!important;color:var(--muted)}.simple-table-wrap{margin-top:16px;border:1px solid var(--line);border-radius:11px;overflow:hidden}.simple-table{width:100%;border-collapse:collapse}.simple-table th,.simple-table td{padding:11px 13px;border-bottom:1px solid var(--line);text-align:left;font-size:var(--fs-xs)}.simple-table tr:last-child th,.simple-table tr:last-child td{border:0}.simple-table th{width:34%;background:var(--surface-02);color:#667480;font-weight:600}.filterbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:14px}.searchbox{position:relative;flex:1;min-width:230px}.searchbox svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#93a0aa}.searchbox .input{padding-left:37px}.filterbar .select{width:auto;min-width:150px}

/* Badges */
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:var(--fs-2xs);font-weight:700;white-space:nowrap}.status-received,.status-triage{background:#eef3f6;color:#586b78}.status-in_progress{background:var(--brand-02);color:var(--brand-07)}.status-quality_review{background:#f0edff;color:#6751c1}.status-completed,.status-delivered{background:#eaf8f0;color:#247b50}.status-cancelled{background:#fff0f2;color:#b84756}.priority-urgent{color:#c73d50;font-weight:700}.priority-high{color:#a86e1c;font-weight:700}

/* Dashboard */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpis-3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{padding:18px}.kpi-label{display:block;color:var(--muted);font-size:var(--fs-2xs);font-weight:600}.kpi-value{font-size:30px;line-height:1;margin:11px 0 8px;letter-spacing:-.04em;font-weight:700}.kpi-help{font-size:var(--fs-2xs);color:#87939e}.workflow-banner{margin-bottom:18px;padding:18px 20px;border-radius:var(--radius);background:#0e1b28;color:white;display:flex;justify-content:space-between;align-items:center;gap:22px}.workflow-title span{display:block;font-size:var(--fs-2xs);color:#6e869a;text-transform:uppercase;letter-spacing:.11em}.workflow-title strong{display:block;margin-top:4px;font-size:var(--fs-sm)}.workflow-simple{display:flex;align-items:center;gap:10px}.workflow-simple>div{display:flex;align-items:center;gap:7px;color:#c2cfda;font-size:var(--fs-2xs);white-space:nowrap}.workflow-simple i{font-style:normal;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#173042;color:var(--brand-05);font-weight:700}.workflow-simple b{font-weight:400;color:#496173}

/* Pedido */
.status-strip{padding:15px 17px;margin-bottom:16px;display:grid;grid-template-columns:130px 1fr 150px;gap:18px;align-items:center}.label-mini{display:block;font-size:var(--fs-2xs);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.status-meta{text-align:right}.status-meta span,.status-meta strong{display:block}.status-meta span{font-size:var(--fs-2xs);color:var(--muted);text-transform:uppercase}.status-meta strong{font-size:var(--fs-xs);margin-top:3px}.status-progress{display:grid;grid-template-columns:repeat(5,1fr);align-items:start}.status-node{position:relative;text-align:center;padding-top:22px;font-size:var(--fs-3xs);color:#9aa5ae}.status-node:before{content:"";position:absolute;top:7px;left:0;right:0;height:2px;background:#e3e8eb}.status-node:first-child:before{left:50%}.status-node:last-child:before{right:50%}.status-node i{position:absolute;z-index:2;top:2px;left:50%;transform:translateX(-50%);width:12px;height:12px;border-radius:50%;background:#dfe5e8;border:3px solid white;box-shadow:0 0 0 1px #dfe5e8}.status-node.done:before,.status-node.active:before{background:var(--brand-05)}.status-node.done i,.status-node.active i{background:var(--accent);box-shadow:0 0 0 1px var(--accent)}.status-node.active{color:var(--brand-07);font-weight:700}.flow-stack{display:flex;flex-direction:column;gap:14px}.flow-section{padding:20px}.flow-section-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.flow-section-head h2{font-size:16px;margin:0}.flow-section-head p{font-size:var(--fs-2xs);color:var(--muted);margin:2px 0 0}.flow-section-head>.btn,.flow-section-head>.progress-pill{margin-left:auto}.progress-pill{padding:5px 9px;border-radius:999px;background:var(--surface-02);color:#60717b;font-size:var(--fs-2xs);font-weight:700}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.summary-grid>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-02)}.summary-grid span,.summary-grid strong{display:block}.summary-grid span{font-size:var(--fs-2xs);color:var(--muted);margin-bottom:4px}.summary-grid strong{font-size:var(--fs-xs)}.inline-note{margin-top:12px;padding:11px 12px;border-radius:10px;background:var(--surface-01);color:#5f6d78;font-size:var(--fs-xs)}.exec-steps{display:flex;flex-direction:column;gap:10px}.exec-step{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-02)}.exec-step-index{width:27px;height:27px;border-radius:8px;background:var(--surface-02);color:var(--ink-muted);display:grid;place-items:center;font-size:var(--fs-2xs);font-weight:700}.exec-step-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.exec-step-head label{font-size:var(--fs-xs);font-weight:600}.exec-step-head span{font-size:var(--fs-3xs);color:#a66c1d;background:#fff6e7;border-radius:999px;padding:3px 6px}.exec-step .field{margin:0}.section-actions{display:flex;align-items:center;gap:12px;margin-top:14px}.section-actions span{font-size:var(--fs-2xs);color:var(--muted)}.status-action-row{display:flex;align-items:center;gap:14px;padding:14px;border-radius:11px;background:var(--surface-01);border:1px solid var(--line)}.status-action-row>div strong{font-size:var(--fs-xs)}.status-action-row form{margin-left:auto}.next-arrow{color:#9aa7b0;font-size:18px}.flow-finished{margin-left:auto;color:var(--green);font-weight:600;display:flex;align-items:center;gap:6px}.qr-inline{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:12px;padding:13px;border:1px dashed #d5dde2;border-radius:11px}.qr-inline>div{display:flex;align-items:center;gap:10px}.qr-inline strong,.qr-inline span{display:block}.qr-inline strong{font-size:var(--fs-xs)}.qr-inline span{font-size:var(--fs-2xs);color:var(--muted);margin-top:2px}.history-card{overflow:hidden}.history-card summary{cursor:pointer;list-style:none;padding:15px 18px;font-size:var(--fs-xs);font-weight:600;display:flex;justify-content:space-between}.history-card summary span{color:var(--muted);font-weight:400}.history-list{padding:0 18px 16px}.history-list>div{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.history-list i{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:5px}.history-list strong,.history-list span{display:block}.history-list strong{font-size:var(--fs-2xs)}.history-list span{font-size:var(--fs-2xs);color:var(--muted);margin-top:2px}

/* Templates */
.builder-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 9px}.builder-head strong,.builder-head span{display:block}.builder-head strong{font-size:var(--fs-xs)}.builder-head span{font-size:var(--fs-2xs);color:var(--muted);margin-top:2px}/* 6 colunas: nome, tipo, os três checkboxes (obrigatório, multirrespostas,
   conformidade) e o botão de remover. Com cinco, o terceiro checkbox ficava
   sem coluna e vazava para fora do card. */
.builder-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(115px,160px) auto auto auto 34px;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--surface-02);min-width:0}.builder-row>*{min-width:0}.builder-row .input,.builder-row .select{padding:8px 9px;font-size:var(--fs-xs)}.builder-required{display:flex;align-items:center;gap:5px;font-size:var(--fs-2xs);color:#64727d;white-space:nowrap}.bf-options-box{display:none;grid-column:1/-1}.bf-options-box.show{display:block}

/* Modal / flash */
.modal-backdrop{position:fixed;z-index:90;inset:0;background:rgba(5,13,22,.55);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:18px}.modal-backdrop.open{display:flex}.modal{width:min(680px,100%);max-height:90vh;overflow:auto;background:white;border-radius:16px;box-shadow:0 28px 80px rgba(0,0,0,.24)}.modal-wide{width:min(820px,100%)}.modal-small{width:min(430px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:17px 19px;border-bottom:1px solid var(--line)}.modal-head h3{font-size:var(--fs-sm);margin:0}.modal-body{padding:19px}.modal-foot{padding:14px 19px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.qr-modal-body{text-align:center}.qr-modal-body>p{font-size:var(--fs-2xs);color:var(--muted)}.qr-box{display:inline-grid;place-items:center;background:white;padding:12px;border:1px solid var(--line);border-radius:12px;margin:2px auto 10px}.copy-url{display:flex;gap:7px;margin-top:12px}.copy-url .input{font-size:var(--fs-2xs)}.flash{position:fixed;right:22px;top:82px;z-index:100;padding:11px 14px;border-radius:10px;box-shadow:var(--shadow);font-weight:600;font-size:var(--fs-xs)}.flash-success{background:#eaf8f0;color:#187345;border:1px solid #cfeedd}.flash-error{background:#fff0f2;color:#ac3949;border:1px solid #ffd3da}.static-error{position:static;padding:10px;border-radius:9px;margin-bottom:12px}

/* Client */
.client-shell{min-height:100vh;background:var(--bg)}.client-top{background:var(--nav);padding:16px 5vw}.client-top-inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between}.client-user{display:flex;align-items:center;gap:10px}.client-user>span{color:#9eb0bf;font-size:var(--fs-2xs)}.client-content{max-width:1180px;margin:auto;padding:30px 5vw 60px}.client-welcome{margin-bottom:18px}.client-welcome>span{font-size:var(--fs-2xs);color:var(--accent-dark);font-weight:700;text-transform:uppercase;letter-spacing:.1em}.client-welcome h1{margin:6px 0 4px;font-size:28px;letter-spacing:-.035em}.client-welcome p{margin:0;color:var(--muted);font-size:var(--fs-xs)}.client-reports{margin-top:16px}

/* QR public */
.public-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:#0c1825}.public-card{width:min(470px,100%);background:white;border-radius:18px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.public-card>.brand{margin-bottom:20px}.public-card>.brand strong{color:var(--ink)}.public-status{text-align:center;padding:18px;background:var(--surface-01);border:1px solid var(--line);border-radius:12px;margin-bottom:15px}.public-status h1{font-size:22px;margin:8px 0 3px}.public-status p{font-size:var(--fs-xs);color:#3d4a55;margin:0}.public-status p span{color:var(--muted)}.qr-next{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-radius:10px;background:var(--brand-02);margin-bottom:14px}.qr-next span{font-size:var(--fs-2xs);color:var(--ink-muted)}.qr-next strong{font-size:var(--fs-xs)}.success-screen{text-align:center}.success-screen p{color:var(--muted);font-size:var(--fs-xs)}.success-icon{width:58px;height:58px;border-radius:16px;background:#eaf8f0;color:var(--green);display:grid;place-items:center;margin:0 auto 12px}.empty-state{padding:18px;border:1px dashed #dce3e7;border-radius:11px;text-align:center;color:var(--muted);font-size:var(--fs-xs)}

/* Login */
.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 480px;background:var(--nav)}.auth-visual{position:relative;padding:48px;display:flex;flex-direction:column;justify-content:space-between;color:white;background:#0c1825}.auth-grid{position:absolute;inset:0;opacity:.10;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:46px 46px}.auth-copy{position:relative;z-index:2;max-width:680px}.auth-copy h1{font-size:clamp(38px,4.8vw,66px);line-height:1.02;letter-spacing:-.055em;margin:18px 0}.auth-copy p{font-size:16px;color:#a7b7c5;max-width:560px}.auth-badges{display:flex;gap:8px;flex-wrap:wrap}.auth-badge{padding:7px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#c6d3de;font-size:var(--fs-2xs)}.auth-card-wrap{display:flex;align-items:center;justify-content:center;padding:32px;background:var(--surface-01)}.auth-card{width:min(420px,100%);background:white;padding:32px;border-radius:18px;box-shadow:0 25px 65px rgba(3,12,26,.18)}.auth-card h2{font-size:25px;letter-spacing:-.03em;margin:20px 0 6px}.auth-demo{margin-top:20px;padding:12px;border-radius:10px;background:var(--surface-02);color:#65727e;font-size:var(--fs-2xs)}

/* Report printable + compatibility */
.report-page{max-width:900px;margin:28px auto;padding:0 16px}.report-paper{background:white;min-height:1050px;padding:48px;box-shadow:var(--shadow);border-radius:4px}.report-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:22px;border-bottom:2px solid #152332}.report-header h1{margin:20px 0 0;font-size:22px}.report-number{text-align:right}.report-number strong{display:block;font-size:var(--fs-sm)}.report-section{margin:26px 0}.report-section h2{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.11em;color:#75838f;border-bottom:1px solid var(--line);padding-bottom:7px}.report-sign{margin-top:55px;padding-top:16px;border-top:1px solid var(--line);text-align:center;font-size:var(--fs-2xs);color:#667480}.no-print{display:block}.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.data-item{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-02)}.data-item small{display:block;font-size:var(--fs-3xs);text-transform:uppercase;color:#89959f;margin-bottom:4px}.data-item strong{font-size:var(--fs-xs)}.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:16px}.timeline{display:flex;flex-direction:column}.timeline-item{padding:8px 0;border-bottom:1px solid var(--line)}.timeline-item strong,.timeline-item span{display:block}.timeline-item span{font-size:var(--fs-2xs);color:var(--muted)}

@media(max-width:1050px){.workflow-banner{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.sidebar-overlay{position:fixed;z-index:35;inset:0;background:rgba(0,0,0,.4)}.sidebar-overlay.open{display:block}.main{margin-left:0}.mobile-menu{display:grid}.topbar{height:64px;padding:0 15px}.content{padding:20px 15px 42px}.status-strip{grid-template-columns:1fr}.status-meta{text-align:left}.workflow-simple{width:100%;overflow-x:auto;padding-bottom:4px}.builder-row{grid-template-columns:1fr 1fr}.builder-required{min-height:36px}.bf-remove{justify-self:end}.auth-shell{grid-template-columns:1fr}.auth-visual{display:none}.auth-card-wrap{min-height:100vh}.report-paper{padding:28px}}
@media(max-width:580px){.page-head{align-items:stretch;flex-direction:column}.page-head h1{font-size:24px}.top-actions .btn-secondary{display:none}.kpis,.kpis-3,.grid-2,.grid-3,.summary-grid,.data-grid{grid-template-columns:1fr}.form-section{grid-template-columns:34px 1fr}.workflow-simple{gap:6px}.workflow-simple>div{font-size:var(--fs-2xs)}.status-progress{overflow-x:auto;grid-template-columns:repeat(5,76px);padding-bottom:4px}.status-action-row{align-items:flex-start;flex-wrap:wrap}.status-action-row form{width:100%;margin-left:0}.status-action-row form .btn{width:100%}.qr-inline{align-items:flex-start;flex-direction:column}.section-actions{align-items:flex-start;flex-direction:column}.flow-section-head{align-items:flex-start}.flow-section-head>.btn,.flow-section-head>.progress-pill{margin-left:auto}.client-top-inner{gap:12px}.client-user>span{display:none}.client-content{padding:22px 15px 50px}.client-welcome h1{font-size:24px}.builder-row{grid-template-columns:1fr}.bf-options-box{grid-column:1}.auth-card{padding:24px}.report-page{margin:10px auto}.report-paper{padding:18px}.report-header{flex-direction:column;gap:14px}.report-number{text-align:left}}
@media print{body{background:white}.no-print{display:none!important}.report-page{max-width:none;margin:0;padding:0}.report-paper{box-shadow:none;min-height:0;border-radius:0;padding:18mm}.report-section{break-inside:avoid}}

/* ===== NexaLab V3 - workflow dinâmico / visual refinado ===== */
:root{--accent-soft:#e9fbf9;--accent-line:var(--brand-04);--ink-2:#243746;--blue-soft:#eef5ff;--violet-soft:#f2efff}
body{background:linear-gradient(180deg,#f7f9fb 0,#f4f7f9 100%)}
.content{padding-top:30px}.card{box-shadow:0 10px 35px rgba(18,34,49,.045)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.eyebrow{display:block;margin-bottom:6px;color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.12em}.eyebrow-light{color:var(--brand-05)}.modal-kicker{display:block;color:var(--brand-07);font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.12em;font-weight:800;margin-bottom:2px}.modal-head h3{margin:0}.modal-open{overflow:hidden}.modal-xwide{width:min(1040px,100%)}.field-help{display:block;margin-top:5px;font-size:var(--fs-2xs);color:var(--muted)}.field-help a{color:var(--accent-dark);font-weight:700}.inline-form{display:inline}.btn-danger-soft{color:#b84756;border-color:#f2d9de;background:#fff8f9}.table-count{font-size:var(--fs-sm)}.empty-inline{padding:11px 13px;border:1px dashed var(--line-01);border-radius:10px;color:var(--muted);font-size:var(--fs-2xs);background:var(--surface-01)}.inline-warning{padding:12px 14px;border:1px solid #f1dfb7;background:#fff9ed;color:#8b6628;border-radius:11px;font-size:var(--fs-2xs)}.inline-warning a{font-weight:800;text-decoration:underline}.info-banner{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;margin-bottom:14px;border:1px solid var(--accent-line);background:linear-gradient(135deg,var(--brand-02),var(--brand-02));border-radius:13px}.info-banner-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brand-02);color:var(--brand-07);flex:none}.info-banner strong,.info-banner span{display:block}.info-banner strong{font-size:var(--fs-xs)}.info-banner span{font-size:var(--fs-2xs);color:#63747f;margin-top:3px;max-width:850px}

/* Tabs de templates */
.template-tabs{display:flex;gap:6px;padding:5px;margin-bottom:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-02);width:max-content;max-width:100%;overflow-x:auto}.template-tab{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:9px 13px;border-radius:9px;color:#657581;font-size:var(--fs-xs);font-weight:700}.template-tab b{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:#dfe6e9;color:#657581;font-size:var(--fs-3xs)}.template-tab.active{background:white;color:#172733;box-shadow:0 3px 12px rgba(22,40,53,.07)}.template-tab.active b{background:var(--accent-soft);color:var(--brand-07)}

/* Builder de fluxo */
.workflow-builder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:17px;margin-top:4px;border-top:1px solid var(--line);margin-bottom:11px}.workflow-builder-toolbar strong,.workflow-builder-toolbar span{display:block}.workflow-builder-toolbar strong{font-size:var(--fs-xs)}.workflow-builder-toolbar span{font-size:var(--fs-2xs);color:var(--muted);margin-top:2px}.workflow-builder{display:flex;flex-direction:column;gap:10px}.workflow-builder-stage{border:1px solid var(--line-01);border-radius:13px;background:var(--surface-02);overflow:hidden}.workflow-stage-head{display:grid;grid-template-columns:35px 1fr auto;gap:10px;align-items:center;padding:11px}.workflow-stage-number{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#102331;color:var(--brand-05);font-size:var(--fs-2xs);font-weight:800}.workflow-stage-title{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(220px,1.25fr);gap:8px}.workflow-stage-title .input{padding:8px 9px;font-size:var(--fs-2xs)}.workflow-stage-actions{display:flex;gap:5px}.workflow-stage-actions .icon-btn{width:30px;height:30px}.workflow-stage-config{padding:11px 12px 12px;border-top:1px solid #e7ecef;background:white}.toggle-line{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;background:var(--surface-01);color:#52646f;font-size:var(--fs-2xs);font-weight:600}.toggle-line input{accent-color:var(--accent-dark)}.workflow-stage-fields-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 7px}.workflow-stage-fields-head strong,.workflow-stage-fields-head span{display:block}.workflow-stage-fields-head strong{font-size:var(--fs-2xs)}.workflow-stage-fields-head span{font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}.workflow-stage-fields{display:flex;flex-direction:column;gap:6px}.workflow-field-row{display:grid;grid-template-columns:12px minmax(160px,1fr) 130px 100px 32px;gap:7px;align-items:center;padding:7px;border-radius:9px;border:1px solid #e6ebee;background:var(--surface-01)}.workflow-field-row .input,.workflow-field-row .select{padding:7px 8px;font-size:var(--fs-2xs)}.workflow-field-grip{color:#a9b3ba;text-align:center}.workflow-field-required{font-size:var(--fs-3xs);color:#667681;display:flex;align-items:center;gap:4px}.wf-field-options-box{display:none;grid-column:2/-1}.wf-field-options-box.show{display:block}.workflow-stage-owner{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;padding:9px 10px;margin-bottom:10px;border-radius:10px;background:var(--surface-01);border:1px solid var(--line-01)}.workflow-stage-owner label{font-size:var(--fs-3xs)}.workflow-stage-owner .select{padding:7px 8px;font-size:var(--fs-2xs)}.workflow-stage-owner small{font-size:var(--fs-3xs);color:var(--muted);margin-top:3px;display:block}.review-stage-owner{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-3xs);color:var(--muted);margin-top:4px}
.palette-grid.palette-grid-special{grid-template-columns:minmax(0,420px)}.palette-swatch[data-palette="apisbrasil"] .palette-swatch-soft{background:var(--gold)}.palette-swatch[data-palette="apisbrasil"] .palette-swatch-line{background:color-mix(in srgb,var(--gold) 30%,#fff)}.palette-option-special{border-style:dashed;align-items:flex-start}.palette-option-special .palette-swatch{margin-top:2px}.palette-option-special .palette-name small{display:block;margin-top:2px;font-size:var(--fs-3xs);font-weight:500;color:var(--muted)}
/* As paginas publicas (QR do pedido, link do rotulo, ficha do produto) sao
   abertas tanto no celular quanto no computador. Com 540px fixos elas ficavam
   com cara de tela de celular esticada no meio de um monitor. A largura agora
   acompanha o espaco disponivel, e a moldura escura vira um fundo claro do
   proprio tema, em vez de simular um aparelho. */
.public-shell:has(.public-card-flow){background:var(--surface-01);align-content:start;padding:28px 20px 40px}
.public-card-flow .public-order-head h1{font-size:var(--fs-2xl)}
@media(max-width:700px){.public-shell:has(.public-card-flow){padding:16px 12px 28px}}
.expiry-badge{display:inline-flex;align-items:center;gap:5px;margin-top:5px;padding:3px 9px;border-radius:999px;font-size:var(--fs-3xs);font-weight:700;border:1px solid transparent}.expiry-badge.is-valid{background:var(--brand-01);color:var(--accent-dark);border-color:color-mix(in srgb,var(--accent) 18%,transparent)}.expiry-badge.is-due_soon{background:var(--gold-soft,#fdf3d8);color:var(--gold-dark,#6f4f06);border-color:color-mix(in srgb,var(--amber,#c2811f) 30%,transparent)}.expiry-badge.is-today{background:var(--gold-soft,#fdf3d8);color:var(--gold-dark,#6f4f06);border-color:var(--amber,#c2811f)}.expiry-badge.is-expired{background:color-mix(in srgb,var(--red) 12%,#fff);color:var(--red);border-color:color-mix(in srgb,var(--red) 32%,transparent)}
.builder-expiry{display:none;grid-column:1/-1;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 10px;margin-top:2px;border-radius:10px;background:var(--surface-01);border:1px solid var(--line-01)}.builder-expiry.show{display:flex}.builder-expiry-days{display:flex;align-items:center;gap:6px;font-size:var(--fs-3xs);color:var(--muted)}.builder-expiry-days .input{width:84px;min-height:38px;padding:6px 8px;text-align:center}.builder-expiry-days.hidden{display:none}
.lot-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-2xs);line-height:1.5;white-space:nowrap}.lot-value+.lot-value{margin-top:2px}
.public-product-facts{margin:0 0 14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.public-product-facts>div{padding:9px 11px;background:var(--surface-01)}.public-product-facts dt{font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.public-product-facts dd{margin:2px 0 0;font-size:var(--fs-2xs);font-weight:700;color:var(--ink);word-break:break-word}.public-product-barcode{display:flex;justify-content:center;padding:12px;margin-bottom:14px;border-radius:12px;background:#fff;border:1px solid var(--line)}.public-product-barcode svg{max-width:100%;height:auto}
.import-legend{margin:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.import-legend>div{display:grid;grid-template-columns:minmax(120px,.7fr) 1.3fr;gap:10px;padding:8px 11px;background:var(--surface-01)}.import-legend dt{font-size:var(--fs-2xs);font-weight:700;color:var(--ink)}.import-legend dd{margin:0;font-size:var(--fs-2xs);color:var(--muted);word-break:break-word}@media(max-width:520px){.import-legend>div{grid-template-columns:1fr;gap:2px}}
.public-step-owner{display:flex;align-items:center;gap:7px;padding:9px 11px;margin:0 0 12px;border-radius:10px;background:var(--surface-01);border:1px solid var(--line-01);font-size:var(--fs-2xs);color:var(--muted)}.public-step-owner strong{color:var(--ink)}.public-step-checklist{padding:11px 13px;margin-bottom:12px;border-radius:11px;background:var(--surface-01);border:1px solid var(--line-01)}.public-step-checklist strong{display:block;font-size:var(--fs-2xs);margin-bottom:6px}.public-step-checklist ul{margin:0;padding-left:18px;display:grid;gap:4px}.public-step-checklist li{font-size:var(--fs-2xs);color:var(--muted)}.public-stage-history{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.public-stage-history>strong{display:block;font-size:var(--fs-2xs);margin-bottom:9px}.public-stage-history-item{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:center;padding:7px 0}.public-stage-history-dot{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--surface-02);color:var(--muted);font-size:var(--fs-3xs);font-weight:700}.public-stage-history-item.approved .public-stage-history-dot,.public-stage-history-item.not_applicable .public-stage-history-dot{background:var(--accent);color:#fff}.public-stage-history-item>div>strong{display:block;font-size:var(--fs-2xs)}.public-stage-history-item>div>span{display:block;font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}
.workflow-snapshot-note{padding:9px 11px;border-radius:9px;background:#f1f6ff;color:#58708a;font-size:var(--fs-2xs);margin:2px 0 14px}

/* Criação do pedido */
.order-create-card{overflow:hidden}.featured-form-section{margin:0 -22px;padding-left:22px;padding-right:22px;background:linear-gradient(90deg,var(--brand-02) 0,#fbfffe 100%);border-top:1px solid var(--brand-03);border-bottom:1px solid var(--brand-03)}.featured-form-section .section-number{background:var(--brand-08);color:var(--brand-05)}.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.feature-chip{padding:5px 8px;border-radius:999px;background:var(--brand-08);color:var(--brand-05);font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.09em;font-weight:800}.select-emphasis{border-color:var(--brand-04);background:#fff}.workflow-template-preview{margin-top:2px}.workflow-preview-line{display:flex;align-items:stretch;gap:7px;overflow-x:auto;padding:3px 1px 5px}.workflow-preview-item{position:relative;min-width:145px;display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line-01);border-radius:10px;background:var(--surface-tint)}.workflow-preview-item:not(:last-child):after{content:"";position:absolute;right:-8px;top:50%;width:8px;height:1px;background:var(--line-02)}.workflow-preview-item i{font-style:normal;width:23px;height:23px;border-radius:7px;background:var(--brand-02);color:var(--brand-07);display:grid;place-items:center;font-size:var(--fs-3xs);font-weight:800;flex:none}.workflow-preview-item strong,.workflow-preview-item span{display:block}.workflow-preview-item strong{font-size:var(--fs-2xs)}.workflow-preview-item span{font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}

/* Responsáveis */
.person-cell{display:flex;align-items:center;gap:9px}.person-avatar{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:var(--brand-02);color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800}

/* Pedido V3: fluxo em destaque */
.order-page-head{margin-bottom:16px}.order-title-line{display:flex;align-items:center;gap:8px;margin-bottom:4px}.order-title-line .page-code{margin:0}.priority-badge{padding:3px 7px}.priority-bg-urgent{background:#fff0f2;color:#bd4052}.priority-bg-high{background:#fff6e7;color:#a66c1d}.priority-bg-normal{background:#eef3f6;color:#647782}.priority-bg-low{background:var(--surface-02);color:#7f8b94}/* A hero do fluxo e tudo dentro dela (card do passo atual, historico,
   badge de "processo finalizado") sempre usam os primitivos do tema claro,
   mesmo com o workspace no tema escuro: é um cartão escuro por design —
   fundo sempre profundo, texto sempre branco — não uma superfície que deva
   clarear ou escurecer com o tema.

   Reescrever os primitivos aqui basta: --brand-*, --surface-* e --ink-*
   são todos color-mix em cima deles, então toda a escada recalcula sozinha
   para dentro deste elemento, sem tocar em nenhuma regra .workflow-* — as
   dezenas que existem, e qualquer uma que vier a ser adicionada depois. */
.workflow-hero{
  /* Redeclara a escada inteira, não só os primitivos: uma variável CSS
     definida em :root (--brand-07 etc.) já chega aqui com valor resolvido
     por herança — sobrescrever só --ink-target-4 não a recalcularia. Cada
     fórmula abaixo é idêntica à de :root, só que lida aqui dentro com os
     primitivos também redeclarados aqui, então resolve para o tema claro
     custe o que custar o tema do restante do workspace. */
  --surface-tint:#fff;
  --ink-target-1:#4a5553;
  --ink-target-2:#2b3634;
  --ink-target-3:#171f1e;
  --ink-target-4:#04211f;
  --ink-target-5:#041312;

  --brand-01:color-mix(in srgb, var(--accent)  6%, var(--surface-tint));
  --brand-02:color-mix(in srgb, var(--accent) 14%, var(--surface-tint));
  --brand-03:color-mix(in srgb, var(--accent) 26%, var(--surface-tint));
  --brand-04:color-mix(in srgb, var(--accent) 42%, var(--surface-tint));
  --brand-05:color-mix(in srgb, var(--accent) 66%, var(--surface-tint));
  --brand-06:var(--accent);
  --brand-07:color-mix(in srgb, var(--accent) 72%, var(--ink-target-4));
  --brand-08:color-mix(in srgb, var(--accent) 24%, var(--ink-target-5));

  --surface-01:color-mix(in srgb, var(--accent)  4%, var(--surface-tint));
  --surface-02:color-mix(in srgb, var(--accent)  9%, var(--surface-tint));
  --line-01:color-mix(in srgb, var(--accent) 17%, var(--surface-tint));
  --line-02:color-mix(in srgb, var(--accent) 32%, var(--surface-tint));

  --ink-muted:color-mix(in srgb, var(--accent) 26%, var(--ink-target-1));
  --ink-soft:color-mix(in srgb, var(--accent) 22%, var(--ink-target-2));
  --ink-deep:color-mix(in srgb, var(--accent) 18%, var(--ink-target-3));

  /* --ink/--muted/--faint não são fórmulas (são valores fixos por tema em
     :root), então também precisam da própria linha aqui. */
  --ink:#10201f;
  --muted:#71817f;
  --faint:#9caaa8;
}
.workflow-hero{padding:0;margin-bottom:16px;overflow:hidden;border-color:#1a3140;background:linear-gradient(145deg,#0c1825 0,#112839 68%,var(--brand-08) 100%);color:white;box-shadow:0 20px 50px rgba(12,24,37,.16)}.workflow-hero-top{padding:22px 23px 17px;display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.workflow-hero-title{display:flex;align-items:center;gap:10px}.workflow-hero-title h2{margin:0;font-size:20px;letter-spacing:-.025em}.workflow-progress-number{font-size:var(--fs-3xs);padding:4px 7px;border-radius:999px;background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 18%, transparent);color:var(--brand-05);font-weight:800}.workflow-hero-top p{margin:5px 0 0;color:#8fa2b1;font-size:var(--fs-2xs)}.workflow-hero-side{text-align:right;min-width:140px}.workflow-hero-side span,.workflow-hero-side strong{display:block}.workflow-hero-side span{font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.1em;color:#718798}.workflow-hero-side strong{font-size:var(--fs-xs);margin-top:4px;color:#e7eef3}.workflow-track{display:grid;grid-template-columns:repeat(var(--workflow-count),minmax(150px,1fr));gap:0;padding:5px 23px 8px;overflow-x:auto}.workflow-track-step{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:120px;padding-right:14px}.workflow-track-step:not(:last-child):after{content:"";position:absolute;left:36px;right:8px;top:14px;height:1px;background:#2a4050;z-index:0}.workflow-dot{position:relative;z-index:2;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;flex:none;background:#1b3040;border:1px solid #2d4658;color:#708697;font-size:var(--fs-2xs);font-weight:800}.workflow-track-step.completed .workflow-dot{background:var(--brand-07);border-color:var(--brand-06);color:white}.workflow-track-step.in_progress .workflow-dot,.workflow-track-step.current .workflow-dot{background:var(--brand-05);border-color:var(--brand-05);color:var(--brand-08);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent)}.workflow-track-step.completed:not(:last-child):after{background:var(--brand-07)}.workflow-track-label{position:relative;z-index:2;min-width:0}.workflow-track-label strong,.workflow-track-label span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-track-label strong{font-size:var(--fs-2xs);color:#bfccd5}.workflow-track-label span{font-size:var(--fs-3xs);color:#657d8f;margin-top:2px}.workflow-track-step.current .workflow-track-label strong{color:white}.workflow-track-step.completed .workflow-track-label strong{color:var(--brand-04)}.workflow-progress-bar{height:3px;background:rgba(255,255,255,.05)}.workflow-progress-bar i{display:block;height:100%;background:var(--brand-05);transition:.25s}.workflow-current-card{margin:16px 18px 18px;background:white;color:var(--ink-on-light);border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.3)}.workflow-current-card.active{box-shadow:0 11px 35px rgba(0,0,0,.10)}.workflow-current-head{display:grid;grid-template-columns:39px 1fr auto;gap:11px;padding:16px 17px;border-bottom:1px solid var(--line);align-items:flex-start}.workflow-current-index{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:var(--brand-02);color:var(--brand-07);font-weight:800}.workflow-current-head h3{margin:0;font-size:16px}.workflow-current-head p{margin:3px 0 0;color:var(--muted);font-size:var(--fs-2xs)}.workflow-current-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.workflow-mode-tag{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:8px;background:var(--surface-01);color:#5f6f7a;font-size:var(--fs-3xs);font-weight:700}.workflow-mode-tag.qr-on{background:var(--brand-02);color:var(--brand-07)}.workflow-mode-tag.qr-off{background:#fff2f3;color:#ad5260}.workflow-start-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 17px}.workflow-start-panel strong,.workflow-start-panel span{display:block}.workflow-start-panel strong{font-size:var(--fs-xs)}.workflow-start-panel span{font-size:var(--fs-2xs);color:var(--muted);margin-top:2px}.workflow-fields-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px 14px;padding:14px 17px 4px;align-items:start}.workflow-simple-message{display:flex;align-items:center;gap:10px;padding:14px 17px;color:var(--ink-soft);background:var(--brand-01)}.workflow-simple-message strong,.workflow-simple-message span{display:block}.workflow-simple-message strong{font-size:var(--fs-2xs)}.workflow-simple-message span{font-size:var(--fs-3xs);color:#63807e;margin-top:2px}.workflow-simple-message.compact{border-radius:10px;margin-bottom:13px;padding:11px}.workflow-current-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 17px;border-top:1px solid var(--line);background:var(--surface-01)}.workflow-current-actions>div:first-child span,.workflow-current-actions>div:first-child strong{display:block}.workflow-current-actions>div:first-child span{font-size:var(--fs-3xs);color:var(--muted);text-transform:uppercase}.workflow-current-actions>div:first-child strong{font-size:var(--fs-2xs);margin-top:2px}.action-buttons{display:flex;gap:7px}.workflow-complete-card{margin:16px 18px 18px;padding:17px;display:flex;align-items:center;gap:12px;background:white;color:var(--ink-on-light);border-radius:14px}.workflow-complete-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eaf8f0;color:#218157}.workflow-complete-card>div:nth-child(2){flex:1}.workflow-complete-card span,.workflow-complete-card strong,.workflow-complete-card p{display:block}.workflow-complete-card span{font-size:var(--fs-3xs);text-transform:uppercase;color:#2b8d62;font-weight:800}.workflow-complete-card strong{font-size:var(--fs-sm);margin-top:2px}.workflow-complete-card p{font-size:var(--fs-2xs);color:var(--muted);margin:3px 0 0}.workflow-records{border-top:1px solid rgba(255,255,255,.08);background:rgba(4,13,21,.18)}.workflow-records>summary{list-style:none;cursor:pointer;padding:12px 20px;color:#aab9c5;font-size:var(--fs-2xs);font-weight:700;display:flex;justify-content:space-between}.workflow-records>summary span{color:#607687;font-weight:500}.workflow-record-list{padding:0 18px 18px;display:flex;flex-direction:column;gap:6px}.workflow-record{background:white;color:var(--ink-on-light);border-radius:10px;overflow:hidden}.workflow-record>summary{list-style:none;cursor:pointer;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px}.workflow-record>summary>div{display:flex;align-items:center;gap:8px}.record-index{width:23px;height:23px;border-radius:7px;background:var(--surface-02);color:#61747e;display:grid;place-items:center;font-size:var(--fs-3xs);font-weight:800}.workflow-record summary strong,.workflow-record summary small{display:block}.workflow-record summary strong{font-size:var(--fs-2xs)}.workflow-record summary small{font-size:var(--fs-3xs);color:var(--muted);margin-top:1px}.workflow-step-badge.pending{background:#eef3f6;color:#657681}.workflow-step-badge.in_progress{background:var(--brand-02);color:var(--brand-07)}.workflow-step-badge.completed{background:#eaf8f0;color:#247b50}.workflow-record-body{padding:0 12px 12px;border-top:1px solid var(--line)}.record-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding-top:10px}.record-meta>div{padding:8px;border-radius:8px;background:var(--surface-01)}.record-meta span,.record-meta strong{display:block}.record-meta span{font-size:var(--fs-3xs);color:var(--muted)}.record-meta strong{font-size:var(--fs-3xs);margin-top:2px}

/* Tabs do pedido */
.order-tabs{display:flex;gap:4px;margin-bottom:10px;padding:4px;border:1px solid var(--line);background:var(--surface-02);border-radius:12px;width:max-content;max-width:100%;overflow-x:auto}.order-tab{border:0;background:transparent;border-radius:9px;padding:9px 12px;color:#6b7984;white-space:nowrap;font-size:var(--fs-2xs);font-weight:700;cursor:pointer}.order-tab span{display:inline-grid;place-items:center;margin-left:4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#dfe5e8;font-size:var(--fs-3xs)}.order-tab.active{background:white;color:#172733;box-shadow:0 3px 10px rgba(23,39,51,.07)}.order-tab.active span{background:var(--brand-02);color:var(--brand-07)}.order-tab-panel{display:none}.order-tab-panel.active{display:block}.panel-icon{width:34px;height:34px;border-radius:10px;background:var(--surface-02);color:var(--brand-07);display:grid;place-items:center;flex:none}.inner-expand{margin-top:14px}.inner-expand>summary{cursor:pointer;font-size:var(--fs-2xs);font-weight:700;color:#42525e}.history-list.standalone{padding:0}.history-list.standalone>div:first-child{border-top:0}

/* QR público V3 */
.public-card-flow{width:min(920px,100%);padding:0;overflow:hidden}.public-brand-row{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.public-code{font-size:var(--fs-2xs);font-weight:800;letter-spacing:.07em;color:#61727e}.public-order-head{padding:18px 20px 10px}.public-order-head>span{font-size:var(--fs-3xs);text-transform:uppercase;color:var(--brand-07);font-weight:800;letter-spacing:.1em}.public-order-head h1{margin:4px 0 2px;font-size:19px;letter-spacing:-.025em}.public-order-head p{margin:0;color:var(--muted);font-size:var(--fs-2xs)}.public-flow-progress{padding:8px 20px 11px}.public-flow-progress>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-3xs);color:var(--muted)}.public-flow-progress strong{font-size:var(--fs-2xs);color:#40515d}.mini-progress{height:4px;border-radius:10px;background:var(--line-01);margin-top:6px;overflow:hidden}.mini-progress i{display:block;height:100%;background:var(--accent);border-radius:10px}.public-stage-row{display:flex;gap:6px;padding:0 20px 14px}.public-stage-row span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:var(--surface-02);color:#7b8993;font-size:var(--fs-3xs);font-weight:800}.public-stage-row span.completed{background:#e3f6ed;color:#287d56}.public-stage-row span.current,.public-stage-row span.in_progress{background:var(--brand-02);color:var(--brand-07);box-shadow:0 0 0 3px var(--brand-02)}.static-message{position:static;margin:0 20px 12px;padding:10px 11px;border-radius:9px;font-size:var(--fs-2xs);display:flex;align-items:center;gap:6px}.public-current-step{padding:0 20px 20px}.public-step-head{padding:14px;border-radius:12px 12px 0 0;background:var(--surface-01);border:1px solid var(--line);border-bottom:0}.public-step-head>span{font-size:var(--fs-3xs);text-transform:uppercase;color:var(--brand-07);font-weight:800;letter-spacing:.08em}.public-step-head h2{font-size:16px;margin:3px 0 2px}.public-step-head p{font-size:var(--fs-2xs);color:var(--muted);margin:0}.public-current-step form{padding:14px;border:1px solid var(--line);border-radius:0 0 12px 12px}.public-fields{padding-top:2px}.qr-blocked{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid #f0dfe1;background:#fff7f8;color:#9b4d59;border-radius:0 0 12px 12px}.qr-blocked strong,.qr-blocked span{display:block}.qr-blocked strong{font-size:var(--fs-2xs)}.qr-blocked span{font-size:var(--fs-3xs);color:#896c71;margin-top:2px}.public-finished{padding:18px 20px 25px}.public-security-note{padding:10px 20px;background:var(--surface-01);border-top:1px solid var(--line);font-size:var(--fs-3xs);color:#8b969e;text-align:center}

@media(max-width:900px){.workflow-current-head{grid-template-columns:39px 1fr}.workflow-current-tags{grid-column:2;justify-content:flex-start}.workflow-fields-grid{grid-template-columns:1fr}.workflow-stage-title{grid-template-columns:1fr}.workflow-field-row{grid-template-columns:12px 1fr 148px 112px 32px}}
@media(max-width:720px){.workflow-hero-top{flex-direction:column}.workflow-hero-side{text-align:left}.workflow-track{grid-template-columns:repeat(var(--workflow-count),170px)}.workflow-current-actions,.workflow-start-panel,.workflow-complete-card{align-items:flex-start;flex-direction:column}.action-buttons{width:100%;flex-direction:column}.action-buttons .btn,.workflow-start-panel .btn,.workflow-complete-card>.btn{width:100%}.workflow-field-row{grid-template-columns:12px 1fr 32px}.workflow-field-row .wf-field-type,.workflow-field-row .workflow-field-required{grid-column:2}.wf-field-options-box{grid-column:2/-1}.workflow-stage-head{grid-template-columns:34px 1fr}.workflow-stage-actions{grid-column:2}.record-meta{grid-template-columns:1fr}.template-tabs,.order-tabs{width:100%}}
@media(max-width:520px){.workflow-hero-top{padding:18px 16px 13px}.workflow-track{padding-left:16px;padding-right:16px}.workflow-current-card,.workflow-complete-card{margin:13px}.workflow-current-head{padding:13px;grid-template-columns:34px 1fr}.workflow-current-index{width:31px;height:31px}.workflow-current-tags{grid-column:1/-1}.workflow-fields-grid,.workflow-start-panel,.workflow-current-actions{padding-left:13px;padding-right:13px}.workflow-stage-head{grid-template-columns:1fr}.workflow-stage-number{display:none}.workflow-stage-actions{grid-column:1}.workflow-stage-fields-head{align-items:flex-start;flex-direction:column}.workflow-builder-toolbar{align-items:flex-start;flex-direction:column}.workflow-builder-toolbar .btn{width:100%}.section-heading-row{flex-direction:column}.workflow-preview-item{min-width:130px}}

/* Identidade NexaLab */
.brand-mark,
.workspace-body .brand-mark{
  display:block;
  width:42px;
  height:42px;
  flex:none;
  border-radius:14px;
  background:transparent url('../images/nexalab-logo.png') center/contain no-repeat;
  box-shadow:0 10px 24px rgba(8,115,108,.2);
}
.brand-mark:after,
.workspace-body .brand-mark:after{display:none}
.auth-card .brand-mark,.public-card .brand-mark,.report-brand .brand-mark{width:36px;height:36px;border-radius:12px}

/* A logo acompanha a paleta: cada arquivo abaixo é o mesmo ícone com o matiz
   e a saturação recalculados a partir da cor de marca (mantendo o brilho e a
   sombra da ilustração original), gerado por script a partir de
   nexalab-logo.png. Verde é o padrão e usa o arquivo original, sem regra própria. */
[data-palette="roxo"] .brand-mark{background-image:url('../images/nexalab-logo-roxo.png')}
[data-palette="rosa"] .brand-mark{background-image:url('../images/nexalab-logo-rosa.png')}
[data-palette="azul"] .brand-mark{background-image:url('../images/nexalab-logo-azul.png')}
[data-palette="ambar"] .brand-mark{background-image:url('../images/nexalab-logo-ambar.png')}
[data-palette="grafite"] .brand-mark{background-image:url('../images/nexalab-logo-grafite.png')}
/* A Apis Brasil usa a marca da propria cliente. Diferente das irmas acima, a
   arte nao e um icone quadrado: a geometria e o brilho sao ajustados no bloco
   da paleta, mais abaixo, que e onde as regras de .workspace-body perdem o
   empate de especificidade. */
[data-palette="apisbrasil"] .brand-mark{background-image:url('../images/apisbrasil-logo.webp')}

/* =========================================================
   VISUAL V4 — linguagem do Carteira Saúde aplicada ao NexaLab
   Mantém a identidade verde/teal do produto.
   ========================================================= */
:root{
  /* ---------------------------------------------------------------
     Cor da marca. É o único ponto que as paletas trocam — tudo abaixo
     é derivado dela com color-mix, então mudar estas três linhas muda
     o sistema inteiro. Ver os blocos [data-palette] mais adiante.
     --------------------------------------------------------------- */
  --accent:#17b8aa;
  --accent-dark:#0d8f84;
  --accent-2:#39cec0;

  /* ---------------------------------------------------------------
     Primitivos de tema (claro por padrão). Tudo abaixo — a escada da
     marca, as superfícies, as linhas, os cinzas de texto — é derivado
     destes dois pontos por color-mix. O bloco [data-theme="dark"] no
     fim do arquivo troca só estas seis variáveis; nenhuma fórmula
     muda, então claro e escuro nunca podem divergir por engano.
     --surface-tint: o "branco" das superfícies (cards, sidebar, mesa).
     --ink-target-N: os pontos de chegada do texto, do mais claro (1)
     ao mais escuro/contrastante (5).
     --------------------------------------------------------------- */
  --surface-tint:#fff;
  --ink-target-1:#4a5553;
  --ink-target-2:#2b3634;
  --ink-target-3:#171f1e;
  --ink-target-4:#04211f;
  --ink-target-5:#041312;

  /* Fixo em qualquer tema: para texto sobre um branco que não muda (ver uso abaixo). */
  --ink-on-light:#10201f;

  /* Escada da marca: superfícies tingidas (01) até o tom mais escuro (08).
     As porcentagens reproduzem o teal original, então a paleta padrão
     continua idêntica ao que já existia. */
  --brand-01:color-mix(in srgb, var(--accent)  6%, var(--surface-tint));
  --brand-02:color-mix(in srgb, var(--accent) 14%, var(--surface-tint));
  --brand-03:color-mix(in srgb, var(--accent) 26%, var(--surface-tint));
  --brand-04:color-mix(in srgb, var(--accent) 42%, var(--surface-tint));
  --brand-05:color-mix(in srgb, var(--accent) 66%, var(--surface-tint));
  --brand-06:var(--accent);
  --brand-07:color-mix(in srgb, var(--accent) 72%, var(--ink-target-4));
  --brand-08:color-mix(in srgb, var(--accent) 24%, var(--ink-target-5));

  /* Superfícies e linhas ficam separadas de propósito: fundi-las apagaria
     a borda de um card contra o próprio fundo dele. */
  --surface-01:color-mix(in srgb, var(--accent)  4%, var(--surface-tint));
  --surface-02:color-mix(in srgb, var(--accent)  9%, var(--surface-tint));
  --line-01:color-mix(in srgb, var(--accent) 17%, var(--surface-tint));
  --line-02:color-mix(in srgb, var(--accent) 32%, var(--surface-tint));

  /* Cinzas de texto com um toque da marca. A luminosidade vem do cinza
     neutro, então o contraste não muda de paleta para paleta — só de
     tema, quando os ink-target trocam de ponta (claro vira escuro). */
  --ink-muted:color-mix(in srgb, var(--accent) 26%, var(--ink-target-1));
  --ink-soft:color-mix(in srgb, var(--accent) 22%, var(--ink-target-2));
  --ink-deep:color-mix(in srgb, var(--accent) 18%, var(--ink-target-3));

  --bg:var(--surface-01);
  --surface:color-mix(in srgb, var(--surface-tint) 88%, transparent);
  --surface-strong:var(--surface-tint);
  --surface-2:var(--surface-01);
  --surface-muted:color-mix(in srgb, var(--surface-tint) 68%, transparent);
  --ink:#10201f;
  --muted:#71817f;
  --faint:#9caaa8;
  --line:color-mix(in srgb, var(--accent) 13%, transparent);
  --nav:#ffffff;
  --nav-hover:var(--brand-01);
  --accent-soft:var(--brand-02);
  --green:#228866;
  --green-soft:#e5f7ef;
  --amber:#bd7b22;
  --amber-soft:#fff2df;
  --red:#cf5364;
  --red-soft:#ffedf0;
  --purple:#6170df;
  --radius:18px;
  --radius-sm:14px;
  --radius-md:22px;
  --radius-lg:28px;
  --shadow:0 24px 70px rgba(32,99,92,.12);
  --shadow-soft:0 14px 42px rgba(32,99,92,.09);
  --sidebar:252px;

  /* Escala tipográfica — ponto único de ajuste do tamanho do texto.
     A impressão do laudo usa pt e não passa por estes tokens. */
  --fs-3xs:11px;  /* rótulos e metadados; antes 7px e 8px */
  --fs-2xs:12px;  /* textos de apoio e badges; antes 9px e 10px */
  --fs-xs:13px;   /* corpo secundário e tabelas; antes 11px e 12px */
  --fs-sm:14px;   /* corpo padrão; antes 13px e 14px */
}
html{background:var(--surface-01)}
body{
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 6%,color-mix(in srgb, var(--accent) 14%, transparent),transparent 28%),
    radial-gradient(circle at 90% 5%,color-mix(in srgb, var(--accent) 12%, transparent),transparent 26%),
    linear-gradient(135deg,var(--surface-tint) 0%,var(--surface-01) 47%,var(--brand-02) 100%);
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:var(--fs-sm);
  letter-spacing:-.012em;
}
::selection{background:color-mix(in srgb, var(--accent) 20%, transparent)}

/* Barra de rolagem no tom da marca, em vez da cinza padrão do navegador.
   scrollbar-color cobre Firefox; os pseudo-elementos cobrem Chrome/Edge/
   Safari. Os dois tokens já são theme-aware (mudam com paleta e com claro/
   escuro), então a barra segue os dois sem precisar de regra própria. */
html{scrollbar-color:var(--line-02) transparent;scrollbar-width:thin}
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--line-02);border-radius:999px}
*::-webkit-scrollbar-thumb:hover{background:var(--brand-05)}
*::-webkit-scrollbar-corner{background:transparent}

/* Estrutura principal */
.workspace-body .app-shell{min-height:100vh;padding:16px 16px 16px calc(var(--sidebar) + 32px)}
.workspace-body .sidebar{
  inset:16px auto 16px 16px;
  width:var(--sidebar);
  height:auto;
  padding:18px 14px 14px;
  border-radius:28px;
  color:var(--ink);
  background:color-mix(in srgb, var(--surface-tint) 82%, transparent);
  border:1px solid color-mix(in srgb, var(--surface-tint) 90%, transparent);
  box-shadow:0 22px 64px rgba(36,93,87,.11);
  backdrop-filter:blur(22px);
  overflow:hidden;
}
.sidebar-brand-wrap{padding:4px 6px 18px;border-bottom:1px solid var(--line);margin-bottom:18px}
.workspace-body .main{margin-left:0;min-width:0}
.workspace-body .topbar{
  height:72px;
  /* Sem largura máxima: usa todo o espaço disponível ao lado da barra
     lateral, para telas maiores terem espaço de sobra conforme as tabelas
     crescerem. O alinhamento com .content vem de as duas terem exatamente
     o mesmo padding horizontal (24px), não de uma largura compartilhada —
     essa é a parte que realmente importa manter igual entre as duas. */
  padding:0 24px;
  background:color-mix(in srgb, var(--surface-tint) 72%, transparent);
  border:1px solid color-mix(in srgb, var(--surface-tint) 74%, transparent);
  border-radius:22px;
  box-shadow:0 8px 28px rgba(42,96,91,.05);
  backdrop-filter:blur(18px);
}
/* max-width e margin explícitos para cancelar a regra base .content (linha 6, max-width:1480px;margin:0 auto) -- essa regra continua valendo por baixo para telas fora do workspace, então aqui ela precisa ser desligada de verdade, não só deixada sem repetição. */
.workspace-body .content{padding:30px 24px 48px;max-width:none;margin:0}
.sidebar-spacer{flex:1;min-height:0}
.sidebar-nav{display:flex;min-height:0;flex-direction:column;gap:5px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}
.sidebar-nav::-webkit-scrollbar{display:none;width:0;height:0}
.workspace-body .brand{gap:11px;color:var(--ink)}
.workspace-body .brand strong{font-size:18px;font-weight:800;letter-spacing:-.045em}
.workspace-body .brand small{color:var(--muted);font-size:var(--fs-2xs);margin-top:1px}
/* Só a sombra é redeclarada aqui: repetir o background por cima do bloco
   "Identidade NexaLab" lá em cima derrubava as variantes de logo por
   paleta (mesma especificidade, .workspace-body .brand-mark vindo depois
   sempre ganhava o empate e voltava para a imagem verde). */
.workspace-body .brand-mark{
  width:44px;height:44px;border-radius:14px;
  box-shadow:0 12px 26px color-mix(in srgb, var(--accent) 22%, transparent)
}
.workspace-body .brand-mark:after{display:none}
.workspace-body .nav-label{padding:0 10px 8px;color:#9aa9a7;font-size:var(--fs-2xs);font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.workspace-body .nav-link{
  min-height:48px;padding:6px 10px;border-radius:15px;color:#5f706e;font-size:var(--fs-xs);font-weight:700;gap:10px;position:relative;
  transition:background .18s ease,color .18s ease,transform .18s ease
}
.workspace-body .nav-link:hover{background:var(--surface-01);color:var(--brand-08);transform:translateX(1px)}
.workspace-body .nav-link.active{background:linear-gradient(135deg,var(--brand-02),var(--brand-02));color:var(--brand-07);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 8%, transparent)}
.nav-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--surface-01);color:#788987;flex:none}
.nav-link.active .nav-icon{background:white;color:var(--accent-dark);box-shadow:0 8px 18px color-mix(in srgb, var(--accent) 10%, transparent)}
.nav-active-dot{position:absolute;right:11px;width:6px;height:6px;border-radius:50%;background:var(--brand-06);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent)}
.sidebar-portal{display:flex;align-items:center;gap:9px;margin:12px 2px;padding:10px;border:1px solid color-mix(in srgb, var(--accent) 14%, transparent);border-radius:17px;background:linear-gradient(135deg,var(--brand-01),var(--brand-02));color:var(--ink-deep)}
.sidebar-portal>span:nth-child(2){min-width:0;flex:1}.sidebar-portal strong,.sidebar-portal small{display:block}.sidebar-portal strong{font-size:var(--fs-2xs)}.sidebar-portal small{margin-top:2px;color:#7e918f;font-size:var(--fs-3xs)}
.workspace-body .sidebar-foot{padding:12px 2px 0;border-top:1px solid var(--line)}
.workspace-body .sidebar-user{padding:7px;border-radius:16px;background:var(--surface-02)}
.workspace-body .avatar,.top-avatar{background:linear-gradient(145deg,var(--brand-03),var(--brand-02));color:var(--brand-07);border:1px solid color-mix(in srgb, var(--accent) 12%, transparent);font-weight:800}
.workspace-body .sidebar-user .meta strong{font-size:var(--fs-2xs);color:var(--ink-deep)}.workspace-body .sidebar-user .meta span{font-size:var(--fs-3xs);color:#879694}.logout-link{color:#91a09e;padding:7px;border-radius:10px}.logout-link:hover{background:white;color:#c14d60}

/* Cabeçalho */
.breadcrumb{display:grid;gap:2px}.breadcrumb span{color:#9aa8a6;font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.09em}.breadcrumb strong{font-size:var(--fs-sm);letter-spacing:-.02em}
.top-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:var(--fs-2xs);box-shadow:0 8px 20px rgba(29,104,97,.08)}
.mobile-menu{border-radius:12px}.mobile-menu:hover{background:var(--surface-02)}

/* Cabeçalhos e tipografia */
.page-head{margin-bottom:22px;align-items:flex-end;gap:20px}
.page-head h1{margin:3px 0 7px;font-size:clamp(28px,3.2vw,38px);font-weight:800;letter-spacing:-.052em;line-height:1.04;color:var(--brand-08)}
.page-head p{max-width:720px;margin:0;color:var(--muted);font-size:var(--fs-sm);line-height:1.55}
.eyebrow,.welcome-line{display:block;color:#6d7e7c;font-size:var(--fs-xs);font-weight:500;letter-spacing:-.01em;text-transform:none}
.welcome-line strong{color:var(--brand-07);font-weight:800}
.dashboard-page-head{margin-top:2px;margin-bottom:24px}
.dashboard-page-head h1{margin-top:6px}

/* Cards */
.card,.modal,.auth-card,.public-card{
  background:color-mix(in srgb, var(--surface-tint) 88%, transparent);
  border:1px solid color-mix(in srgb, var(--surface-tint) 90%, transparent);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(20px)
}
.card{border-radius:24px}
.card-head{padding:19px 21px 14px;border-bottom:1px solid var(--line)}
.card-head h3{font-size:16px;font-weight:800;letter-spacing:-.035em}.card-head p{font-size:var(--fs-xs);color:var(--muted);margin-top:3px}
.card-pad{padding:22px}
.kpis{gap:14px;margin-bottom:18px}.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi{min-height:178px;padding:20px;position:relative;overflow:hidden}
.kpi:after{content:"";position:absolute;width:110px;height:110px;right:-38px;top:-38px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb, var(--accent) 9%, transparent),transparent 68%);pointer-events:none}
.kpi-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;margin-bottom:22px}
.kpi-icon-primary{background:var(--brand-02);color:var(--brand-07)}.kpi-icon-teal{background:var(--brand-02);color:var(--brand-07)}.kpi-icon-green{background:#e8f8ef;color:#27855d}.kpi-icon-danger{background:color-mix(in srgb,var(--red) 12%,#fff);color:var(--red)}.kpi-icon-warning{background:var(--gold-soft,#fdf3d8);color:var(--gold-dark,#6f4f06)}
.kpi-label{color:var(--muted);font-size:var(--fs-xs);font-weight:500}.kpi-value{margin-top:5px;font-size:32px;font-weight:800;letter-spacing:-.06em;line-height:1}.kpi-help{display:block;margin-top:9px;color:var(--faint);font-size:var(--fs-2xs)}

/* Botões e inputs */
.btn{min-height:44px;padding:0 16px;border-radius:14px;font-size:var(--fs-xs);font-weight:800;letter-spacing:-.02em;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{color:#fff;background:linear-gradient(135deg,var(--brand-06) 0%,var(--brand-07) 100%);border-color:transparent;box-shadow:0 14px 28px color-mix(in srgb, var(--accent) 20%, transparent)}
.btn-primary:hover{box-shadow:0 17px 34px color-mix(in srgb, var(--accent) 24%, transparent)}
.btn-secondary,.btn-soft,.btn-table{background:color-mix(in srgb, var(--surface-tint) 82%, transparent);color:var(--ink-soft);border:1px solid var(--line);box-shadow:0 8px 18px rgba(50,94,89,.04)}
.btn-secondary:hover,.btn-soft:hover,.btn-table:hover{background:var(--surface-tint);border-color:color-mix(in srgb, var(--accent) 24%, transparent);color:var(--brand-07)}
.btn-sm{min-height:38px;border-radius:12px;padding:0 13px}.btn-table{min-height:32px;border-radius:10px;padding:0 11px;font-size:var(--fs-2xs)}
.icon-btn{border-radius:12px;background:var(--surface-01);border:1px solid var(--line);color:var(--muted)}.icon-btn:hover{background:var(--surface-tint);color:var(--brand-07);border-color:color-mix(in srgb, var(--accent) 25%, transparent)}
.input,.select,.textarea,input,select,textarea{border-color:rgba(36,104,97,.14);border-radius:13px;background:color-mix(in srgb, var(--surface-tint) 86%, transparent);min-height:44px;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--surface-tint) 70%, transparent);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.input:focus,.select:focus,.textarea:focus,input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb, var(--accent) 48%, transparent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent);background:var(--surface-tint);outline:none}
.field label:not(.choice-option){font-size:var(--fs-2xs);color:var(--ink-soft);font-weight:700}.field-help{color:var(--muted)}.required{color:#d45466}

/* Tabelas */
.table-wrap{border-radius:0 0 24px 24px;overflow:auto}
.table{font-size:var(--fs-xs)}.table thead{background:color-mix(in srgb, var(--accent) 5%, var(--surface-tint))}
.table th{padding:12px 16px;color:var(--muted);font-size:var(--fs-3xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.table td{padding:14px 16px;border-bottom:1px solid rgba(36,104,97,.075);vertical-align:middle}
.table tbody tr{transition:background .16s ease}.table tbody tr:hover{background:color-mix(in srgb, var(--accent) 7%, var(--surface-tint))}.table tbody tr:last-child td{border-bottom:0}
.entity-title{font-size:var(--fs-2xs);font-weight:800;color:var(--ink-deep)}.entity-sub{margin-top:2px;color:var(--muted);font-size:var(--fs-2xs)}.code{color:var(--brand-07);background:var(--brand-02);border:1px solid color-mix(in srgb, var(--accent) 10%, transparent);border-radius:8px;padding:3px 6px;font-size:var(--fs-3xs);font-weight:800;letter-spacing:.04em;width:max-content}
.badge{border-radius:999px;padding:5px 8px;font-size:var(--fs-3xs);font-weight:800;border:1px solid transparent}.status-completed{background:#e6f7ef;color:#247854}.status-quality_review,.status-in_progress{background:var(--brand-02);color:var(--brand-07)}.status-cancelled{background:#ffedf0;color:#a74555}

/* Abas */
.template-tabs,.order-tabs{gap:5px;padding:5px;border-color:rgba(36,104,97,.10);border-radius:16px;background:color-mix(in srgb, var(--accent) 8%, var(--surface-tint));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--surface-tint) 70%, transparent);margin-bottom:18px}
.template-tab,.order-tab{min-height:38px;border-radius:12px;padding:0 14px;color:var(--muted);font-size:var(--fs-2xs);font-weight:700}
.template-tab.active,.order-tab.active{background:var(--surface-tint);color:var(--brand-07);box-shadow:0 7px 18px rgba(40,101,95,.08)}
.template-tab b,.order-tab span{background:var(--surface-02);color:var(--muted)}.template-tab.active b,.order-tab.active span{background:var(--brand-03);color:var(--brand-07)}
.settings-tabs{display:grid;grid-template-columns:repeat(5,max-content);align-items:stretch;gap:8px;width:max-content;max-width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.settings-tabs .template-tab{justify-content:center;min-height:44px;padding:0 17px;border:1px solid color-mix(in srgb,var(--accent) 11%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--surface-tint) 88%,transparent);line-height:1.2;text-align:center;transition:border-color .16s,background .16s,box-shadow .16s,transform .16s}
.settings-tabs .template-tab:hover{border-color:color-mix(in srgb,var(--accent) 28%,var(--line));background:var(--surface-tint);transform:translateY(-1px)}
.settings-tabs .template-tab:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 20%,transparent);outline-offset:2px}
.settings-tabs .template-tab.active{border-color:color-mix(in srgb,var(--accent) 26%,var(--line));background:var(--surface-tint);box-shadow:0 8px 20px rgba(40,101,95,.10)}
.settings-group-switch{display:grid;grid-template-columns:repeat(2,minmax(220px,340px));gap:10px;margin:0 0 20px}.settings-group-option{position:relative;display:grid;gap:3px;padding:14px 17px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);transition:transform .18s cubic-bezier(.2,0,0,1),border-color .18s,background .18s}.settings-group-option:after{content:"";position:absolute;right:15px;top:50%;width:7px;height:7px;border-top:2px solid var(--muted);border-right:2px solid var(--muted);transform:translateY(-50%) rotate(45deg)}.settings-group-option:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}.settings-group-option.active{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--surface));box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 12%,transparent)}.settings-group-option.active:before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:3px;border-radius:0 4px 4px 0;background:var(--accent)}.settings-group-option strong{font-size:var(--fs-xs)}.settings-group-option small{color:var(--muted);font-size:var(--fs-3xs)}
.info-banner{border:1px solid color-mix(in srgb, var(--accent) 13%, transparent);border-radius:19px;background:linear-gradient(135deg,color-mix(in srgb, var(--accent) 8%, var(--surface-tint)),color-mix(in srgb, var(--surface-tint) 86%, transparent));box-shadow:0 10px 30px rgba(31,119,110,.06)}
.info-banner-icon,.panel-icon{border-radius:13px;background:var(--brand-02);color:var(--brand-07)}

/* Formulários, builders e modais */
.form-card{border-radius:26px}.form-section{padding-top:23px;padding-bottom:23px}.section-number{width:36px;height:36px;border-radius:12px;background:var(--brand-02);color:var(--brand-07);font-weight:800}.featured-form-section{background:linear-gradient(90deg,var(--brand-02) 0,#fbfefd 100%);border-color:color-mix(in srgb, var(--accent) 13%, transparent)}.featured-form-section .section-number{background:linear-gradient(135deg,var(--brand-06),var(--brand-07));color:#fff}.feature-chip{background:var(--brand-02);color:var(--brand-07);border:1px solid color-mix(in srgb, var(--accent) 12%, transparent)}
.modal-backdrop{background:rgba(18,43,40,.30);backdrop-filter:blur(8px)}.modal{border-radius:28px;box-shadow:0 34px 100px rgba(20,67,62,.20)}.modal-head{padding:20px 22px;border-color:var(--line)}.modal-body{padding:20px 22px}.modal-foot{padding:15px 22px 20px;background:color-mix(in srgb, var(--surface-tint) 82%, transparent);border-color:var(--line)}.modal h3{font-size:19px;letter-spacing:-.04em}
.builder-row,.workflow-builder-stage,.workflow-field-row{border-color:rgba(36,104,97,.10);background:rgba(249,252,251,.82);border-radius:15px}.workflow-builder-stage{border-radius:18px}.workflow-stage-number{background:linear-gradient(135deg,var(--brand-03),var(--brand-02));color:var(--brand-07);border:1px solid color-mix(in srgb, var(--accent) 10%, transparent)}.workflow-stage-config{background:#fff}.toggle-line{background:var(--brand-01);border:1px solid color-mix(in srgb, var(--accent) 8%, transparent)}

/* Fluxo principal do pedido: mantém protagonismo, agora na mesma linguagem visual */
.workflow-hero{border:1px solid rgba(13,113,104,.16);border-radius:28px;background:linear-gradient(135deg,var(--brand-07) 0%,var(--brand-07) 58%,var(--brand-07) 100%);box-shadow:0 24px 60px rgba(15,119,111,.20)}
.workflow-hero:before{content:"";position:absolute;width:360px;height:360px;right:-170px;top:-190px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb, var(--accent) 23%, transparent),transparent 66%);pointer-events:none}
.workflow-hero{position:relative}.workflow-hero>*{position:relative;z-index:1}.workflow-hero-top{padding:24px 25px 18px}.workflow-hero-title h2{font-size:22px;font-weight:800}.workflow-progress-number{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.15);color:var(--brand-02)}.workflow-hero-top p{color:rgba(255,255,255,.67);font-size:var(--fs-xs)}.workflow-hero-side span{color:rgba(255,255,255,.55)}.workflow-hero-side strong{color:#fff}.eyebrow-light{color:var(--brand-02)!important}
.workflow-track{padding:10px 25px 20px}.workflow-track-step:not(:last-child):after{background:rgba(255,255,255,.15)}.workflow-track-step.completed:not(:last-child):after{background:var(--brand-05)}.workflow-dot{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.62);border-radius:11px}.workflow-track-step.completed .workflow-dot{background:var(--brand-02);border-color:var(--brand-02);color:var(--brand-07)}.workflow-track-step.in_progress .workflow-dot,.workflow-track-step.current .workflow-dot{background:#fff;border-color:#fff;color:var(--accent-dark);box-shadow:0 0 0 5px rgba(255,255,255,.10)}.workflow-track-label strong{color:rgba(255,255,255,.70)}.workflow-track-label span{color:rgba(255,255,255,.46)}.workflow-track-step.current .workflow-track-label strong,.workflow-track-step.completed .workflow-track-label strong{color:#fff}.workflow-progress-bar{background:rgba(255,255,255,.08)}.workflow-progress-bar i{background:linear-gradient(90deg,var(--brand-05),var(--brand-02))}
.workflow-current-card,.workflow-complete-card{border-radius:21px;margin:18px 20px 20px;border-color:rgba(255,255,255,.72);box-shadow:0 16px 42px rgba(5,55,51,.13)}.workflow-current-head{padding:18px 19px}.workflow-current-index{border-radius:13px;background:var(--brand-02);color:var(--brand-07)}.workflow-mode-tag{border-radius:10px}.workflow-start-panel,.workflow-fields-grid,.workflow-current-actions{padding-left:19px;padding-right:19px}.workflow-records{background:rgba(5,60,56,.14)}.workflow-record{border-radius:13px}
.workflow-finished-banner{display:flex;align-items:center;gap:14px;margin:18px 20px 12px;padding:16px 18px;border:1px solid rgba(255,255,255,.74);border-radius:20px;background:linear-gradient(115deg,#fff 0%,var(--brand-02) 100%);color:var(--ink);box-shadow:0 14px 36px rgba(5,55,51,.12)}
.workflow-finished-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:14px;background:linear-gradient(135deg,#d9f8f0,#eafff9);color:var(--brand-07);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent)}
.workflow-finished-copy{min-width:0;flex:1}.workflow-finished-copy>*{display:block}.workflow-finished-kicker{margin-bottom:2px;color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800;letter-spacing:.09em;text-transform:uppercase}.workflow-finished-copy strong{font-size:var(--fs-sm);letter-spacing:-.02em}.workflow-finished-copy p{margin:3px 0 0;color:var(--muted);font-size:var(--fs-2xs);line-height:1.45}.workflow-finished-status{display:inline-flex;align-items:center;gap:5px;flex:none;padding:7px 9px;border:1px solid color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;background:#e5f8f1;color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800;white-space:nowrap}
.workflow-history-expand{margin:0 20px 20px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(4,62,57,.18);overflow:hidden;transition:background .2s,border-color .2s}.workflow-history-expand[open]{background:rgba(4,49,46,.27);border-color:rgba(255,255,255,.24)}.workflow-history-expand>summary{display:flex;align-items:center;gap:11px;min-height:56px;padding:8px 13px;list-style:none;cursor:pointer;user-select:none}.workflow-history-expand>summary::-webkit-details-marker{display:none}.workflow-history-expand>summary:hover{background:rgba(255,255,255,.055)}
.workflow-history-summary-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;background:rgba(255,255,255,.11);color:var(--brand-02)}.workflow-history-summary-copy{min-width:0;flex:1}.workflow-history-summary-copy strong,.workflow-history-summary-copy small{display:block}.workflow-history-summary-copy strong{color:#fff;font-size:var(--fs-2xs)}.workflow-history-summary-copy small{margin-top:2px;color:rgba(255,255,255,.53);font-size:var(--fs-3xs)}.workflow-history-summary-action{color:var(--brand-02);font-size:var(--fs-2xs);font-weight:800}.workflow-history-chevron{width:8px;height:8px;margin:0 5px 4px 2px;border-right:2px solid var(--brand-03);border-bottom:2px solid var(--brand-03);transform:rotate(45deg);transition:transform .2s}.workflow-history-expand[open] .workflow-history-chevron{margin-bottom:-4px;transform:rotate(225deg)}
.workflow-history-expand .workflow-records{display:flex;flex-direction:column;gap:7px;padding:8px 10px 10px;border-top:1px solid rgba(255,255,255,.10);background:transparent}.workflow-history-expand .workflow-record{box-shadow:0 7px 20px rgba(2,42,39,.10)}
.order-tabs{margin-top:4px}

/* =========================================================
   Tela de entrada
   =========================================================
   Uma cena em camadas: fundo (foto opcional + fitas da marca), um painel de
   vidro com a apresentação à esquerda e o formulário à direita, e duas
   legendas soltas nos cantos. Os cartões da ilustração são deliberadamente
   pequenos — em tamanho grande eles competem com o formulário, que é a única
   coisa que a pessoa veio fazer aqui.

   Tudo sai dos tokens de tema, então a tela acompanha claro/escuro e paleta
   sem uma segunda folha. */
.auth-body{min-height:100vh}
.auth-shell{
  position:relative;min-height:100vh;display:flex;flex-direction:column;padding:26px clamp(18px,3.4vw,44px) 20px;
  background:linear-gradient(150deg,var(--surface-tint),var(--surface-01) 45%,var(--brand-02));
  gap:0;
}

/* Camada de fundo. A foto é opcional (--auth-photo vem do PHP quando o arquivo
   existe) e entra quase cheia: o painel de vidro por cima é que segura a
   leitura, então dá para deixar a imagem aparecer.

   O véu do ::after é forte só nas duas faixas de cima e de baixo e some no
   meio. É lá que moram as duas legendas soltas — elas não têm painel atrás e
   ficariam ilegíveis sobre uma foto escura. No miolo, onde o painel protege o
   texto, a imagem passa inteira. */
.auth-backdrop{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.auth-backdrop:before{
  content:"";position:absolute;inset:0;
  background-image:var(--auth-photo,none);background-size:cover;background-position:center;
  opacity:.92;filter:saturate(.82);
}
.auth-backdrop:after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 42%),
    radial-gradient(circle at 88% 92%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 46%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface-tint) 55%,transparent) 0%,
      color-mix(in srgb,var(--surface-tint) 8%,transparent) 17%,
      color-mix(in srgb,var(--surface-tint) 8%,transparent) 84%,
      color-mix(in srgb,var(--surface-tint) 74%,transparent) 100%);
}
/* z-index acima do veu: o ::after do .auth-backdrop pinta depois dos filhos,
   e sem isso as fitas saiam lavadas. O veu cobre a foto, nao a marca. */
.auth-ribbons{position:absolute;z-index:1;inset:-8% -4%;width:108%;height:116%;fill:none;stroke:color-mix(in srgb,var(--accent) 30%,transparent);stroke-width:92;stroke-linecap:round;opacity:.55}
.auth-ribbons path:nth-child(2){stroke:color-mix(in srgb,var(--accent) 17%,transparent);stroke-width:132}

.auth-topnote{position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:0 2px 14px;color:var(--ink-muted);font-size:var(--fs-2xs);text-align:right}
.auth-topnote i{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}

/* O painel de vidro. Uma coluna fluida para a apresentação e uma fixa para o
   formulário: o formulário nunca estica, porque campo de e-mail largo demais
   fica desconfortável de ler. */
.auth-stage{
  position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:clamp(20px,2.6vw,46px);
  align-items:center;flex:1;width:100%;max-width:1320px;margin:0 auto;padding:clamp(20px,2vw,30px);
  border:1px solid color-mix(in srgb,var(--surface-tint) 95%,transparent);
  border-radius:34px;
  /* Sem desfoque: o vidro e so translucido, entao a foto atravessa nitida.
     Como nao ha mais o desfoque para separar texto de imagem, quem faz esse
     trabalho e a opacidade do branco — por isso ela e mais alta aqui do que na
     versao com blur. */
  background:color-mix(in srgb,var(--surface-tint) 78%,transparent);
  box-shadow:0 34px 90px color-mix(in srgb,var(--accent) 16%,transparent);
  backdrop-filter:saturate(1.08);
}

.auth-visual{position:relative;display:flex;flex-direction:column;gap:clamp(14px,1.8vw,24px);padding:4px;color:var(--ink);background:none;border:0;box-shadow:none;border-radius:0;overflow:visible}
.auth-visual:before{content:none}
.auth-eyebrow{display:flex;align-items:center;gap:10px;color:var(--ink-muted);font-size:var(--fs-3xs);font-weight:700;text-transform:uppercase;letter-spacing:.22em}
.auth-eyebrow:before{content:"";width:26px;height:2px;border-radius:2px;background:var(--accent)}
.auth-copy{max-width:600px}
.auth-copy h1{margin:11px 0 15px;color:var(--ink-deep);font-size:clamp(28px,3vw,42px);font-weight:800;line-height:1.04;letter-spacing:-.045em}
.auth-badges{display:flex;gap:8px;flex-wrap:wrap}
.auth-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;background:color-mix(in srgb,var(--surface-tint) 86%,transparent);border:1px solid color-mix(in srgb,var(--accent) 12%,transparent);color:var(--ink-soft);font-size:var(--fs-2xs);font-weight:600;box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 7%,transparent)}
.auth-badge svg{color:var(--brand-07)}

/* Ilustração do produto. Os cartões são pequenos de propósito: o formulário é
   o que importa nesta tela, a ilustração só ambienta. */
.auth-mockup{display:grid;gap:10px;max-width:100%;padding-left:20px}
.auth-flow{display:grid;gap:8px;margin:0;padding:0;list-style:none}
/* Cada passo entra um degrau à direita, como a linha do tempo da referência. */
.auth-flow-step{
  position:relative;
  display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;
  width:min(480px,100%);margin-left:calc(var(--step) * 28px);padding:10px 13px;
  border:1px solid color-mix(in srgb,var(--surface-tint) 76%,transparent);border-radius:14px;
  background:color-mix(in srgb,var(--surface-tint) 92%,transparent);
  box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 10%,transparent);
  will-change:transform;
}
/* Ponto e fio que ligam um passo ao outro, à esquerda do cartão. */
.auth-flow-step:before{content:"";position:absolute;left:-18px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.auth-flow-step:after{content:"";position:absolute;left:-10px;top:50%;width:10px;height:1px;background:color-mix(in srgb,var(--accent) 35%,transparent)}
.auth-flow-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:9px;background:var(--brand-02);color:var(--brand-07)}
.auth-flow-step strong,.auth-flow-step small{display:block}
.auth-flow-step strong{font-size:var(--fs-2xs);color:var(--ink-deep)}
.auth-flow-step small{margin-top:1px;font-size:var(--fs-3xs);color:var(--muted)}
.auth-flow-link{display:inline-flex;align-items:center;gap:4px;color:var(--brand-07);font-weight:700}
.auth-flow-state{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;flex:none}
.auth-flow-state.done{background:var(--green);color:#fff}
.auth-flow-state.running{border:2px solid color-mix(in srgb,var(--accent) 28%,transparent);border-top-color:var(--accent)}

.auth-panels{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:11px;max-width:430px;margin-left:24px}
.auth-panel{
  padding:12px 13px;border:1px solid color-mix(in srgb,var(--surface-tint) 76%,transparent);border-radius:16px;
  background:color-mix(in srgb,var(--surface-tint) 92%,transparent);
  box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 10%,transparent);
  will-change:transform;
}
.auth-panel header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.auth-panel header strong{font-size:var(--fs-3xs);color:var(--ink-deep)}
.auth-panel header span{padding:3px 7px;border-radius:7px;background:var(--surface-02);color:var(--muted);font-size:9px}
.auth-bars{display:flex;align-items:flex-end;gap:5px;height:52px}
.auth-bars i{flex:1;min-height:4px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,var(--brand-05),var(--brand-06))}
.auth-panel footer{display:flex;justify-content:space-between;margin-top:7px;color:var(--muted);font-size:9px}
.auth-panel-trend footer{display:block;margin-top:8px;line-height:1.35}
.auth-spark{width:100%;height:44px;display:block}
.auth-spark-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.auth-spark-fill{fill:color-mix(in srgb,var(--accent) 14%,transparent);stroke:none}

.auth-signature{display:flex;align-items:center;gap:10px;margin:0}
.auth-signature-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:var(--brand-02);color:var(--brand-07);flex:none}
.auth-signature strong,.auth-signature small{display:block}
.auth-signature strong{font-size:var(--fs-2xs);color:var(--ink-deep)}
.auth-signature small{margin-top:1px;font-size:var(--fs-3xs);color:var(--muted)}

/* Formulário */
.auth-card-wrap{display:flex;align-items:center;justify-content:center;padding:0;background:none;border-radius:0}
.auth-card{width:100%;padding:30px;border-radius:26px;background:var(--surface-strong);border:1px solid color-mix(in srgb,var(--surface-tint) 88%,transparent);box-shadow:0 26px 70px color-mix(in srgb,var(--accent) 16%,transparent)}
.auth-card h2{margin:22px 0 6px;font-size:28px;letter-spacing:-.045em;color:var(--ink-deep)}
.auth-card-sub{margin:0;color:var(--muted);font-size:var(--fs-xs);line-height:1.5}
.auth-form{margin-top:22px}
/* O ícone fica dentro do campo; o padding extra à esquerda abre o lugar dele.
   O botão de mostrar a senha é injetado pelo app.js e mora do outro lado, por
   isso ele embrulha o input num .password-input-wrap que também precisa do
   mesmo recuo. */
.auth-input{position:relative;display:block}
.auth-input>svg{position:absolute;z-index:2;left:13px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}
.auth-input .input{padding-left:41px;min-height:46px;border-radius:13px}
.auth-submit{width:100%;min-height:50px;margin-top:4px;border-radius:14px;font-size:var(--fs-sm);font-weight:700}
.auth-forgot{margin:16px 0 0;text-align:center;font-size:var(--fs-2xs)}
.auth-forgot a{color:var(--brand-07);font-weight:700}
.auth-forgot a:hover{text-decoration:underline}
.auth-alert{margin:18px 0;padding:13px 14px;border-radius:13px;border:1px solid color-mix(in srgb,var(--red) 26%,transparent);background:color-mix(in srgb,var(--red) 8%,var(--surface-strong));color:color-mix(in srgb,var(--red) 62%,var(--ink));font-size:var(--fs-xs)}
.auth-alert span{font-size:var(--fs-2xs)}

/* width:100% e obrigatorio: margem lateral auto num container flex em coluna
   desliga o stretch, e sem largura definida a barra encolhia ate o conteudo
   e as duas pontas apareciam coladas no meio da tela. */
.auth-footbar{position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;width:100%;max-width:1320px;margin:18px auto 0;padding:0 6px;color:var(--faint);font-size:var(--fs-3xs)}
.auth-footbar>span:first-child{text-transform:uppercase;letter-spacing:.2em}
.auth-footbar>span:last-child{text-align:right;line-height:1.5}

/* Parallax: só o transform muda. Quem pediu menos movimento no sistema não
   recebe nenhum — o JS nem liga o efeito, e aqui o transform é zerado para o
   caso de a preferência mudar com a página já aberta. */
@media(prefers-reduced-motion:reduce){
  .auth-flow-step,.auth-panel{transform:none!important}
}

@media(max-width:1120px){
  .auth-stage{grid-template-columns:minmax(0,1fr) 340px}
  .auth-mockup{display:none}
}
@media(max-width:820px){
  .auth-shell{padding:18px 16px 14px}
  .auth-stage{grid-template-columns:1fr;padding:18px}
  .auth-topnote,.auth-footbar>span:first-child{display:none}
  .auth-footbar{justify-content:center}
  .auth-footbar>span:last-child{text-align:center}
}

/* Portal, QR e laudo */
.client-shell,.public-shell,.report-body{background:radial-gradient(circle at 12% 5%,color-mix(in srgb, var(--accent) 12%, transparent),transparent 30%),linear-gradient(135deg,#fbfbf7,var(--brand-01))}
.client-top{background:rgba(255,255,255,.84);border-color:rgba(36,104,97,.10);backdrop-filter:blur(18px)}.client-content{max-width:1180px}.client-welcome h1{font-size:34px;letter-spacing:-.055em}.client-welcome>span{color:var(--brand-07)}
.public-card{border-radius:26px;box-shadow:0 26px 70px rgba(35,95,89,.13)}.public-step-head{background:var(--brand-01)}.public-stage-row span.current,.public-stage-row span.in_progress{background:var(--brand-02);color:var(--brand-07)}.mini-progress i{background:linear-gradient(90deg,var(--brand-06),var(--brand-07))}
.report-page{max-width:980px}.report-sheet{border-radius:24px;box-shadow:var(--shadow-soft);border:1px solid rgba(255,255,255,.88)}

/* Flash */
.flash{border-radius:15px;box-shadow:0 12px 34px rgba(29,79,75,.08)}.flash-success{background:#e5f8ef;color:#247a55}.flash-error{background:#ffedf0;color:#a44455}

/* Responsividade */
@media(max-width:1100px){
  :root{--sidebar:224px}
  .workspace-body .app-shell{padding-left:calc(var(--sidebar) + 30px)}
  .dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  .workspace-body .app-shell{padding:10px}
  .workspace-body .sidebar{inset:10px auto 10px 10px;width:min(290px,calc(100vw - 34px));transform:translateX(calc(-100% - 20px));transition:transform .24s ease}
  .workspace-body .sidebar.open{transform:translateX(0)}
  .workspace-body .main{margin:0}.workspace-body .topbar{height:66px;border-radius:19px;padding:0 12px}.workspace-body .content{padding:24px 5px 42px}
  .mobile-menu{display:grid;place-items:center}.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(17,46,43,.22);backdrop-filter:blur(3px);z-index:35}
  .dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  body{font-size:var(--fs-sm)}.page-head{align-items:flex-start;flex-direction:column}.page-head .btn{width:100%}.top-actions .btn span{display:none}
  .dashboard-kpis{grid-template-columns:1fr}.kpi{min-height:145px}.kpi-icon{margin-bottom:15px}
  .card{border-radius:20px}.table-wrap{border-radius:0 0 20px 20px}.template-tabs,.order-tabs{border-radius:14px}
  .auth-shell{padding:12px}.auth-visual{display:none}.auth-card{padding:26px;border-radius:24px}
  .workflow-hero{border-radius:22px}.workflow-current-card,.workflow-complete-card{border-radius:17px}.workflow-finished-banner{align-items:flex-start;margin:14px 14px 10px;padding:14px}.workflow-finished-status{display:none}.workflow-history-expand{margin:0 14px 14px}.workflow-history-summary-action{display:none}
}
@media(max-width:900px){.settings-tabs{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.settings-tabs .template-tab{padding:0 12px}}
@media(max-width:520px){.settings-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.settings-tabs .template-tab{min-height:42px;padding:0 9px}}
@media(max-width:520px){
  .workspace-body .topbar{position:sticky;top:8px}.top-avatar{display:none}.breadcrumb span{display:none}.page-head h1{font-size:30px}.page-head p{font-size:var(--fs-sm)}.workspace-body .content{padding-top:20px}
  .btn{min-height:42px}.modal{border-radius:22px}.modal-head,.modal-body,.modal-foot{padding-left:17px;padding-right:17px}
}

/* Ajustes finais de contraste nas superfícies claras */
.client-top .brand-light strong,.auth-visual .brand-light strong{color:var(--ink)}
.client-top .brand small,.auth-visual .brand small{color:var(--muted)}
.report-paper{border-radius:24px;border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-soft)}
@media(max-width:900px){.sidebar-overlay.open{display:block;position:fixed;inset:0;background:rgba(17,46,43,.22);backdrop-filter:blur(3px);z-index:35}}

/* ===== NexaLab V5 - faixa numérica, anexos, etiquetas e impressão ===== */
.notification-popover .notification-list{display:grid;gap:9px;padding:11px}.notification-list .notification-item{border:1px solid var(--surface-02);background:var(--surface-tint);box-shadow:0 3px 12px rgba(24,78,71,.035);transition:border-color .18s,box-shadow .18s,transform .18s}.notification-list .notification-item:hover{border-color:var(--line-02);background:var(--surface-tint);box-shadow:0 8px 22px rgba(24,78,71,.08);transform:translateY(-1px)}.notification-list .notification-item.unread{border-color:var(--brand-03);background:linear-gradient(135deg,var(--brand-02),var(--brand-01))}.notification-list .notification-copy p{margin-top:4px;margin-bottom:8px}.notification-list .notification-copy>div{padding-top:6px;border-top:1px solid rgba(31,111,102,.07)}.notification-list .notification-actions{padding-left:4px;border-left:1px solid rgba(31,111,102,.07)}
.notification-center{position:relative}.notification-bell{position:relative;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:var(--surface-tint);color:var(--ink-soft);display:grid;place-items:center;cursor:pointer;transition:.18s}.notification-bell:hover,.notification-center.open .notification-bell{border-color:var(--accent-line);background:var(--brand-02);color:var(--brand-07)}.notification-bell>[data-notification-count]{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 4px;border:2px solid white;border-radius:99px;background:#e34f61;color:white;display:grid;place-items:center;font-size:var(--fs-3xs);font-weight:900}.notification-popover{display:none;position:absolute;z-index:120;right:-45px;top:47px;width:min(420px,calc(100vw - 28px));max-height:min(650px,calc(100vh - 90px));overflow:hidden;background:var(--surface-tint);border:1px solid rgba(23,104,97,.14);border-radius:18px;box-shadow:0 25px 70px rgba(20,54,50,.2)}.notification-center.open .notification-popover{display:flex;flex-direction:column}.notification-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border-bottom:1px solid var(--line)}.notification-head strong,.notification-head span{display:block}.notification-head strong{font-size:var(--fs-xs)}.notification-head span{font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}.notification-head button{border:0;background:transparent;color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800;cursor:pointer}.notification-list{overflow:auto;padding:7px}.notification-item{position:relative;display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:9px;padding:11px 9px;border-radius:12px}.notification-item:hover{background:var(--surface-01)}.notification-item.unread{background:var(--brand-01)}.notification-kind{width:7px;height:7px;border-radius:50%;margin-top:4px;background:#9aa9a7}.notification-kind.danger{background:#e25566}.notification-kind.warning{background:#e9a53f}.notification-kind.accent{background:var(--brand-06)}.notification-kind.success{background:#3aa66d}.notification-copy{min-width:0}.notification-copy strong,.notification-copy p{display:block}.notification-copy strong{font-size:var(--fs-2xs)}.notification-copy p{margin:3px 0 6px;font-size:var(--fs-3xs);line-height:1.45;color:#687976}.notification-copy>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.notification-copy small{font-size:var(--fs-3xs);color:#9aa6a4}.notification-copy a{font-size:var(--fs-3xs);color:var(--brand-07);font-weight:800}.notification-actions{display:flex;gap:3px;align-items:flex-start}.notification-actions button{width:25px;height:25px;border:0;border-radius:8px;background:transparent;color:#82918f;display:grid;place-items:center;cursor:pointer}.notification-actions button:hover{background:white;color:var(--brand-07)}.notification-actions [data-notification-dismiss]:hover{color:#cc4d60}.notification-empty{padding:36px 20px;text-align:center;color:#7e918e}.notification-empty svg{color:#28a576;margin-bottom:8px}.notification-empty strong,.notification-empty span{display:block}.notification-empty strong{font-size:var(--fs-xs);color:var(--ink-soft)}.notification-empty span{font-size:var(--fs-3xs);margin-top:3px}.notification-foot{padding:9px 14px;border-top:1px solid var(--line);background:var(--surface-01);color:#96a4a2;font-size:var(--fs-3xs);text-align:center}@media(max-width:580px){.notification-popover{position:fixed;top:70px;right:14px;left:14px;width:auto}.top-actions>.btn{display:none}}
.analytics-period{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}.analytics-period>div{min-width:145px}.analytics-period .analytics-period-preset{min-width:185px}@media(max-width:720px){.analytics-period{justify-content:stretch}.analytics-period>div,.analytics-period .analytics-period-preset{min-width:0;flex:1 1 100%}.analytics-period>.btn{flex:1}}
.analytics-head{align-items:flex-end}.analytics-period{min-width:210px}.analytics-period label{display:block;margin-bottom:5px;font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.analytics-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.analytics-kpi{padding:17px;min-width:0}.analytics-kpi span,.analytics-kpi strong,.analytics-kpi small{display:block}.analytics-kpi span{font-size:var(--fs-2xs);color:var(--muted);font-weight:700}.analytics-kpi strong{margin:6px 0 4px;font-size:25px;letter-spacing:-.04em}.analytics-kpi small{font-size:var(--fs-3xs);color:#81908f}.analytics-kpi.warning{background:color-mix(in srgb,var(--amber) 8%,var(--surface-2));border-color:color-mix(in srgb,var(--amber) 30%,var(--line))}.analytics-kpi.warning strong{color:color-mix(in srgb,var(--amber) 80%,var(--ink))}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.analytics-grid-main{grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr)}.analytics-panel{padding:18px;min-width:0}.analytics-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}.analytics-panel-head h2{margin:0;font-size:var(--fs-sm)}.analytics-panel-head p{margin:3px 0 0;font-size:var(--fs-2xs);color:var(--muted)}.analytics-legend{display:flex;align-items:center;gap:5px;font-size:var(--fs-3xs);color:var(--muted);white-space:nowrap}.analytics-legend i{width:8px;height:8px;border-radius:3px;background:var(--brand-06)}.analytics-legend i:nth-of-type(2){margin-left:5px;background:var(--brand-04)}.month-chart{height:245px;display:flex;align-items:stretch;gap:7px;padding-top:18px;border-bottom:1px solid var(--line);overflow-x:auto}.month-column{flex:1;min-width:35px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.month-bars{height:190px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.month-bar{position:relative;width:min(15px,42%);min-height:3px;border-radius:5px 5px 1px 1px;background:linear-gradient(180deg,var(--brand-06),var(--brand-07))}.month-bar.finished{background:var(--brand-04)}.month-bar b{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:var(--fs-3xs)}.month-column small{font-size:var(--fs-3xs);color:var(--muted);white-space:nowrap}.status-list{display:grid;gap:14px}.status-row>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-2xs)}.status-row strong small{color:var(--muted);font-weight:500}.analytics-progress{height:7px;margin-top:6px;background:var(--surface-02);border-radius:999px;overflow:hidden}.analytics-progress i{display:block;height:100%;border-radius:inherit;background:var(--brand-06)}.status-color-completed,.status-color-delivered{background:#38aa72!important}.status-color-cancelled{background:#d85d6c!important}.status-color-in_progress{background:var(--brand-06)!important}.status-color-received,.status-color-triage{background:#77a9d1!important}.status-color-quality_review{background:#9a7bd8!important}.ranking-list,.responsible-report-list{display:grid;gap:8px}.ranking-row{display:flex;align-items:center;gap:10px;padding:9px;border-radius:11px;background:var(--surface-02)}.ranking-index{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:var(--brand-03);color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800}.ranking-copy{flex:1;min-width:0}.ranking-copy>div:first-child{display:flex;justify-content:space-between;gap:8px}.ranking-copy strong,.ranking-copy span{font-size:var(--fs-2xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-copy span{color:var(--muted);font-size:var(--fs-3xs)}.ranking-track{height:4px;background:var(--surface-02);border-radius:99px;margin-top:6px;overflow:hidden}.ranking-track i{display:block;height:100%;background:var(--brand-06);border-radius:inherit}.ranking-row>b{font-size:var(--fs-xs)}.responsible-report-row{display:grid;grid-template-columns:31px minmax(0,1fr) 78px 90px;align-items:center;gap:9px;padding:9px;border-bottom:1px solid #edf1f0}.report-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--brand-03);color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800}.responsible-report-row strong,.responsible-report-row span,.responsible-report-row b,.responsible-report-row small{display:block}.responsible-report-row strong{font-size:var(--fs-2xs)}.responsible-report-row span,.responsible-report-row small{font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}.responsible-report-row>div:nth-last-child(-n+2){text-align:right}.responsible-report-row b{font-size:var(--fs-2xs)}.analytics-insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.insight-card{padding:15px;display:flex;align-items:center;gap:11px}.insight-card>div{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--brand-02);color:var(--brand-07);flex:none}.insight-card strong,.insight-card small{display:block}.insight-card strong{font-size:var(--fs-2xs)}.insight-card small{font-size:var(--fs-3xs);color:var(--muted);margin-top:3px;line-height:1.5}@media(max-width:1100px){.analytics-kpis{grid-template-columns:repeat(3,1fr)}.analytics-grid-main{grid-template-columns:1fr}}@media(max-width:720px){.analytics-head{align-items:stretch}.analytics-period{min-width:0}.analytics-kpis,.analytics-grid,.analytics-insights{grid-template-columns:1fr}.analytics-kpis{gap:8px}.analytics-panel{padding:14px}.analytics-legend{display:none}.responsible-report-row{grid-template-columns:31px 1fr 65px}.responsible-report-row>div:last-child{display:none}}
.multi-response-row>.search-select{flex:1;min-width:0;margin:0}
.label-qr-link-card{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(320px,1fr);align-items:center;gap:14px;padding:14px 16px;margin-bottom:14px}.label-qr-link-card strong,.label-qr-link-card small{display:block}.label-qr-link-card strong{font-size:var(--fs-xs)}.label-qr-link-card small{color:var(--muted);font-size:var(--fs-3xs);margin-top:2px}.label-qr-link-card .copy-url{display:flex;align-items:center;min-width:0;margin:0;gap:7px}.label-qr-link-card .copy-url .input{flex:1;min-width:0;min-height:36px;padding:7px 10px;background:var(--surface-01);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.label-qr-link-card .copy-url .btn{flex:none;white-space:nowrap}@media(max-width:720px){.label-qr-link-card{grid-template-columns:1fr;gap:10px}.label-qr-link-card .copy-url{align-items:stretch;flex-direction:column}.label-qr-link-card .copy-url .btn{width:100%}}
.multi-response-list{display:grid;gap:10px}.multi-response-row{display:flex;align-items:flex-start;gap:8px}.multi-response-row>.field,.multi-response-row>.input,.multi-response-row>.textarea,.multi-response-row>.select,.multi-response-row>.searchable-select{flex:1;margin:0}.multi-response-row>.field{min-width:0}.multi-response-add{margin-top:9px}.multi-response-remove{flex:0 0 auto;margin-top:3px}.multi-response-read{margin:0;padding-left:18px;display:grid;gap:4px}.order-qr-print-action{display:flex;justify-content:flex-end;margin:-8px 0 12px}.workflow-label-link,.record-meta-actors>div:nth-child(4),[data-modal-open="qrModal"]{display:none!important}.workflow-field-row{grid-template-columns:12px minmax(150px,1fr) 148px 112px 140px 32px;min-width:0}.workflow-field-row>*{min-width:0}@media(max-width:720px){.workflow-field-row{grid-template-columns:12px 1fr 32px}.workflow-field-row .wf-field-type,.workflow-field-row .workflow-field-required{grid-column:2}}
.text-warning{color:#9a6b1f!important}.attachment-link{display:inline-flex;align-items:center;gap:6px;color:var(--brand-07);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(11,139,129,.22)}.attachment-link:hover{border-color:var(--brand-07)}.current-attachment{padding:9px 10px;margin-bottom:7px;border-radius:10px;background:var(--brand-01);border:1px solid color-mix(in srgb, var(--accent) 10%, transparent);font-size:var(--fs-2xs);color:#637875}.file-input{padding:8px}.file-input::file-selector-button{border:0;border-radius:8px;background:var(--brand-02);color:var(--brand-07);font-weight:700;padding:7px 10px;margin-right:9px;cursor:pointer}
.range-result{display:inline-flex;align-items:center;gap:5px;margin-top:5px;padding:4px 7px;border-radius:999px;font-size:var(--fs-3xs);font-weight:800}.range-result.neutral{background:var(--surface-02);color:#758480}.range-result.inside{background:#e5f8ef;color:#237a54}.range-result.outside{background:#fff0f2;color:#b74658}.range-badge{display:inline-flex;margin-left:7px;padding:3px 6px;border-radius:999px;font-size:var(--fs-3xs);font-weight:800;vertical-align:middle}.range-badge.inside{background:#e5f8ef;color:#237a54}.range-badge.outside{background:#fff0f2;color:#b74658}
.builder-range,.workflow-field-range{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.builder-range{grid-column:1/-1}.builder-range.show,.workflow-field-range.show{display:grid}.workflow-field-range{grid-column:2/-1}.template-setting-card{display:flex;align-items:flex-start;gap:10px;margin:12px 0 16px;padding:13px 14px;border:1px solid color-mix(in srgb, var(--accent) 13%, transparent);border-radius:14px;background:var(--brand-01);cursor:pointer}.template-setting-card input{margin-top:3px;accent-color:var(--accent-dark)}.template-setting-card strong,.template-setting-card small{display:block}.template-setting-card strong{font-size:var(--fs-2xs);color:var(--ink-deep)}.template-setting-card small{margin-top:3px;color:#70817e;font-size:var(--fs-3xs);line-height:1.45}
.workflow-inline-link{margin-top:5px;border:0;background:none;color:var(--brand-02);font-size:var(--fs-3xs);font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.workflow-label-link{border:0;text-decoration:none;background:#e6f6ff;color:#2d6e91}.workflow-gate-warning,.execution-gate-note{display:flex;align-items:flex-start;gap:7px;padding:11px 14px;border-radius:12px;font-size:var(--fs-2xs)}.workflow-gate-warning{margin:0 17px 15px;background:#fff7e8;color:#885d17;border:1px solid #f1dfb7}.workflow-gate-warning strong,.workflow-gate-warning span,.execution-gate-note strong,.execution-gate-note span{display:block}.workflow-gate-warning span,.execution-gate-note span{margin-left:auto}.execution-gate-note{margin:0 18px 14px}.execution-gate-note.pending{background:#fff7e8;color:#885d17;border:1px solid #f1dfb7}.execution-gate-note.ready{background:#eaf8f0;color:#237a54;border:1px solid #cdebd9}.record-meta{grid-template-columns:repeat(4,1fr)}

/* Configurador de etiquetas dentro do template de fluxo */
.label-config-panel{margin-top:12px;border:1px solid rgba(36,104,97,.10);border-radius:14px;background:var(--surface-01);overflow:hidden}.label-config-panel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px}.label-config-panel>summary span{font-size:var(--fs-2xs);font-weight:800;color:var(--ink-deep)}.label-config-panel>summary small{font-size:var(--fs-3xs);color:#7f908d}.label-config-body{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;padding:14px;border-top:1px solid rgba(36,104,97,.09);background:#fff}.label-preview-wrap>span{display:block;margin-bottom:7px;color:#7b8b88;font-size:var(--fs-3xs);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.label-preview{position:relative;width:100%;aspect-ratio:var(--label-ratio,2/1);max-height:220px;border:1px solid #dce7e4;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(34,94,88,.08);font-size:var(--label-font,10px)}.label-preview-text{position:absolute;inset:10px;line-height:1.35;font-weight:650;color:var(--ink-deep);overflow:hidden}.label-preview-qr{position:absolute;display:grid;place-items:center;background:#fff;padding:4px;box-shadow:0 0 0 1px #d8e3e0}.label-preview-qr span{display:block;width:100%;height:100%;background:repeating-linear-gradient(45deg,var(--brand-08) 0 3px,#fff 3px 5px),repeating-linear-gradient(-45deg,transparent 0 3px,var(--brand-08) 3px 5px);background-blend-mode:multiply}.label-preview[data-qr-position^="left"] .label-preview-text{left:34%}.label-preview[data-qr-position^="right"] .label-preview-text{right:34%}.label-preview[data-qr-position^="center"] .label-preview-text{text-align:left}.label-preview[data-qr-position^="left"] .label-preview-qr{left:8px}.label-preview[data-qr-position^="right"] .label-preview-qr{right:8px}.label-preview[data-qr-position^="center"] .label-preview-qr{left:50%;transform:translateX(-50%)}.label-preview[data-qr-position$="top"] .label-preview-qr{top:8px}.label-preview[data-qr-position$="bottom"] .label-preview-qr{bottom:8px}.label-preview[data-qr-position$="center"] .label-preview-qr,.label-preview[data-qr-position="center"] .label-preview-qr{top:50%;transform:translateY(-50%)}.label-preview[data-qr-position^="center"][data-qr-position$="center"] .label-preview-qr,.label-preview[data-qr-position="center"] .label-preview-qr{left:50%;transform:translate(-50%,-50%)}

/* Página e impressão de etiqueta */
.label-page-body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 5%,color-mix(in srgb, var(--accent) 12%, transparent),transparent 30%),#f4f8f7}.label-page-shell{max-width:980px;margin:0 auto;padding:28px}.label-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.label-page-toolbar>div{flex:1}.label-page-toolbar span,.label-page-toolbar strong{display:block}.label-page-toolbar span{font-size:var(--fs-2xs)}.label-page-toolbar strong{font-size:var(--fs-sm)}.label-page-preview{margin-bottom:8px;text-align:center;color:#7a8b88;font-size:var(--fs-2xs)}.print-label{position:relative;width:var(--label-width);height:var(--label-height);margin:0 auto;background:#fff;color:var(--brand-08);border:1px solid #dce5e3;overflow:hidden;box-shadow:0 18px 50px rgba(25,75,69,.13);font-size:var(--label-font);line-height:1.32}.print-label-text{position:absolute;inset:3mm;font-weight:600;white-space:normal;overflow:hidden}.print-label-qr{position:absolute;width:var(--label-qr);height:var(--label-qr);padding:1mm;background:#fff;display:grid;place-items:center}.print-label-qr img,.print-label-qr canvas{width:100%!important;height:100%!important}.print-label[data-qr-position^="left"] .print-label-text{left:calc(var(--label-qr) + 6mm)}.print-label[data-qr-position^="right"] .print-label-text{right:calc(var(--label-qr) + 6mm)}.print-label[data-qr-position^="left"] .print-label-qr{left:3mm}.print-label[data-qr-position^="right"] .print-label-qr{right:3mm}.print-label[data-qr-position^="center"] .print-label-qr{left:50%;transform:translateX(-50%)}.print-label[data-qr-position$="top"] .print-label-qr{top:3mm}.print-label[data-qr-position$="bottom"] .print-label-qr{bottom:3mm}.print-label[data-qr-position$="center"] .print-label-qr,.print-label[data-qr-position="center"] .print-label-qr{top:50%;transform:translateY(-50%)}.print-label[data-qr-position^="center"][data-qr-position$="center"] .print-label-qr,.print-label[data-qr-position="center"] .print-label-qr{left:50%;transform:translate(-50%,-50%)}.label-page-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px auto 0;max-width:760px}.label-page-foot>div{padding:11px 12px;border-radius:12px;background:#fff;border:1px solid rgba(36,104,97,.09)}.label-page-foot strong,.label-page-foot span{display:block}.label-page-foot strong{font-size:var(--fs-3xs);text-transform:uppercase;color:#7a8986}.label-page-foot span{font-size:var(--fs-2xs);margin-top:3px}.label-page-foot .label-url{grid-column:1/-1}.label-url span{word-break:break-all;color:#627571}

/* Laudo: tela e impressão usam a mesma composição */
.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.report-toolbar-actions{display:flex;gap:8px;align-items:center}.report-paper{background:#fff!important;padding:48px!important;border:1px solid rgba(36,104,97,.10)!important;border-radius:24px!important;box-shadow:0 24px 70px rgba(35,95,89,.11)!important}.report-header{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:28px;padding-bottom:24px;border-bottom:2px solid var(--brand-08)}.report-header h1{margin:24px 0 0!important;font-size:24px;line-height:1.18;letter-spacing:-.035em}.report-brand strong{color:var(--ink-deep)!important}.report-brand small{color:#788985!important}.report-number{min-width:145px;text-align:right}.report-number small,.report-number strong,.report-number span{display:block}.report-number small{font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.1em;color:#80908d}.report-number strong{margin-top:4px;font-size:var(--fs-sm)}.report-number .badge{display:inline-flex;margin-top:8px}.report-section{margin:28px 0}.report-section h2{margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #e1e9e7;color:#788985;font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.12em}.report-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-data-item{padding:13px 14px;border:1px solid #e4ebe9;border-radius:12px;background:var(--surface-02);min-height:68px}.report-data-item>small{display:block;margin-bottom:5px;color:#82918e;font-size:var(--fs-3xs);font-weight:800;text-transform:uppercase;letter-spacing:.07em}.report-data-item>div{font-size:var(--fs-xs);color:#314743;line-height:1.45}.report-data-item strong,.report-data-item span{display:block}.report-data-item strong{font-size:var(--fs-xs);color:var(--ink-deep)}.report-data-item span{margin-top:2px;color:#71827f;font-size:var(--fs-2xs)}.report-result-item>div>strong{font-size:var(--fs-xs)}.report-result-item .range-badge{display:inline-flex;margin:6px 0 0}.report-range-text{font-size:var(--fs-3xs)!important;color:#879693!important}.report-conclusion p{margin:0;padding:15px 16px;border-radius:12px;background:#f3faf8;border:1px solid #e0efeb;font-size:var(--fs-xs);line-height:1.7;color:var(--ink-deep)}.report-sign{margin-top:54px;padding-top:17px;border-top:1px solid #e1e9e7;text-align:center}.report-sign strong,.report-sign span{display:block}.report-sign strong{font-size:var(--fs-2xs);color:var(--ink-soft)}.report-sign span{margin-top:3px;font-size:var(--fs-3xs);color:#7d8c89}

@media(max-width:820px){.label-config-body{grid-template-columns:1fr}.label-page-toolbar{align-items:stretch;flex-direction:column}.label-page-toolbar .btn{width:100%}.record-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.builder-range,.workflow-field-range{grid-template-columns:1fr}.workflow-field-range{grid-column:1/-1}.label-page-shell{padding:16px}.label-page-foot{grid-template-columns:1fr}.label-page-foot .label-url{grid-column:1}.report-data-grid{grid-template-columns:1fr}.report-toolbar{align-items:stretch;flex-direction:column}.report-toolbar-actions{flex-direction:column}.report-toolbar-actions .btn,.report-toolbar>a{width:100%}.report-paper{padding:22px!important}.report-header{flex-direction:column}.report-number{text-align:left}}

@media print{
  html,body.report-body{background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.report-body{margin:0!important;padding:0!important}
  body.report-body .no-print{display:none!important}
  body.report-body .report-page{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  body.report-body .report-paper{width:100%!important;min-height:0!important;margin:0!important;padding:10mm!important;border:1px solid #dfe7e5!important;border-radius:6mm!important;box-shadow:none!important;background:#fff!important}
  body.report-body .report-header{display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:space-between!important;break-inside:avoid!important}
  body.report-body .report-number{text-align:right!important}
  body.report-body .report-data-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3mm!important}
  body.report-body .report-data-item{break-inside:avoid!important;background:var(--surface-02)!important;border-color:#e4ebe9!important}
  body.report-body .report-section{break-inside:auto!important;margin:7mm 0!important}
  body.report-body .report-section h2{break-after:avoid!important}
  body.report-body .report-conclusion,.report-sign{break-inside:avoid!important}
  body.report-body a{color:inherit!important;text-decoration:none!important}
  body.report-body .attachment-link:after{content:""!important}

  body.label-page-body{margin:0!important;padding:0!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.label-page-body .no-print{display:none!important}
  body.label-page-body .label-page-shell{width:auto!important;max-width:none!important;margin:0!important;padding:0!important}
  body.label-page-body .print-label{width:var(--label-width)!important;height:var(--label-height)!important;margin:0!important;border:0!important;box-shadow:none!important;page-break-after:avoid!important;break-after:avoid!important}
}

/* =========================================================
   V6 — acabamento, exclusões e impressão
   ========================================================= */

/* Marca */
.workspace-body .brand.brand-light strong{color:var(--accent-dark)!important}

/* Exclusão com impacto visível */
.btn-danger{background:#d95164!important;color:#fff!important;border-color:#d95164!important;box-shadow:0 9px 24px rgba(217,81,100,.18)}
.btn-danger:hover{background:#c84559!important}
.btn-danger-soft{color:#bc4054!important;border-color:#f2cfd5!important;background:#fff5f7!important}
.modal-delete{width:min(620px,100%)}
.modal-kicker.danger{color:#cf5364!important}.delete-warning{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:15px;background:#fff5f7;border:1px solid #f4d7dd;margin-bottom:15px}.delete-warning-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#d95164;color:#fff;font-weight:800;flex:none}.delete-warning strong,.delete-warning span{display:block}.delete-warning strong{font-size:var(--fs-xs);color:#943445}.delete-warning span{font-size:var(--fs-2xs);color:#775a60;margin-top:3px;line-height:1.5}.delete-impact-list{margin:0 0 17px;padding:0;list-style:none;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:var(--surface-2)}.delete-impact-list li{position:relative;padding:10px 13px 10px 30px;border-bottom:1px solid var(--line);font-size:var(--fs-2xs);color:#4e625f;line-height:1.45}.delete-impact-list li:last-child{border-bottom:0}.delete-impact-list li:before{content:"×";position:absolute;left:12px;top:9px;color:#cf5364;font-weight:800}.delete-confirm-field{padding:13px;border-radius:14px;background:var(--surface-02);border:1px dashed #efcdd4}.delete-confirm-field label strong{color:#b83e52}

/* Editor independente de templates de etiqueta */
.label-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,410px);gap:24px;align-items:start}.label-editor-fields{min-width:0}.label-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.label-preview-column{position:sticky;top:0;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#f8fcfb,var(--surface-02))}.label-preview-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:11px}.label-preview-title span{font-size:var(--fs-2xs);font-weight:800;color:var(--ink-soft)}.label-preview-title small{font-size:var(--fs-3xs);color:var(--muted);text-align:right}.label-preview-legend{margin-top:10px}.label-preview-legend span,.label-preview-legend strong{display:block}.label-preview-legend span{font-size:var(--fs-3xs);color:var(--muted)}.label-preview-legend strong{font-size:var(--fs-3xs);color:var(--brand-07);margin-top:3px}.workflow-label-note{padding:10px 12px;border-radius:12px;background:var(--surface-01);border:1px dashed var(--line-02);color:#627a76;font-size:var(--fs-2xs);line-height:1.45}

/* Histórico completo do pedido */
.history-list-rich{position:relative;padding:4px 0}.history-list-rich:before{content:"";position:absolute;left:18px;top:13px;bottom:13px;width:1px;background:linear-gradient(var(--brand-03),var(--surface-02))}.history-event{position:relative;display:grid;grid-template-columns:37px 1fr;gap:10px;padding:10px 14px}.history-event>i{position:relative;z-index:1;width:11px;height:11px;border-radius:50%;margin:6px auto 0;background:#b8c8c5;border:3px solid var(--surface);box-shadow:0 0 0 1px #cfddda}.history-event.kind-start>i{background:var(--brand-06)}.history-event.kind-complete>i{background:#2e9a6c}.history-event.kind-report>i{background:#6574df}.history-event.kind-update>i{background:#c7892f}.history-event-main{padding:0 0 10px;border-bottom:1px solid var(--line);min-width:0}.history-event:last-child .history-event-main{border-bottom:0}.history-event-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.history-event-title strong{font-size:var(--fs-xs);color:var(--ink)}.history-event-main>span{display:block;margin-top:2px;color:var(--muted);font-size:var(--fs-2xs)}.history-event-main>small{display:block;margin-top:5px;color:#879894;font-size:var(--fs-3xs);font-weight:600}.history-source{display:inline-flex!important;padding:3px 7px;border-radius:999px;background:var(--surface-02);color:var(--ink-muted)!important;font-size:var(--fs-3xs)!important;font-weight:800;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.edit-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 13px;padding:13px 14px 0;margin:2px 0 14px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.edit-current-attachment{padding:9px 10px;border-radius:10px;background:#f3faf8;border:1px solid var(--line-01);margin-bottom:7px}.edit-current-attachment strong,.edit-current-attachment small{display:block}.edit-current-attachment small{font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}

/* Botão de impressão do laudo */
.btn-report-print{background:linear-gradient(135deg,var(--brand-08),var(--brand-08))!important;color:#fff!important;border-color:var(--brand-08)!important;box-shadow:0 10px 26px rgba(20,61,56,.20)!important}.btn-report-print:hover{background:linear-gradient(135deg,var(--ink-deep),var(--brand-08))!important;color:#fff!important}


@media(max-width:900px){.label-editor-layout{grid-template-columns:1fr}.label-preview-column{position:static}.edit-template-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.label-form-grid,.edit-template-grid{grid-template-columns:1fr}.history-event-title{align-items:flex-start;flex-direction:column}.history-source{align-self:flex-start}}

/* Impressão do laudo: composição fiel à tela, compacta e estável no A4. */
@media print{
  @page{size:A4 portrait;margin:8mm}
  html,body.report-body{width:auto!important;min-width:0!important;background:#fff!important;color:var(--ink-deep)!important;font-family:"Inter",Arial,sans-serif!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.report-body .no-print,body.report-body .modal-backdrop,body.report-body script{display:none!important}
  body.report-body .report-page{display:block!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important}
  body.report-body .report-paper{display:block!important;width:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;overflow:visible!important}
  body.report-body .report-header{display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:space-between!important;gap:8mm!important;padding:0 0 4mm!important;margin:0!important;border-bottom:1.3px solid var(--brand-08)!important;break-inside:avoid!important;page-break-inside:avoid!important}
  body.report-body .report-brand{gap:2mm!important}body.report-body .report-brand .brand-mark,body.report-body .report-company-logo{width:12mm!important;height:12mm!important;border-radius:2mm!important;box-shadow:none!important}body.report-body .report-brand .brand-mark:after{width:2mm!important;height:2mm!important;left:2.5mm!important;top:2.5mm!important;border-radius:.6mm!important}
  body.report-body .report-brand strong{font-size:8pt!important}body.report-body .report-brand small{font-size:5.5pt!important}
  body.report-body .report-header h1{margin:4mm 0 0!important;max-width:125mm!important;font-size:17pt!important;line-height:1.08!important;letter-spacing:-.035em!important}
  body.report-body .report-number{min-width:36mm!important;text-align:right!important}body.report-body .report-number small{font-size:5.5pt!important}body.report-body .report-number strong{margin-top:1mm!important;font-size:8pt!important}body.report-body .report-number .badge{margin-top:2mm!important;padding:1mm 2mm!important;font-size:5.5pt!important}
  body.report-body .report-section{display:block!important;margin:4.5mm 0!important;padding:0!important;break-inside:auto!important;page-break-inside:auto!important}
  body.report-body .report-identification{break-inside:avoid!important;page-break-inside:avoid!important}
  body.report-body .report-section h2{margin:0 0 1.8mm!important;padding:0 0 1.2mm!important;border-bottom:.5px solid #dfe8e6!important;font-size:6pt!important;line-height:1.2!important;letter-spacing:.11em!important;break-after:avoid!important;page-break-after:avoid!important}
  body.report-body .report-data-grid{display:flex!important;flex-wrap:wrap!important;align-items:stretch!important;gap:2mm!important;width:100%!important}
  body.report-body .report-data-item{display:block!important;flex:0 0 calc(50% - 1mm)!important;width:calc(50% - 1mm)!important;min-width:0!important;min-height:0!important;margin:0!important;padding:2.1mm 2.5mm!important;border:.5px solid #e0e9e7!important;border-radius:2.5mm!important;background:var(--surface-02)!important;break-inside:avoid!important;page-break-inside:avoid!important;overflow:visible!important}
  body.report-body .report-data-item>small{margin:0 0 .8mm!important;font-size:5pt!important;line-height:1.2!important;letter-spacing:.06em!important;color:#7c8c89!important}
  body.report-body .report-data-item>div,body.report-body .report-data-item strong{font-size:7.1pt!important;line-height:1.32!important;color:var(--ink-deep)!important;word-break:break-word!important}body.report-body .report-data-item span{margin-top:.5mm!important;font-size:5.8pt!important;line-height:1.3!important;color:#71827f!important}
  body.report-body .report-result-item>div>strong{font-size:7.4pt!important}body.report-body .range-badge{display:inline-flex!important;margin:1mm 0 0!important;padding:.8mm 1.5mm!important;font-size:5pt!important}body.report-body .report-range-text{font-size:5pt!important}
  body.report-body .report-conclusion{break-inside:avoid!important;page-break-inside:avoid!important}body.report-body .report-conclusion p{margin:0!important;padding:2.8mm 3.2mm!important;border-radius:2.5mm!important;font-size:7.3pt!important;line-height:1.45!important;background:#f3faf8!important;border:.5px solid #e0efeb!important;color:var(--ink-deep)!important}
  body.report-body .report-sign{margin-top:6mm!important;padding-top:3mm!important;border-top:.5px solid #e1e9e7!important;break-inside:avoid!important;page-break-inside:avoid!important}body.report-body .report-sign strong{font-size:7pt!important}body.report-body .report-sign span{margin-top:.8mm!important;font-size:5.4pt!important}
  body.report-body .attachment-link{font-size:6pt!important;color:var(--brand-07)!important;text-decoration:none!important}body.report-body .attachment-link:after{content:""!important}
}
.optional-label{display:inline-flex;margin-left:5px;padding:2px 6px;border-radius:999px;background:var(--surface-02);color:#738683;font-size:var(--fs-3xs);font-weight:700;vertical-align:middle}

/* Histórico do pedido — timeline em cartões */
.history-panel{padding:0;overflow:hidden}.history-panel-head{margin:0;padding:22px 24px;border-bottom:1px solid var(--line);background:linear-gradient(115deg,#fff 0%,var(--brand-01) 100%)}.history-panel-head>div:nth-child(2){flex:1}.history-total{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:var(--brand-03);color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800;white-space:nowrap}
.history-panel .history-list-rich{position:relative;padding:18px 24px 24px;background:var(--surface-02)}.history-panel .history-list-rich:before{left:177px;top:37px;bottom:44px;width:2px;border-radius:2px;background:linear-gradient(var(--brand-05),var(--line-01))}.history-panel .history-list-rich>.history-event{position:relative;display:grid;grid-template-columns:125px 38px minmax(0,1fr);gap:14px;align-items:start;padding:0 0 14px}.history-panel .history-list-rich>.history-event:last-of-type{padding-bottom:0}
.history-event-time{padding-top:13px;text-align:right;font-style:normal}.history-event-time strong,.history-event-time span{display:block}.history-event-time strong{color:#435854;font-size:var(--fs-2xs)}.history-event-time span{margin-top:2px;color:#8a9a97;font-size:var(--fs-3xs);font-weight:600}
.history-event-marker{position:relative;z-index:1;width:34px;height:34px;display:grid;place-items:center;border:4px solid #fbfdfc;border-radius:12px;background:var(--surface-02);color:#6c8782;box-shadow:0 0 0 1px var(--line-01)}.history-event.kind-start .history-event-marker{background:var(--brand-02);color:var(--brand-07)}.history-event.kind-complete .history-event-marker{background:#e2f7ec;color:#20805b}.history-event.kind-report .history-event-marker{background:#eceeff;color:#6571cf}.history-event.kind-update .history-event-marker{background:#fff2dc;color:#ad7425}
.history-event-card{min-width:0;padding:14px 16px;border:1px solid var(--line-01);border-radius:15px;background:var(--surface-tint);box-shadow:0 7px 22px rgba(34,91,84,.055);transition:transform .18s,box-shadow .18s,border-color .18s}.history-event-card:hover{transform:translateY(-1px);border-color:var(--line-02);box-shadow:0 11px 28px rgba(34,91,84,.09)}.history-event-card .history-event-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.history-event-card .history-event-title>strong{color:var(--ink);font-size:var(--fs-xs);line-height:1.4}.history-event-card>p{margin:4px 0 10px;color:var(--muted);font-size:var(--fs-2xs)}.history-event-actor{display:flex;align-items:center;gap:7px;padding-top:9px;border-top:1px solid #edf2f1;color:#82918e;font-size:var(--fs-3xs)}.history-event-actor>span:last-child strong{color:#516661}.history-actor-avatar{width:22px;height:22px;display:grid;place-items:center;flex:none;border-radius:8px;background:var(--surface-02);color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800}.history-event-card .history-source{padding:4px 8px}
@media(max-width:620px){.history-panel-head{padding:18px}.history-total{display:none}.history-panel .history-list-rich{padding:16px}.history-panel .history-list-rich:before{left:32px;top:34px}.history-panel .history-list-rich>.history-event{grid-template-columns:34px minmax(0,1fr);gap:11px}.history-event-time{grid-column:2;padding:0;text-align:left;display:flex;gap:5px}.history-event-time strong,.history-event-time span{display:inline}.history-event-marker{grid-column:1;grid-row:1/3}.history-event-card{grid-column:2;padding:13px}.history-event-card .history-event-title{align-items:flex-start;flex-direction:column;gap:6px}.history-event-card .history-source{align-self:flex-start}}

/* Menu de ações das tabelas */
.table td.table-actions{position:relative;width:58px;padding-top:9px;padding-bottom:9px;text-align:center}.table-actions-trigger{width:34px;height:34px;margin:auto;border:1px solid var(--line-01);border-radius:11px;background:var(--surface-tint);display:inline-flex;align-items:center;justify-content:center;gap:3px;color:var(--muted);cursor:pointer;transition:.16s;box-shadow:0 3px 10px rgba(32,83,77,.04)}.table-actions-trigger span{width:3px;height:3px;border-radius:50%;background:currentColor}.table-actions-trigger:hover,.table-actions-trigger.active{border-color:var(--line-02);background:var(--brand-02);color:var(--brand-07);box-shadow:0 7px 18px rgba(32,116,107,.10)}
.table-actions-menu{position:fixed;z-index:120;width:190px;display:none;padding:6px;border:1px solid var(--line-01);border-radius:14px;background:var(--surface-tint);box-shadow:0 18px 50px rgba(24,65,60,.18)}.table-actions-menu.open{display:flex;flex-direction:column}.table-actions-menu .table-action-item{width:100%;min-height:38px;margin:0;padding:9px 11px;border:0!important;border-radius:9px!important;background:transparent!important;box-shadow:none!important;display:flex;align-items:center;justify-content:flex-start;color:var(--ink-soft)!important;font-size:var(--fs-2xs);font-weight:700;text-align:left;text-decoration:none;cursor:pointer;transform:none!important}.table-actions-menu .table-action-item:hover{background:var(--brand-03)!important;color:var(--brand-07)!important}.table-actions-menu .table-action-item.btn-danger-soft{color:#bd4658!important}.table-actions-menu .table-action-item.btn-danger-soft:hover{background:#fff0f2!important;color:#ae3549!important}

/* Sidebar automática: compacta em repouso e expande no hover */
.workspace-body .app-shell,.workspace-body .sidebar{transition:padding .24s ease,width .24s ease}.workspace-body .sidebar{will-change:width}
@media(min-width:901px){.workspace-body.sidebar-collapsed{--sidebar:76px}.workspace-body.sidebar-collapsed .sidebar{padding-left:12px;padding-right:12px}.workspace-body.sidebar-collapsed .sidebar-brand-wrap{padding-left:5px;padding-right:5px}.workspace-body.sidebar-collapsed .brand>span:last-child,.workspace-body.sidebar-collapsed .nav-label,.workspace-body.sidebar-collapsed .nav-link>span:not(.nav-icon),.workspace-body.sidebar-collapsed .nav-active-dot,.workspace-body.sidebar-collapsed .sidebar-portal>span:nth-child(2),.workspace-body.sidebar-collapsed .sidebar-portal>svg,.workspace-body.sidebar-collapsed .sidebar-user .meta,.workspace-body.sidebar-collapsed .logout-link{display:none}.workspace-body.sidebar-collapsed .brand,.workspace-body.sidebar-collapsed .nav-link,.workspace-body.sidebar-collapsed .sidebar-portal,.workspace-body.sidebar-collapsed .sidebar-user{justify-content:center}.workspace-body.sidebar-collapsed .nav-link{padding-left:7px;padding-right:7px}.workspace-body.sidebar-collapsed .sidebar-portal{padding:7px}}

/* Preparação e pré-visualização da etiqueta */
.label-page-shell{max-width:1180px;padding:26px}.label-page-toolbar{min-height:62px;margin-bottom:18px;padding:8px 10px 8px 16px;border:1px solid rgba(36,104,97,.10);border-radius:18px;background:rgba(255,255,255,.78);box-shadow:0 10px 32px rgba(36,91,85,.07);backdrop-filter:blur(18px)}.label-back-link{color:#55706c;font-size:var(--fs-2xs);font-weight:800}.label-back-link:hover{color:var(--brand-07)}.label-page-heading{padding-left:16px;border-left:1px solid #dfe9e7}.label-page-heading span{color:#8b9b98!important;font-size:var(--fs-3xs)!important;text-transform:uppercase;letter-spacing:.09em}.label-page-heading strong{margin-top:2px;font-size:var(--fs-xs)!important}.label-print-button{min-height:42px;border-radius:13px;box-shadow:0 10px 25px color-mix(in srgb, var(--accent) 18%, transparent)}
.label-print-workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:stretch}.label-print-settings{padding:22px;border-radius:22px}.label-settings-head{padding-bottom:17px;border-bottom:1px solid var(--line)}.label-step-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:var(--brand-03);color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.label-settings-head h1{margin:9px 0 4px;font-size:20px;letter-spacing:-.04em}.label-settings-head p{margin:0;color:var(--muted);font-size:var(--fs-2xs);line-height:1.5}.label-picker-form{padding-top:17px}.label-picker-form .field{margin-bottom:14px}.label-picker-form label{font-size:var(--fs-2xs)}.label-spec-list{display:grid;gap:7px}.label-spec-list>div{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid #e5ecea;border-radius:12px;background:var(--surface-01);color:var(--brand-07)}.label-spec-list>div>span{min-width:0}.label-spec-list small,.label-spec-list strong{display:block}.label-spec-list small{color:#899895;font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.06em}.label-spec-list strong{margin-top:1px;color:#304743;font-size:var(--fs-2xs)}.label-print-tip{display:flex;align-items:flex-start;gap:9px;margin-top:14px;padding:11px;border:1px solid var(--line-01);border-radius:13px;background:#effaf7;color:var(--brand-07)}.label-print-tip>div{min-width:0}.label-print-tip strong,.label-print-tip span{display:block}.label-print-tip strong{font-size:var(--fs-2xs)}.label-print-tip span{margin-top:2px;color:#68817d;font-size:var(--fs-3xs);line-height:1.45}.label-manage-link{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;color:#607470;font-size:var(--fs-3xs);font-weight:800}.label-manage-link:hover{color:var(--brand-07)}
.label-preview-stage{min-width:0;padding:20px;border:1px solid rgba(36,104,97,.10);border-radius:22px;background:linear-gradient(145deg,#e9f4f1,#f7faf9);box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}.label-preview-stage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.label-preview-stage-head span,.label-preview-stage-head strong{display:block}.label-preview-stage-head span{color:#879794;font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.08em}.label-preview-stage-head strong{margin-top:2px;color:#304743;font-size:var(--fs-2xs)}.label-scale-badge{padding:5px 8px!important;border-radius:999px;background:#fff;color:var(--brand-07)!important;font-weight:800;box-shadow:0 4px 12px rgba(28,91,84,.07)}.label-preview-canvas{min-height:330px;display:grid;place-items:center;padding:34px;border:1px dashed var(--line-02);border-radius:17px;background:radial-gradient(circle at center,#fff 0,#f8fbfa 46%,#edf5f3 100%);overflow:auto}.label-preview-canvas .print-label{margin:auto;box-shadow:0 22px 55px rgba(26,70,65,.18),0 0 0 1px rgba(22,66,61,.08)}.label-preview-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}.label-preview-caption span{display:flex;align-items:center;gap:5px;color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800}.label-preview-caption small{color:#82928f;font-size:var(--fs-3xs)}
@media(max-width:850px){.label-print-workspace{grid-template-columns:1fr}.label-preview-canvas{min-height:260px}.label-page-heading{border-left:0;padding-left:0}.label-page-toolbar{align-items:stretch}}
@media(max-width:580px){.label-preview-stage{padding:14px}.label-preview-canvas{justify-content:start;padding:24px 14px}.label-preview-caption{align-items:flex-start;flex-direction:column}.label-page-heading{order:-1}}
@media print{body.label-page-body .label-print-settings,body.label-page-body .label-preview-stage-head,body.label-page-body .label-preview-caption{display:none!important}body.label-page-body .label-print-workspace,body.label-page-body .label-preview-stage,body.label-page-body .label-preview-canvas{display:block!important;width:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;overflow:visible!important}}

/* Escala física compartilhada entre editor, prévia e PDF da etiqueta */
.label-preview-column{overflow:auto}.label-preview-column .label-preview{width:var(--label-preview-width,80mm);height:var(--label-preview-height,40mm);max-width:none;max-height:none;aspect-ratio:auto;margin:0 auto;border-radius:0;font-size:var(--label-font,10px);box-shadow:0 12px 30px rgba(34,94,88,.10)}.label-preview-column .label-preview-text{inset:3mm;line-height:1.32;font-weight:600}.label-preview-column .label-preview-qr{width:var(--label-preview-qr,24mm)!important;height:var(--label-preview-qr,24mm)!important;aspect-ratio:auto!important;padding:1mm;box-shadow:none}.label-preview-column .label-preview[data-qr-position^="left"] .label-preview-text{left:calc(var(--label-preview-qr) + 6mm)}.label-preview-column .label-preview[data-qr-position^="right"] .label-preview-text{right:calc(var(--label-preview-qr) + 6mm)}.label-preview-column .label-preview[data-qr-position^="left"] .label-preview-qr{left:3mm}.label-preview-column .label-preview[data-qr-position^="right"] .label-preview-qr{right:3mm}.label-preview-column .label-preview[data-qr-position^="center"] .label-preview-qr{left:50%;transform:translateX(-50%)}.label-preview-column .label-preview[data-qr-position$="top"] .label-preview-qr{top:3mm}.label-preview-column .label-preview[data-qr-position$="bottom"] .label-preview-qr{bottom:3mm}.label-preview-column .label-preview[data-qr-position$="center"] .label-preview-qr,.label-preview-column .label-preview[data-qr-position="center"] .label-preview-qr{top:50%;transform:translateY(-50%)}.label-preview-column .label-preview[data-qr-position^="center"][data-qr-position$="center"] .label-preview-qr,.label-preview-column .label-preview[data-qr-position="center"] .label-preview-qr{left:50%;transform:translate(-50%,-50%)}

/* Detalhes do pedido no portal do cliente */
.client-order-page{padding-top:24px}.client-order-page .client-order-back{margin-bottom:18px}.client-order-page .client-order-back a{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border:1px solid var(--line-01);border-radius:10px;background:rgba(255,255,255,.72);box-shadow:0 5px 15px rgba(34,91,84,.05)}.client-order-page>.page-head{margin-bottom:24px;padding:2px 2px 0}.client-order-page>.page-head h1{font-size:34px}.client-order-page>.page-head>.badge{padding:7px 11px;box-shadow:0 5px 16px rgba(34,91,84,.06)}.client-order-page>.card{margin-bottom:18px;border-color:rgba(36,104,97,.10);border-radius:23px;box-shadow:0 16px 46px rgba(33,91,84,.085);overflow:hidden}.client-order-page>.card:last-child{margin-bottom:0}.client-order-page>.flow-section{padding:24px}.client-order-page .flow-section-head{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e5edeb}.client-order-page .flow-section-head h2{font-size:17px}.client-order-page .flow-section-head p{margin-top:3px;font-size:var(--fs-2xs)}.client-order-page .panel-icon{width:38px;height:38px;border-radius:12px}.client-order-page .summary-grid{gap:11px}.client-order-page .summary-grid>div{padding:14px;border-color:#dfe9e7;border-radius:12px;background:linear-gradient(145deg,#fbfdfc,#f7fbfa)}.client-order-page .client-workflow-list{gap:10px}.client-order-page .client-workflow-item{min-height:58px;padding:12px 14px;border-color:#dde8e5;border-radius:14px;background:linear-gradient(90deg,#fbfdfc,#f7fbfa)}.client-order-page .client-workflow-item.in_progress{border-color:var(--line-02);background:linear-gradient(90deg,var(--brand-02),#f8fcfb);box-shadow:0 7px 20px color-mix(in srgb, var(--accent) 7%, transparent)}.client-order-page .client-workflow-item.completed{border-color:#cfe7dd}.client-order-page .client-report-grid>.empty-state{grid-column:1/-1;width:100%;min-height:82px;display:grid;place-items:center;border:1px dashed #d7e4e1;border-radius:13px;background:var(--surface-02)}.client-order-page .client-report-grid>a{min-height:68px;padding:14px;border-radius:14px}
@media(max-width:720px){.client-order-page{padding-top:18px}.client-order-page>.page-head h1{font-size:28px}.client-order-page>.flow-section{padding:18px}.client-order-page>.card{margin-bottom:14px;border-radius:19px}.client-order-page .flow-section-head{padding-bottom:13px;margin-bottom:16px}}

/* Mostrar e ocultar senha em todos os campos */
.password-input-wrap{position:relative;width:100%}.password-input-wrap>.input{padding-right:43px}.password-visibility-toggle{position:absolute;z-index:2;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;padding:0;border:0;border-radius:10px;background:transparent;color:#82918e;display:grid;place-items:center;cursor:pointer;transition:.16s}.password-visibility-toggle:hover{background:var(--surface-02);color:var(--brand-07)}.password-visibility-toggle:focus-visible{outline:2px solid var(--brand-05);outline-offset:1px}.password-visibility-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-visibility-toggle[aria-pressed="true"]{color:var(--brand-07);background:var(--brand-03)}

/* Acesso e área somente leitura do cliente */
.client-access-customer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 14px;border:1px solid var(--line-01);border-radius:14px;background:var(--surface-02)}.client-access-customer span{color:var(--muted);font-size:var(--fs-2xs)}.client-access-customer strong{color:var(--brand-07);font-size:var(--fs-xs)}.client-access-note{margin:2px 0 0}.client-order-page{max-width:1120px}.client-order-back{margin-bottom:16px}.client-order-back a{color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800}.client-order-page .page-head{align-items:center}.client-order-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}.client-order-data-grid>div{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-02)}.client-order-data-grid span,.client-order-data-grid strong{display:block}.client-order-data-grid span{margin-bottom:4px;color:var(--muted);font-size:var(--fs-3xs)}.client-order-data-grid strong{font-size:var(--fs-2xs)}.client-workflow-list{display:flex;flex-direction:column;gap:8px}.client-workflow-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-02)}.client-workflow-number{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--surface-02);color:#70827f;font-size:var(--fs-2xs);font-weight:800}.client-workflow-item.completed .client-workflow-number{background:#e1f7ed;color:#23805c}.client-workflow-item.in_progress .client-workflow-number{background:var(--brand-02);color:var(--brand-07)}.client-workflow-item>div:nth-child(2) strong,.client-workflow-item>div:nth-child(2) span{display:block}.client-workflow-item>div:nth-child(2) strong{font-size:var(--fs-2xs)}.client-workflow-item>div:nth-child(2) span{margin-top:2px;color:var(--muted);font-size:var(--fs-3xs)}.client-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.client-report-grid>a{display:grid;grid-template-columns:36px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-02);transition:.16s}.client-report-grid>a:hover{border-color:var(--line-02);background:var(--brand-01);transform:translateY(-1px)}.client-report-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--brand-03);color:var(--brand-07)}.client-report-grid strong,.client-report-grid small{display:block}.client-report-grid strong{font-size:var(--fs-2xs)}.client-report-grid small{margin-top:2px;color:var(--muted);font-size:var(--fs-3xs)}.client-report-grid>a>svg{color:#8a9a97}
@media(max-width:720px){.client-order-data-grid,.client-report-grid{grid-template-columns:1fr}.client-workflow-item{grid-template-columns:36px minmax(0,1fr)}.client-workflow-item>.badge{grid-column:2;justify-self:start}}

/* Busca global nos selects */
.search-select{position:relative;width:100%}.search-select-native{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0;pointer-events:none}.search-select-input{padding-right:34px;background:var(--surface-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23748784' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat right 11px center}.search-select-menu{position:absolute;z-index:250;top:calc(100% + 5px);left:0;right:0;display:none;max-height:220px;padding:5px;overflow:auto;border:1px solid var(--line-01);border-radius:12px;background:var(--surface-tint);box-shadow:0 16px 42px rgba(27,72,67,.16)}.search-select.open .search-select-menu{display:block}.search-select-option{display:block;width:100%;min-height:34px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);font:inherit;font-size:var(--fs-2xs);text-align:left;cursor:pointer}.search-select-option:hover,.search-select-option:focus,.search-select-option.selected{outline:0;background:var(--brand-03);color:var(--brand-07)}.search-select-option:disabled{opacity:.45;cursor:not-allowed}.search-select-empty{display:block;padding:12px;color:#899894;font-size:var(--fs-2xs);text-align:center}
/* Selects de campo dinâmico (pedido, execução, fluxo, revisão de rótulo) em
   maiúsculo — só o valor das opções e o que já foi escolhido; o placeholder
   "Digite para pesquisar..." continua normal, não é dado do formulário. */
.field-select .search-select-option,.field-select .search-select-input{text-transform:uppercase}
.field-select .search-select-input::placeholder{text-transform:none}

/* Ferramentas globais das tabelas */
.data-table-toolbar{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--surface-02)}.data-table-search{flex:1;min-width:190px}.data-table-toolbar .input,.data-table-toolbar .select{min-height:36px;padding-top:8px;padding-bottom:8px;font-size:var(--fs-2xs)}.data-table-size{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:var(--fs-2xs);white-space:nowrap}.data-table-size select{width:78px}.data-table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface-02);color:var(--muted);font-size:var(--fs-2xs)}.data-table-pages{display:flex;align-items:center;gap:9px}.data-table-pages strong{color:#526662;font-size:var(--fs-2xs)}.table tbody tr[hidden]{display:none!important}
.data-table-toolbar .table-inline-filters{display:flex;align-items:center;flex-wrap:nowrap;flex:none;gap:7px;margin:0}.data-table-toolbar .table-inline-filters .search-select{width:185px}.data-table-toolbar .table-inline-filters .btn{min-height:36px}.data-table-toolbar .table-inline-filters+.data-table-size{padding-left:2px}
@media(max-width:760px){.data-table-toolbar{align-items:stretch;flex-direction:column}.data-table-search{width:100%}.data-table-size{justify-content:flex-end}.data-table-footer{align-items:flex-start;flex-direction:column}.data-table-pages{width:100%;justify-content:space-between}}
@media(max-width:1000px){.data-table-toolbar{flex-wrap:wrap}.data-table-toolbar .data-table-search{min-width:260px}.data-table-toolbar .table-inline-filters{order:3;width:100%}.data-table-toolbar .table-inline-filters .search-select{flex:1;width:auto}}

/* Defaults associados ao tipo de exame */
.exam-defaults-card,.exam-advanced-settings{margin:16px 0;padding:15px;border:1px solid var(--line-01);border-radius:14px;background:var(--surface-02)}.exam-defaults-card>div:first-child strong,.exam-defaults-card>div:first-child span{display:block}.exam-defaults-card>div:first-child strong{font-size:var(--fs-xs)}.exam-defaults-card>div:first-child span{margin:3px 0 13px;color:var(--muted);font-size:var(--fs-2xs)}.exam-defaults-card .field{margin-bottom:0}.exam-advanced-settings summary{display:flex;align-items:center;gap:7px;color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800;cursor:pointer;list-style:none}.exam-advanced-settings summary::-webkit-details-marker{display:none}.exam-advanced-settings[open] summary{margin-bottom:15px;padding-bottom:12px;border-bottom:1px solid var(--line-01)}.exam-advanced-settings .field{margin-bottom:0}.exam-advanced-settings .workflow-template-preview{margin-top:12px}
.field-label-action{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.field-label-action label{margin:0!important}.field-inline-action{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800;cursor:pointer}.field-inline-action:hover{color:var(--brand-07);text-decoration:underline}.quick-customer-error{position:static;margin:0 0 14px;padding:10px 12px;border-radius:10px;font-size:var(--fs-2xs)}
@media(max-width:760px){.exam-defaults-card .grid-3,.exam-advanced-settings .grid-3{grid-template-columns:1fr}.exam-defaults-card .field,.exam-advanced-settings .field{margin-bottom:10px}}
.exam-type-editor{display:grid;gap:18px}.exam-editor-section{border:1px solid var(--border);border-radius:16px;padding:18px;background:var(--surface-soft)}.exam-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.exam-editor-heading>div{display:flex;align-items:center;gap:12px}.exam-editor-heading>div>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--brand-08);font-weight:800}.exam-editor-heading strong,.exam-editor-heading small{display:block}.exam-editor-heading small{color:var(--muted);margin-top:3px}.report-column-builder{display:grid;gap:10px}.report-column-row{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.report-column-main{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(220px,1fr) minmax(180px,1fr) auto;gap:10px}.rc-manual-config{display:grid;grid-template-columns:180px 1fr auto;gap:10px;align-items:center;margin-top:10px}.rc-options{display:none}.rc-options.show{display:block}.report-results-table{width:100%;border-collapse:collapse}.report-results-table th,.report-results-table td{padding:12px;border:1px solid var(--line-01);text-align:left;vertical-align:top}.report-results-table th{background:var(--surface-01);color:var(--ink-deep)}.report-results-table-wrap{overflow-x:auto}@media(max-width:800px){.report-column-main,.rc-manual-config{grid-template-columns:1fr}.exam-editor-heading{align-items:flex-start;flex-direction:column}}
.edit-template-grid{grid-template-columns:1fr}.edit-template-grid>.field:not(:first-child){display:none}
[data-order-tab="execution"],[data-order-panel="execution"]{display:none!important}
.search-select-menu.search-select-floating{position:fixed;right:auto;display:block;z-index:1000}
.rc-conformity{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.rc-conform-config{margin-top:8px}.rc-conform-range{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rc-conform-options{display:grid;gap:6px}.rc-conform-options label{display:grid;grid-template-columns:1fr 170px;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;background:var(--surface-2);font-size:var(--fs-2xs)}.rc-conform-warning{display:block;color:var(--red);font-size:var(--fs-2xs)}.conformity-badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:var(--fs-2xs);font-weight:800;white-space:nowrap}.conformity-badge.conforming{background:#e5f7ed;color:#19764d}.conformity-badge.nonconforming{background:#fff0f2;color:#b23f51}.conformity-badge.not_evaluated{background:var(--surface-02);color:#687882}@media(max-width:700px){.rc-conform-range,.rc-conform-options label{grid-template-columns:1fr}}
.rc-conform-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rc-conform-dates label{display:grid;gap:5px}.rc-conform-dates label span{font-size:var(--fs-2xs);font-weight:700;color:var(--muted)}.rc-conform-expected-wrap{display:block}@media(max-width:700px){.rc-conform-dates{grid-template-columns:1fr}}
.report-row-actions,.report-order-actions{display:flex;gap:6px}.report-column-main{grid-template-columns:minmax(180px,1fr) auto}.report-row-builder{display:grid;gap:12px}.report-row-card{padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.report-row-head{display:grid;grid-template-columns:210px minmax(180px,1fr) auto;gap:9px;align-items:center}.report-row-cells{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:11px;padding-top:11px;border-top:1px dashed var(--line)}.report-cell-config{display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.report-cell-config>strong{font-size:var(--fs-2xs);color:var(--primary-dark)}.cell-manual,.cell-rule{display:grid;gap:7px}.cell-rule{padding-top:7px;border-top:1px dashed var(--line)}.cell-manual label{font-size:var(--fs-2xs)}.report-section-row th{background:var(--surface-02)!important;color:var(--brand-07)!important;font-weight:800;text-align:left}.report-generation-table .field{margin:0;min-width:150px}.report-generation-table .field>label{display:none}.report-generation-table input,.report-generation-table select,.report-generation-table textarea{min-width:140px}@media(max-width:760px){.report-row-head{grid-template-columns:1fr}.report-row-actions{flex-wrap:wrap}}
.auto-control-wrap{display:flex;min-width:0;width:100%;flex-direction:column;justify-content:center}.auto-control-wrap>.input,.auto-control-wrap>.select,.auto-control-wrap>.textarea{width:100%;min-width:0}.auto-control-label{display:block;margin:0 0 5px;color:var(--text);font-size:var(--fs-2xs);font-weight:700;line-height:1.25}.search-select>.auto-control-label{margin-bottom:5px}.report-cell-config .auto-control-label,.report-row-card .auto-control-label{color:var(--muted);font-size:var(--fs-3xs)}.data-table-search>.auto-control-label{font-size:var(--fs-3xs)}.report-generation-table .field>label{display:block}.builder-row>.auto-wrap-bf-options{display:none;grid-column:1/-1}.builder-row>.auto-wrap-bf-options:has(.bf-options.show){display:flex}.workflow-field-row>.auto-wrap-wf-options{display:none;grid-column:2/-1}.workflow-field-row>.auto-wrap-wf-options:has(.wf-field-options.show){display:flex}.multi-response-row>.auto-control-wrap{flex:1}.report-column-main>.auto-control-wrap,.report-row-head>.auto-control-wrap{height:100%}.exam-type-editor .search-select{min-width:0}.exam-type-editor .search-select-input{width:100%;min-width:0}@media(max-width:580px){.builder-row>.auto-wrap-bf-options,.workflow-field-row>.auto-wrap-wf-options{grid-column:1/-1}}
.cell-rule.automatic::after{content:'Conformidade determinada automaticamente pela configuração da análise vinculada.';display:block;padding:10px 11px;border:1px solid var(--line-02);border-radius:9px;background:var(--brand-03);color:var(--ink-soft);font-size:var(--fs-2xs);line-height:1.45}
.cell-rule.automatic.informative::after{content:'Análise informativa: esta linha não possui avaliação de conformidade.'}
.report-brand-section .exam-editor-heading{margin-bottom:16px}.report-brand-editor{display:grid;grid-template-columns:132px minmax(280px,1fr) minmax(280px,1fr);align-items:start;gap:16px}.report-brand-editor .field{display:flex;min-width:0;margin:0;flex-direction:column}.report-brand-editor .field>label{min-height:16px;margin:0 0 6px}.report-brand-preview{width:132px;height:90px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:6px;border:1px dashed #b9ceca;border-radius:11px;background:var(--surface-01);color:var(--muted);font-size:var(--fs-2xs)}.report-brand-preview img{display:block;width:auto!important;height:auto!important;max-width:100%;max-height:100%;object-fit:contain}.report-brand-editor .input{width:100%;min-height:44px}.report-brand-editor input[type='file']{padding:7px 9px}.report-brand-editor .field small{display:block;min-height:24px;margin-top:6px;color:var(--muted);font-size:var(--fs-3xs);line-height:1.4}.report-company-logo{display:block;width:54px;height:54px;flex:none;object-fit:contain;border-radius:8px}.report-brand{align-items:center}@media(max-width:900px){.report-brand-editor{grid-template-columns:132px minmax(0,1fr)}.report-brand-editor .field:last-child{grid-column:2}}@media(max-width:620px){.report-brand-editor{grid-template-columns:1fr}.report-brand-editor .field:last-child{grid-column:auto}.report-brand-preview{width:132px}}
.auto-control-wrap:has(>.hidden),.search-select:has(>select.hidden){display:none!important}
.modal-xwide .modal-body{overflow-x:hidden}.exam-type-editor,.exam-editor-section,.field-builder,.builder-row,.report-column-builder,.report-column-row,.report-row-builder,.report-row-card,.report-row-cells,.report-cell-config{min-width:0;max-width:100%}.exam-type-editor .input,.exam-type-editor .select,.exam-type-editor .textarea{max-width:100%}.report-column-main,.report-row-head{width:100%;min-width:0}.report-order-actions{align-self:end;padding-bottom:1px}.report-row-head>.report-order-actions{align-self:center}.report-cell-config{align-content:start}.report-cell-config>strong{min-height:24px;line-height:1.35}.exam-type-editor .builder-row{align-items:end}.exam-type-editor .builder-required{align-self:center;margin-top:14px}.exam-type-editor .bf-remove{align-self:end}.exam-type-editor .search-select>.auto-control-label{white-space:normal}
#examTypeModal .modal{display:flex;flex-direction:column;width:min(1180px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:hidden}#examTypeModal .modal-body{flex:1;overflow-y:auto;overflow-x:hidden}#examTypeModal .modal-head,#examTypeModal .modal-foot{flex:none}.analysis-builder-card{display:block!important;width:100%;padding:0!important;overflow:hidden;background:var(--surface)!important;border:1px solid var(--line-01)!important;border-radius:15px!important}.analysis-card-head{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,210px) auto 36px;align-items:end;gap:12px;padding:14px}.analysis-card-title,.analysis-card-type{min-width:0}.analysis-card-title>span,.analysis-card-type>span{display:block;margin:0 0 5px;color:var(--muted);font-size:var(--fs-3xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.analysis-required{display:flex;align-items:center;gap:6px;min-height:38px;padding:0 4px;color:#526966;font-size:var(--fs-2xs);font-weight:700;white-space:nowrap}.analysis-card-head .bf-remove{align-self:end}.analysis-config{border-top:1px solid var(--line-01)}.analysis-config>summary,.analysis-report-info>summary,.analysis-advanced>summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800}.analysis-config>summary::-webkit-details-marker,.analysis-report-info>summary::-webkit-details-marker,.analysis-advanced>summary::-webkit-details-marker{display:none}.analysis-config>summary{padding:11px 14px;background:var(--surface-02)}.analysis-config>summary small{margin-left:auto;color:var(--muted);font-size:var(--fs-3xs);font-weight:500}.analysis-config>summary:after,.analysis-report-info>summary:after,.analysis-advanced>summary:after{content:'⌄';margin-left:3px}.analysis-config[open]>summary:after,.analysis-report-info[open]>summary:after,.analysis-advanced[open]>summary:after{transform:rotate(180deg)}.analysis-config-body{display:grid;gap:12px;padding:14px;background:var(--surface-02)}.analysis-config-section,.analysis-report-info,.analysis-advanced{min-width:0;padding:13px;border:1px solid var(--line-01);border-radius:12px;background:var(--surface-01)}.analysis-config-heading{margin-bottom:11px}.analysis-config-heading strong,.analysis-config-heading small{display:block}.analysis-config-heading strong{font-size:var(--fs-2xs);color:var(--ink-deep)}.analysis-config-heading small{margin-top:3px;color:var(--muted);font-size:var(--fs-3xs)}.analysis-config-section>label,.analysis-response-options label,.analysis-eval-range label,.analysis-report-info label{display:grid;min-width:0;gap:5px;color:#5e716e;font-size:var(--fs-3xs);font-weight:700}.analysis-response-options .bf-options-box{display:block;width:100%;grid-column:auto}.analysis-eval-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.analysis-eval-expected{margin-top:10px}.analysis-option-states{display:grid;gap:8px;margin-top:11px}.analysis-option-states>strong{font-size:var(--fs-2xs)}.bf-option-states{display:grid;gap:7px}.bf-option-states>label{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,190px);align-items:center;gap:10px;padding:8px 10px;border-radius:9px;background:var(--surface-01);color:#415e5a;font-size:var(--fs-2xs)}.analysis-manual-note{margin:10px 0 0;padding:9px 11px;border-radius:9px;background:#fff7e8;color:#805c1d;font-size:var(--fs-3xs);line-height:1.45}.analysis-report-info>summary,.analysis-advanced>summary{padding:1px}.analysis-report-info>div{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(220px,1fr) minmax(220px,1fr);gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed #dce8e5}.analysis-report-info textarea{min-height:78px}.analysis-advanced .builder-required{margin-top:12px!important;min-height:auto}.exam-editor-section [data-exam-fields='execution']{display:grid;gap:10px}.exam-editor-section [data-exam-fields='execution'] .analysis-builder-card{margin:0}.exam-editor-section [data-exam-fields='order'] .builder-row{grid-template-columns:minmax(220px,1fr) minmax(150px,190px) auto auto 36px}.exam-editor-section [data-exam-fields='order'] .bf-manual{display:none}
@media(max-width:780px){#examTypeModal .modal{width:min(100%,calc(100vw - 18px));max-height:calc(100vh - 18px)}.analysis-card-head{grid-template-columns:minmax(0,1fr) 36px}.analysis-card-type,.analysis-required{grid-column:1}.analysis-card-head .bf-remove{grid-column:2;grid-row:1}.analysis-report-info>div,.analysis-eval-range{grid-template-columns:1fr}.bf-option-states>label{grid-template-columns:1fr}.analysis-config>summary{align-items:flex-start;flex-direction:column}.analysis-config>summary small{margin-left:0}.exam-editor-section [data-exam-fields='order'] .builder-row{grid-template-columns:1fr}.exam-editor-section [data-exam-fields='order'] .bf-remove{justify-self:end}}

/* =========================================================
   PALETAS — trocam apenas a cor da marca. Toda a escada
   (--brand-*, --surface-*, --line-*, --ink-*) é derivada
   dela por color-mix no bloco :root, então não há nada a
   redefinir aqui além destas três variáveis.

   O atributo data-palette é escrito no <html> por
   palette_attributes() em includes/bootstrap.php, a partir
   de organizations.settings_json.palette.

   Verde/água é o padrão e vive no :root — não precisa de
   bloco próprio.
   ========================================================= */
/* Apis Brasil: verde-petróleo da marca, com o dourado do logo como cor de apoio. */
[data-palette="apisbrasil"]{--accent:#0f8b7a;--accent-dark:#0a6559;--accent-2:#3fae9e;--amber:#e0a81f;--accent-soft:#e6f4f1}
[data-palette="roxo"]{--accent:#7c5cd6;--accent-dark:#5b3fb0;--accent-2:#9a7ee8}
[data-palette="rosa"]{--accent:#d6558f;--accent-dark:#ad3a6f;--accent-2:#e87bab}
[data-palette="azul"]{--accent:#2f7fe0;--accent-dark:#1f5fb0;--accent-2:#5b9df0}
[data-palette="ambar"]{--accent:#c2811f;--accent-dark:#976117;--accent-2:#e0a445}
[data-palette="grafite"]{--accent:#5b6b78;--accent-dark:#3f4c56;--accent-2:#7b8b98}

/* =========================================================
   TEMA ESCURO — troca só os primitivos (--surface-tint e os
   --ink-target-N), nunca as fórmulas. Toda a escada da marca,
   as superfícies e os cinzas de texto seguem automaticamente,
   para as seis paletas, porque são color-mix em cima destes
   pontos, não cores fixas.

   Combina com qualquer [data-palette]: o <html> carrega os dois
   atributos (data-palette e data-theme) escritos por
   app_html_open() a partir de organizations.settings_json.

   Verde/âmbar/vermelho de conformidade, os arquivos de logo por
   paleta e a impressão do laudo (que sempre sai em papel branco)
   ficam de fora de propósito — não são pintura de tema.
   ========================================================= */
:root[data-theme="dark"]{
  --surface-tint:#182225;
  --ink-target-1:#aab8b5;
  --ink-target-2:#d2ddda;
  --ink-target-3:#eef5f3;
  --ink-target-4:#eef8f6;
  --ink-target-5:#f5fbfa;

  --bg:#10181a;
  --ink:#eef5f3;
  --muted:#9fb0ad;
  --faint:#7c8d8a;
  --nav:#141d20;
  --shadow:0 24px 70px rgba(0,0,0,.4);
  --shadow-soft:0 14px 42px rgba(0,0,0,.3);
}

/* O fundo do body usa os mesmos brilhos de canto do tema claro, mas uma
   variação pequena de luz sobre uma base muito escura fica bem mais visível
   ao olho do que a mesma variação sobre uma base clara — o resultado, com
   as porcentagens do tema claro, era uma mancha com banda visível (a foto
   que mostrou o problema). Aqui a intensidade é bem mais baixa, o raio bem
   maior e há um degrau intermediário para suavizar a transição, e a base é
   sólida (--bg) em vez do degradê diagonal de três pontas — mais barato de
   renderizar e sem a mesma tendência a bandas. */
:root[data-theme="dark"] body{
  background:
    radial-gradient(circle at 8% 6%,color-mix(in srgb, var(--accent) 7%, transparent) 0%,color-mix(in srgb, var(--accent) 2%, transparent) 24%,transparent 46%),
    radial-gradient(circle at 90% 5%,color-mix(in srgb, var(--accent) 6%, transparent) 0%,color-mix(in srgb, var(--accent) 2%, transparent) 22%,transparent 44%),
    var(--bg);
}

/* Seletor de paleta (Configurações › Aparência) */
.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:6px}
.palette-option{position:relative;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line-01);border-radius:var(--radius-sm);background:var(--surface-strong);cursor:pointer;transition:.15s}
.palette-option:hover{border-color:var(--brand-04)}
/* :has(input:checked) atualiza a borda no clique, antes de salvar; .selected (vindo do PHP) cobre navegadores sem suporte a :has(). */
/* Fonte única de verdade: o próprio rádio marcado. Antes havia também uma classe .selected vinda do servidor, e as duas ficavam acesas ao mesmo tempo assim que o usuário clicava numa cor diferente da salva. */
.palette-option:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}
.palette-option input{position:absolute;opacity:0;pointer-events:none}
.palette-option:has(input:disabled){cursor:not-allowed;opacity:.6}
.palette-swatch{display:flex;gap:3px;flex:none}
.palette-swatch i{display:block;width:13px;height:30px;border-radius:5px}
/* O swatch precisa mostrar a paleta que representa, não a que está em uso:
   por isso cada um redefine --accent no próprio escopo. */
.palette-swatch[data-palette="verde"]{--accent:#17b8aa}
.palette-swatch[data-palette="roxo"]{--accent:#7c5cd6}
.palette-swatch[data-palette="rosa"]{--accent:#d6558f}
.palette-swatch[data-palette="azul"]{--accent:#2f7fe0}
.palette-swatch[data-palette="ambar"]{--accent:#c2811f}
.palette-swatch[data-palette="grafite"]{--accent:#5b6b78}
.palette-swatch-accent{background:var(--accent)}
.palette-swatch-soft{background:color-mix(in srgb, var(--accent) 42%, #fff)}
.palette-swatch-line{background:color-mix(in srgb, var(--accent) 14%, #fff)}
.palette-name{font-size:var(--fs-xs);font-weight:700;color:var(--ink)}

/* Matriz de permissões (Configurações › Cargos) */
.permission-matrix{border:1px solid var(--line-01);border-radius:var(--radius-sm);overflow:hidden}
.permission-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,72px);align-items:center;gap:8px;padding:9px 13px;border-bottom:1px solid var(--line-01)}
.permission-row:last-child{border-bottom:0}
.permission-row-head{background:var(--surface-01);font-size:var(--fs-3xs);font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-muted)}
.permission-row-head>span+span,.permission-row>span+span{text-align:center}
.permission-module{font-size:var(--fs-xs);font-weight:700}
.permission-cell{display:grid;place-items:center;cursor:pointer}
input[type=checkbox],input[type=radio]{width:17px;height:17px;min-height:0;flex:none;margin:0;accent-color:var(--accent);cursor:pointer}
.permission-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}

/* Checkbox com cantos arredondados. O controle nativo é um quadrado de canto
   vivo que o navegador desenha sozinho — accent-color pinta, mas não arredonda.
   Com appearance:none o desenho passa a ser nosso: a caixa segue os tokens de
   superfície/linha (logo acompanha tema e paleta) e o "check" é uma borda em L
   girada, sem imagem nem fonte de ícone. O radio continua nativo, porque
   redondo já é a forma certa dele.
   Fica antes de .choice-option input (que esconde o controle e desenha o
   próprio botão) para que aquela regra continue vencendo onde é usada. */
input[type=checkbox]{
  appearance:none;-webkit-appearance:none;
  display:inline-grid;place-content:center;
  border:1.5px solid var(--line-02);
  border-radius:6px;
  background:var(--surface-strong);
  transition:background .14s,border-color .14s;
}
input[type=checkbox]:not(:disabled):hover{border-color:var(--accent)}
input[type=checkbox]:checked,input[type=checkbox]:indeterminate{background:var(--accent);border-color:var(--accent)}
input[type=checkbox]:checked::after{content:"";width:9px;height:5px;margin-top:-2px;border:2px solid #fff;border-top:0;border-right:0;border-radius:1px;transform:rotate(-45deg)}
input[type=checkbox]:indeterminate::after{content:"";width:9px;height:2px;border-radius:1px;background:#fff}
input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}
input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Texto só para leitor de tela: some da tela sem sumir da árvore de acessibilidade. */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.permission-na{color:var(--line-02);font-style:normal}
@media(max-width:620px){
  .permission-row{grid-template-columns:minmax(0,1fr) repeat(4,minmax(0,1fr));gap:4px;padding:9px}
  .permission-row-head{font-size:7px;letter-spacing:.02em}
}

/* Seletor de tema (Configurações › Aparência) */
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:6px}
.theme-option{position:relative;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line-01);border-radius:var(--radius-sm);background:var(--surface-strong);cursor:pointer;transition:.15s}
.theme-option:hover{border-color:var(--brand-04)}
.theme-option:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}
.theme-option input{position:absolute;opacity:0;pointer-events:none}
.theme-option:has(input:disabled){cursor:not-allowed;opacity:.6}
.theme-preview{display:flex;flex-direction:column;gap:4px;flex:none;width:46px;height:34px;padding:6px;border-radius:8px;overflow:hidden}
.theme-option-claro .theme-preview{background:#f4f7f6;border:1px solid #e2e8e6}
.theme-option-escuro .theme-preview{background:#141d20;border:1px solid #2a3438}
.theme-preview-bar{height:8px;border-radius:3px}
.theme-option-claro .theme-preview-bar{background:#fff;box-shadow:0 0 0 1px #e2e8e6}
.theme-option-escuro .theme-preview-bar{background:#20292c;box-shadow:0 0 0 1px #333e42}
.theme-preview-line{height:3px;border-radius:2px}
.theme-option-claro .theme-preview-line{background:#d7e0de}
.theme-option-escuro .theme-preview-line{background:#3a454a}
.theme-preview-line.short{width:60%}

/* Chips de acesso na listagem de Cargos */
.access-chip-list{display:flex;flex-wrap:wrap;gap:6px}
.access-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--surface-02);border:1px solid var(--line-01);color:var(--ink-soft);font-size:var(--fs-3xs);font-weight:700}
.access-chip b{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:var(--brand-02);color:var(--brand-07);font-size:9px;font-weight:800}

/* Abas personalizadas — a sequência em degraus diferencia os três formatos sem competir com o conteúdo. */
.sidebar-order-card{margin-bottom:20px;overflow:hidden}.sidebar-order-summary{display:grid;grid-template-columns:42px minmax(0,1fr) auto 28px;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;list-style:none;transition:background .15s}.sidebar-order-summary::-webkit-details-marker{display:none}.sidebar-order-summary:hover{background:var(--surface-2)}.sidebar-order-summary:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 18%,transparent);outline-offset:-3px}.sidebar-order-summary-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--brand-02);color:var(--brand-07)}.sidebar-order-summary-copy strong,.sidebar-order-summary-copy small{display:block}.sidebar-order-summary-copy strong{color:var(--ink);font-size:var(--fs-sm)}.sidebar-order-summary-copy small{margin-top:3px;color:var(--muted);font-size:var(--fs-2xs)}.sidebar-order-chevron{display:grid;place-items:center;width:28px;height:28px;color:var(--muted);font-size:20px;transition:transform .18s}.sidebar-order-card[open] .sidebar-order-chevron{transform:rotate(180deg)}.sidebar-order-panel{padding:16px 18px 18px;border-top:1px solid var(--line);background:var(--surface-2)}.sidebar-order-panel>p{margin:0 0 14px;color:var(--muted);font-size:var(--fs-xs);line-height:1.5}.sidebar-order-list{display:grid;gap:7px}.sidebar-order-item{position:relative;display:grid;grid-template-columns:34px 40px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:8px 10px;border:1px solid var(--line);border-radius:13px;background:var(--surface);transition:border-color .15s,background .15s}.sidebar-order-item:focus-within{border-color:var(--brand-04)}.sidebar-order-index{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:var(--fs-3xs);font-weight:800;font-variant-numeric:tabular-nums}.sidebar-order-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--brand-02);color:var(--brand-07)}.sidebar-order-copy strong,.sidebar-order-copy small{display:block}.sidebar-order-copy strong{font-size:var(--fs-xs)}.sidebar-order-copy small{margin-top:2px;color:var(--muted);font-size:var(--fs-3xs)}.sidebar-order-actions{display:flex;gap:6px}.sidebar-order-actions .icon-btn{background:var(--surface);border-color:var(--line)}.sidebar-order-actions .icon-btn:disabled{opacity:.3;cursor:not-allowed}.sidebar-order-save{padding:16px 0 0}.sidebar-order-save .btn{min-width:190px}
.sidebar-order-item:has(.sidebar-drag-handle){grid-template-columns:32px 34px 40px minmax(0,1fr) auto;cursor:default;transition:transform .22s cubic-bezier(.2,0,0,1),border-color .16s,background .16s,box-shadow .22s}.sidebar-order-item.is-dragging{z-index:4;cursor:grabbing;transform:scale(1.012);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--surface));box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 20%,transparent);opacity:.94}.sidebar-reordering{user-select:none}.sidebar-drag-handle{display:grid;place-items:center;width:30px;height:38px;padding:0;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:grab;touch-action:none}.sidebar-drag-handle:hover{color:var(--brand-07);background:var(--brand-02)}.sidebar-drag-handle:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 25%,transparent);color:var(--brand-07)}.sidebar-drag-handle:active{cursor:grabbing}.sidebar-order-item.is-dragging .sidebar-drag-handle{cursor:grabbing}.sidebar-order-actions .icon-btn{width:36px;height:36px}
.custom-tab-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.custom-tab-guide>div{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}.custom-tab-guide>div:nth-child(2){transform:translateY(5px)}.custom-tab-guide>div:nth-child(3){transform:translateY(10px)}.custom-tab-guide span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--brand-02);color:var(--brand-07)}.custom-tab-guide strong{font-size:var(--fs-xs)}.custom-tab-guide small{margin-top:3px;color:var(--muted);font-size:var(--fs-3xs);line-height:1.4}.custom-tab-entity{display:flex;align-items:center;gap:7px}.custom-tab-entity span{display:grid;place-items:center;color:var(--brand-07)}.custom-tab-editor{display:grid;gap:4px}.custom-tab-editor [data-custom-tab-fields]{margin-top:8px;padding-top:18px;border-top:1px solid var(--line)}.custom-tab-active{margin:0 0 8px}.custom-tab-content{min-height:280px;line-height:1.65}.slug-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);overflow:hidden}.slug-input>span{padding:0 0 0 11px;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}.slug-input .input{border:0;background:transparent;box-shadow:none}.custom-tab-head{padding-bottom:14px;border-bottom:1px solid var(--line)}.custom-record-editor{margin-bottom:18px}.custom-record-editor .section-title>div>p{margin:3px 0 0;font-size:var(--fs-2xs)}.custom-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.custom-record-grid>.field:has(.textarea),.custom-record-grid>.multi-response-field{grid-column:1/-1}.custom-records-card{overflow:hidden}.custom-record-table td{max-width:300px;overflow-wrap:anywhere}.custom-document{position:relative;min-height:320px;padding:34px 38px 40px 86px;overflow:hidden;font-size:var(--fs-sm);line-height:1.8;white-space:normal}.custom-document-mark{position:absolute;top:32px;left:30px;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--brand-02);color:var(--brand-07)}.custom-document p{margin-top:0}
@media(max-width:760px){.sidebar-order-summary{grid-template-columns:38px minmax(0,1fr) auto;padding:13px}.sidebar-order-summary-icon{width:38px;height:38px}.sidebar-order-summary .badge{display:none}.sidebar-order-chevron{grid-column:3;grid-row:1}.sidebar-order-panel{padding:13px}.sidebar-order-item{grid-template-columns:30px 36px minmax(0,1fr) auto;padding:8px}.sidebar-order-actions{gap:3px}.sidebar-order-actions .icon-btn{width:32px;height:32px}.sidebar-order-save .btn{width:100%}.custom-tab-guide{grid-template-columns:1fr}.custom-tab-guide>div:nth-child(n){transform:none}.custom-record-grid{grid-template-columns:1fr}.custom-record-grid>.field:has(.textarea),.custom-record-grid>.multi-response-field{grid-column:auto}.custom-document{padding:78px 22px 30px}.custom-document-mark{top:22px;left:22px}}
.profile-layout{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:18px}.profile-photo-card{position:sticky;top:92px;display:flex;flex-direction:column;align-items:center;padding:24px;text-align:center}.profile-photo-preview{width:118px;height:118px;margin-bottom:15px;border-radius:32px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,var(--brand-03),var(--brand-02));border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);box-shadow:0 14px 35px color-mix(in srgb,var(--accent) 14%,transparent);color:var(--brand-07);font-size:32px;font-weight:800}.profile-photo-preview img,.avatar img,.top-avatar img{width:100%;height:100%;object-fit:cover}.profile-photo-card>strong{font-size:var(--fs-sm)}.profile-photo-card>small{margin-top:3px;color:var(--muted)}.profile-photo-button{position:relative;margin-top:17px;overflow:hidden;cursor:pointer}.profile-photo-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.profile-photo-remove{display:inline-flex;align-items:center;gap:6px;margin-top:13px;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:#b74958;font:inherit;font-size:var(--fs-2xs);font-weight:700;cursor:pointer;transition:background .14s,color .14s}.profile-photo-remove:hover{background:#fff0f2;color:#9e3041}.profile-photo-remove:focus-visible{outline:3px solid color-mix(in srgb,#c64d60 24%,transparent);outline-offset:2px}.profile-photo-remove[hidden]{display:none}.profile-forms{display:grid;gap:16px}.profile-password-card{margin:0}.profile-save{margin:0;justify-content:flex-end}.avatar-link,.top-avatar{text-decoration:none;overflow:hidden}.sidebar-user .meta a{text-decoration:none}.section-title p{margin:3px 0 0;color:var(--muted);font-size:var(--fs-2xs);font-weight:400}
@media(max-width:760px){.settings-group-switch{grid-template-columns:1fr}.profile-layout{grid-template-columns:1fr}.profile-photo-card{position:static}.profile-save .btn{width:100%}.sidebar-order-item:has(.sidebar-drag-handle){grid-template-columns:30px 30px 36px minmax(0,1fr) auto}}
@media(prefers-reduced-motion:reduce){.sidebar-order-item,.settings-group-option{transition:none!important}.sidebar-order-item.is-dragging{transform:none}}
/* Rótulos regulatórios */
.company-role-options{display:flex;gap:18px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}
.company-role-options label{display:flex;align-items:center;gap:8px;font-weight:600}
.operations-tabs{margin-bottom:18px}
.regulatory-form-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}
.regulatory-form-section:first-child{margin-top:14px}
.regulatory-section-head{margin-bottom:14px}.regulatory-section-head h4{margin:0;font-size:15px}
.revision-tabs{display:flex;gap:10px;overflow:auto;margin:0 0 14px;padding-bottom:4px}
.revision-tab{min-width:142px;display:grid;gap:2px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:var(--shadow);transition:border-color .18s,transform .18s}
.revision-tab:hover{border-color:var(--line-02);transform:translateY(-1px)}
.revision-tab strong{font-size:var(--fs-sm)}
.revision-tab.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.revision-tab span,.revision-tab small{color:var(--muted);font-size:var(--fs-2xs)}
.label-answer-section{padding:18px 0;border-top:1px solid var(--line)}.label-answer-section:first-of-type{border-top:0;padding-top:2px}.label-answer-section:last-child{padding-bottom:2px}
.label-answer-section h4{margin:0 0 14px;font-size:var(--fs-sm)}
.label-answer-section dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:0}
.label-answer-section dl>div{min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.label-answer-section dt{font-size:var(--fs-2xs);font-weight:600;color:var(--muted);margin-bottom:5px}
.label-answer-section dd{margin:0;font-size:var(--fs-xs);overflow-wrap:anywhere}
.review-stage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;align-items:start}
.review-stage{display:grid;align-content:start;gap:12px;padding:17px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);transition:border-color .18s,box-shadow .18s}
.review-stage:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.review-stage.is-approved,.review-stage.is-not_applicable{border-color:color-mix(in srgb,var(--green) 26%,var(--line));background:color-mix(in srgb,var(--green) 5%,var(--surface-2))}
.review-stage.is-changes_requested{border-color:color-mix(in srgb,var(--amber) 30%,var(--line));background:color-mix(in srgb,var(--amber) 6%,var(--surface-2))}
.company-logo-row{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap}
.company-logo-preview{display:grid;place-items:center;width:130px;height:130px;padding:14px;border:1px dashed var(--line);border-radius:16px;background:var(--surface-2);flex:none}
.company-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.company-logo-fields{flex:1;min-width:260px}
.company-logo-remove{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--muted);font-size:var(--fs-2xs)}
.field-inline-action{padding:0;border:0;background:none;color:var(--accent-dark);font-size:var(--fs-2xs);font-weight:700;cursor:pointer}
.field-inline-action:hover{text-decoration:underline;text-underline-offset:2px}
.revision-diff{display:grid;gap:12px}
.revision-diff-row>strong{display:block;margin-bottom:7px;font-size:var(--fs-xs)}
.revision-diff-values{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);gap:10px;align-items:center}
.revision-diff-values>div{min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:11px;font-size:var(--fs-2xs);overflow-wrap:anywhere}
.revision-diff-values span{display:block;margin-bottom:3px;color:var(--muted);font-size:var(--fs-3xs);font-weight:700}
.revision-diff-before{background:var(--surface-2);color:var(--muted)}
.revision-diff-after{background:color-mix(in srgb,var(--green) 5%,var(--surface-2));border-color:color-mix(in srgb,var(--green) 26%,var(--line))}
.revision-diff-arrow{display:grid;place-items:center;padding:0!important;border:0!important;color:var(--faint)}
@media(max-width:580px){.revision-diff-values{grid-template-columns:1fr}.revision-diff-arrow{transform:rotate(90deg)}}
.review-stage-answers{display:grid;gap:9px;margin:0}
.review-stage-answers>div{padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.review-stage-answers dt{margin-bottom:3px;color:var(--muted);font-size:var(--fs-2xs);font-weight:600}
.review-stage-answers dd{margin:0;font-size:var(--fs-2xs);overflow-wrap:anywhere}
.review-stage-details{min-width:0}.review-stage-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800;cursor:pointer;list-style:none}.review-stage-details>summary::-webkit-details-marker{display:none}.review-stage-details>summary:after{content:"+";width:20px;height:20px;display:grid;place-items:center;flex:none;border-radius:6px;background:var(--brand-02);font-size:15px;line-height:1}.review-stage-details[open]>summary:after{content:"−"}.review-stage-details>summary span{margin-right:auto}.review-stage-details>summary small{color:var(--muted);font-size:var(--fs-3xs);font-weight:700;white-space:nowrap}.review-stage-details[open]>summary{margin-bottom:9px}.review-stage-details .review-stage-answers{max-height:520px;padding-right:5px;overflow:auto;scrollbar-width:thin}
.workflow-blocked-comment{margin:0 17px 14px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.workflow-blocked-comment strong{display:block;margin-bottom:4px;font-size:var(--fs-2xs);color:var(--muted)}
.workflow-blocked-comment p{margin:0;font-size:var(--fs-xs)}
.review-stage.is-locked{border-style:dashed;background:transparent}
.review-stage.is-locked .review-stage-head strong{color:var(--muted)}
.review-stage-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.review-stage-head strong{font-size:var(--fs-xs)}
.review-stage-meta{display:flex;align-items:center;gap:6px;margin-top:-4px;color:var(--muted);font-size:var(--fs-2xs)}
.review-stage .field{margin:0}
.review-stage textarea{min-height:76px}
.review-stage .btn{justify-content:center;width:100%}
.review-stage-note{margin:0;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--muted);font-size:var(--fs-2xs)}
.review-stage-empty{color:var(--faint);font-style:italic}
.printer-action{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.printer-action strong,.printer-action span{display:block}
.printer-action strong{font-size:var(--fs-xs)}
.printer-action span{margin-top:3px;color:var(--muted);font-size:var(--fs-2xs)}
.badge.status-in_review,.badge.status-pending{background:#eef3ff;color:#3958a6}.badge.status-changes_requested{background:#fff0e8;color:#a64c20}.badge.status-approved{background:#e9f8ef;color:#237a45}.badge.status-sent_to_printer{background:#eeeafd;color:#5c43a5}.badge.status-not_applicable{background:#f2f3f5;color:#626b76}
@media(max-width:580px){.review-stage-grid,.label-answer-section dl{grid-template-columns:1fr}.printer-action form,.printer-action .btn{width:100%}}

/* ===========================================================================
   Operação Piloto: certificado de análise, código de barras, prazo e produto.
   O certificado é desenhado para A4: cabeçalho, rodapé, assinaturas e linhas
   da tabela não podem ser cortados entre páginas, e a tela e a impressão
   produzem exatamente o mesmo conteúdo.
   =========================================================================== */
.barcode{display:block;max-width:220px;height:auto}
.barcode-cell{margin-top:6px}
.product-preview{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-02)}
.product-preview span{display:flex;flex-direction:column}
.product-preview small{font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.07em;color:#89959f}
.product-preview strong{font-size:var(--fs-2xs)}
.deadline-late{color:#b42318;font-weight:700}
.deadline-today{color:#b54708;font-weight:700}
.deadline-soon{color:#8a6100}
.deadline-ok{color:inherit}

.certificate-paper{padding:16mm!important}
.certificate{display:flex;flex-direction:column;gap:14px;color:#1a2b28;font-size:11.5px;line-height:1.45}
.certificate-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:10px;border-bottom:2px solid #1a2b28}
.certificate-brand{display:flex;align-items:center;gap:12px}
.certificate-brand img{max-height:54px;max-width:170px;object-fit:contain}
.certificate-brand strong{display:block;font-size:14px;letter-spacing:-.01em}
.certificate-brand span{display:block;margin-top:2px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#4a5b58}
.certificate-number{text-align:right;min-width:120px}
.certificate-number small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#6b7b78}
.certificate-number strong{display:block;font-size:20px;line-height:1.1}
.certificate-revoked{padding:8px 10px;border:1px solid #f0c0ba;border-radius:6px;background:#fdf2f0;color:#8c2c1f}
.certificate-identity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.certificate-field{padding:7px 9px;border:1px solid #d9e2e0;border-radius:6px;background:#fbfdfc;break-inside:avoid}
.certificate-field small{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;color:#6b7b78}
.certificate-field strong{display:block;margin-top:2px;font-size:11.5px;word-break:break-word}
.certificate-barcode{display:flex;justify-content:flex-end}
.certificate-general{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #1a2b28;border-radius:6px;background:#f4f8f7}
.certificate-general span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.certificate-table{width:100%;border-collapse:collapse;font-size:10.5px}
.certificate-table th,.certificate-table td{border:1px solid #c9d6d3;padding:5px 7px;text-align:left;vertical-align:top}
.certificate-table thead th{background:#eef4f3;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em}
.certificate-table tbody tr{break-inside:avoid;page-break-inside:avoid}
.certificate-group th{background:#1a2b28;color:#fff;font-size:9.5px;text-transform:uppercase;letter-spacing:.09em}
.certificate-informative td{color:#4a5b58;font-style:italic}
.certificate-note{margin:0;font-size:9.5px;color:#4a5b58}
.certificate-conclusion{padding:9px 11px;border:1px solid #d9e2e0;border-radius:6px;background:#fbfdfc;break-inside:avoid}
.certificate-conclusion small{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;color:#6b7b78}
.certificate-conclusion p{margin:4px 0 0}
.certificate-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px;break-inside:avoid;page-break-inside:avoid}
.certificate-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-top:22px}
.certificate-signature{padding-top:6px;border-top:1px solid #1a2b28;text-align:center;break-inside:avoid}
.certificate-signature small{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:#6b7b78}
.certificate-signature strong{display:block;margin-top:2px;font-size:11.5px}
.certificate-signature span{display:block;font-size:10px;color:#4a5b58}
.certificate-signature-at{font-size:9px!important;color:#7d8c89!important}
.certificate-reproduction{margin:0;text-align:center;font-size:9.5px;font-style:italic;color:#4a5b58}
.certificate-legal{display:flex;justify-content:space-between;gap:18px;padding-top:8px;border-top:1px solid #d9e2e0;font-size:9px;color:#4a5b58}
.certificate-legal strong{display:block;font-size:9.5px;color:#1a2b28}
.certificate-legal span{display:block}
.certificate-form-code{text-align:right;min-width:150px}
@media(max-width:820px){.certificate-identity{grid-template-columns:repeat(2,minmax(0,1fr))}.certificate-legal{flex-direction:column}.certificate-form-code{text-align:left}}
@media(max-width:580px){.certificate-identity{grid-template-columns:1fr}.certificate-signatures{grid-template-columns:1fr;gap:16px}.certificate-paper{padding:14px!important}}

@media print{
  @page{size:A4;margin:12mm}
  body.report-body .certificate-paper{padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}
  /* Cada laudo do pacote começa em uma folha nova; o último não gera folha em branco. */
  .certificate-batch-item{break-after:page;page-break-after:always}
  .certificate-batch-item:last-child{break-after:auto;page-break-after:auto}
  .certificate-head,.certificate-foot,.certificate-signatures,.certificate-signature,.certificate-conclusion,.certificate-general{break-inside:avoid;page-break-inside:avoid}
  .certificate-table thead{display:table-header-group}
  .certificate-table tr{break-inside:avoid;page-break-inside:avoid}
  .certificate-table{break-inside:auto}
}
.stage-roles{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.stage-role-row{display:grid;grid-template-columns:minmax(160px,1fr) 1fr 1fr;gap:10px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-02)}
.stage-role-name{display:flex;flex-direction:column;gap:4px}
@media(max-width:820px){.stage-role-row{grid-template-columns:1fr}}

/* Barra de filtros com muitos controles (acompanhamento de pedidos).
   Grade que quebra linha sozinha: nenhuma coluna fica menor que 190px, então
   os campos nunca são espremidos nem escapam do container. */
.filters-card{padding:14px 16px;margin-bottom:14px}
.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 12px;align-items:end}
.filters-grid .field{margin:0;min-width:0}
.filters-grid .auto-control-wrap{width:100%;min-width:0}
.filters-grid .input,.filters-grid .select,.filters-grid .search-select{width:100%;min-width:0}
.filters-actions{display:flex;align-items:flex-end;gap:8px}
.filters-actions .btn{flex:1;white-space:nowrap}
@media(max-width:580px){.filters-grid{grid-template-columns:1fr}.filters-actions .btn{flex:1}}

/* QR do produto. O desfoque do fundo vem do .modal-backdrop padrão. */
.product-qr-body{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:6px}
.product-qr-canvas{display:flex;align-items:center;justify-content:center;min-height:200px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.product-qr-canvas img,.product-qr-canvas canvas{display:block}
.product-qr-caption{margin:0;text-align:center}
.product-qr-caption span{display:block;font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.product-qr-caption strong{display:block;margin-top:3px;font-family:monospace;font-size:var(--fs-sm);word-break:break-all}

/* Botão de fixar o menu lateral.
   Fica na barra superior, e não dentro da sidebar: ali ele só aparecia junto
   com o hover que abre o menu, surgindo e sumindo a cada passada do mouse.
   No celular o menu é uma gaveta com botão próprio, então fixar não faz sentido. */
.sidebar-pin[aria-pressed="true"]{color:var(--accent);background:var(--surface-02)}
.sidebar-pin[aria-pressed="true"] svg{fill:currentColor}
@media(max-width:900px){.sidebar-pin{display:none}}

/* Escolha única e múltipla escolha.
   As alternativas ficam visíveis de uma vez, em linha, com quebra automática.
   Peso e borda da opção marcada não podem mudar a largura, senão as opções
   pulam de lugar a cada clique — era o que deixava o grupo desalinhado. */
.choice-group{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.choice-option{display:inline-flex;align-items:center;gap:0;min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-01);color:var(--ink-soft);font-size:var(--fs-2xs);line-height:1.2;white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.choice-option:hover{border-color:var(--brand-08);background:var(--surface-02)}
.choice-option input{width:15px;height:15px;margin:0;flex:none;accent-color:var(--accent)}
.choice-option span{display:block}
.choice-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.choice-option:has(input:disabled){opacity:.55;cursor:not-allowed}
@media(max-width:480px){.choice-group{flex-direction:column;align-items:stretch}.choice-option{justify-content:flex-start}}

/* Ficha do produto: o código de barras em tamanho de conferência. */
.product-barcode-box{display:flex;justify-content:center;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}

/* Editor de opções de um campo de escolha.
   Uma opção por linha, com marcador que acompanha o tipo (bolinha para escolha
   única, quadrado para múltipla escolha, traço para lista suspensa) — assim a
   tela já mostra o que a pessoa vai ver ao responder. */
.option-editor{display:none}
.option-editor.show{display:block}
.option-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.option-row{display:grid;grid-template-columns:18px 1fr 30px;gap:8px;align-items:center}
.option-row .input{min-height:36px}
.option-bullet{width:14px;height:14px;border:2px solid var(--muted);justify-self:center}
.option-bullet.circle{border-radius:50%}
.option-bullet.square{border-radius:4px}
.option-bullet.list{height:2px;border:0;background:var(--muted);border-radius:2px}
.option-remove{width:30px;height:30px;font-size:16px;line-height:1;color:var(--muted)}
.option-remove:hover{color:var(--red)}
.option-add{justify-self:start}

/* Campo preenchido a partir de um cadastro (produto ou empresa): fica travado
   enquanto a origem estiver escolhida, porque o servidor reescreve o valor ao
   salvar — deixar editável faria a pessoa digitar algo que seria descartado. */
.bound-locked .input,.bound-locked .textarea,.bound-locked .select{background:var(--surface-02);color:var(--ink-soft);cursor:not-allowed}
.bound-locked>label::after{content:' · do cadastro';font-size:var(--fs-3xs);font-weight:600;letter-spacing:.04em;color:var(--muted);text-transform:none}

/* Largura por tipo de campo dentro da etapa.
   Antes toda pergunta ocupava metade da tela: uma escolha de duas opções ficava
   com o mesmo espaço de um texto longo, e a observação era empurrada para a
   linha de baixo. Agora cada tipo pede só o que precisa. */
.workflow-fields-grid>.field{grid-column:span 6;margin:0}
.workflow-fields-grid>.field-radio,
.workflow-fields-grid>.field-checkbox{grid-column:span 3}
.workflow-fields-grid>.field-date,
.workflow-fields-grid>.field-number{grid-column:span 3}
.workflow-fields-grid>.field-text,
.workflow-fields-grid>.field-select{grid-column:span 4}
.workflow-fields-grid>.field-textarea{grid-column:span 5}
.workflow-fields-grid>.field-file{grid-column:span 6}
.workflow-fields-grid>.field-textarea .textarea{min-height:76px}
@media(max-width:1100px){
  .workflow-fields-grid>.field{grid-column:span 6}
  .workflow-fields-grid>.field-radio,.workflow-fields-grid>.field-checkbox{grid-column:span 4}
}
@media(max-width:760px){.workflow-fields-grid>.field{grid-column:1/-1}}

/* Opção de escolha como etiqueta compacta: sem a bolinha nativa, e a escolhida
   pintada de verde forte. O <input> continua no DOM, invisível, para o campo
   seguir acessível por teclado e leitor de tela. */
.choice-option input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none;margin:0}
.choice-option{min-height:36px;min-width:82px;padding:0 18px;justify-content:center;font-weight:600;user-select:none;letter-spacing:.01em}
.choice-option:has(input:checked){background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:none}
.choice-option:has(input:checked):hover{background:var(--accent);border-color:var(--accent)}
.choice-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}

/* ---------------------------------------------------------------------------
   Apis Brasil: o dourado da marca entra como cor de apoio.
   Só em elementos gráficos — indicador do menu, numeração de etapa, marcador
   da opção escolhida. Nunca como cor de texto sobre fundo claro: #e0a81f sobre
   branco fica em torno de 2:1 de contraste, abaixo do mínimo legível.
   Tudo aqui é escopado na paleta, para não afetar os outros clientes.
   --------------------------------------------------------------------------- */
[data-palette="apisbrasil"]{--gold:#e0a81f;--gold-dark:#6f4f06;--gold-soft:#fdf3d8}

/* A marca da Apis Brasil e um logotipo horizontal (90x66) com fundo
   transparente, e nao o icone quadrado do NexaLab. Por isso:
   - a caixa segue a proporcao da arte (60x44), senao "ApisBrasil." fica ilegivel;
   - o anel branco inset sai: 7px de branco por dentro cobriam a borda do
     desenho e davam a impressao de logo cortada;
   - o brilho dourado deixa de ser box-shadow (retangulo solto atras de arte
     transparente, alem de um risco duro embaixo) e passa a drop-shadow, que
     acompanha o contorno do desenho. */
[data-palette="apisbrasil"] .brand-mark{
  width:60px;
  border-radius:0;
  background-size:contain;
  box-shadow:none;
  filter:drop-shadow(0 5px 11px rgba(224,168,31,.55))
}
[data-palette="apisbrasil"] .auth-card .brand-mark,
[data-palette="apisbrasil"] .public-card .brand-mark,
[data-palette="apisbrasil"] .report-brand .brand-mark{width:49px;height:36px;border-radius:0}
/* O amarelo da Apis Brasil tem UMA função: dizer onde você está. Item de menu
   atual, aba atual, etapa atual — e nada mais. Antes ele também aparecia como
   risco dentro de todo botão primário e como barrinha decorativa sob cada
   título: dois enfeites que não significavam nada e faziam a marca virar
   respingo amarelo espalhado pela tela. O verde continua sendo a cor de ação. */
[data-palette="apisbrasil"] .nav-active-dot{background:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 22%,transparent)}
/* Passar o mouse tambem e "voce esta aqui", so que do ponteiro: e um estado
   temporario, nao uma acao, entao cabe no dourado sem disputar com o verde.
   O item atual fica de fora (:not(.active)) para nao trocar de cor quando o
   mouse passa por cima dele — quem ja esta marcado continua marcado.
   Fundo e texto saem de color-mix com os tokens de tema (--surface-tint e
   --ink), e nao de valores fixos: no tema escuro o mesmo par vira dourado
   claro sobre fundo escuro, sem precisar de uma segunda regra. */
[data-palette="apisbrasil"] .nav-link:not(.active):hover{
  background:color-mix(in srgb,var(--gold) 15%,var(--surface-tint));
  color:color-mix(in srgb,var(--gold) 45%,var(--ink));
}
[data-palette="apisbrasil"] .nav-link:not(.active):hover .nav-icon{
  background:color-mix(in srgb,var(--gold) 28%,var(--surface-tint));
  color:color-mix(in srgb,var(--gold) 45%,var(--ink));
}
/* O item atual segue a mesma logica, so que mais forte que o hover: o dourado
   e a marca de "voce esta aqui", entao ele nao podia ficar so no pontinho da
   direita enquanto a pilula inteira continuava verde. A pastilha do icone
   segue branca (como nas outras paletas) porque e nela que o simbolo precisa
   do maior contraste. */
[data-palette="apisbrasil"] .nav-link.active{
  background:color-mix(in srgb,var(--gold) 26%,var(--surface-tint));
  color:color-mix(in srgb,var(--gold) 42%,var(--ink));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 24%,transparent);
}
/* O .nav-icon e um <span>: sem mirar tambem o <svg> dentro dele, a regra
   generica `.nav-link.active svg{color:var(--accent)}` continuava pintando o
   simbolo de verde dentro da pastilha dourada. */
[data-palette="apisbrasil"] .nav-link.active .nav-icon,
[data-palette="apisbrasil"] .nav-link.active .nav-icon svg{
  color:var(--gold-dark);
}
[data-palette="apisbrasil"] .nav-link.active .nav-icon{
  box-shadow:0 8px 18px color-mix(in srgb,var(--gold) 20%,transparent);
}
[data-palette="apisbrasil"] .section-number,
[data-palette="apisbrasil"] .workflow-current-index{background:var(--gold-soft);color:var(--gold-dark)}
/* Etapa atual da trilha do fluxo: mesma ideia de "você está aqui". */
[data-palette="apisbrasil"] .workflow-track-step.current .workflow-dot{background:var(--gold);color:var(--gold-dark);border-color:var(--gold)}
/* Texto em dourado só sobre fundo escuro, onde o contraste é suficiente. */
[data-palette="apisbrasil"] .workflow-hero .eyebrow-light{color:var(--gold)}

/* Barra de impressão múltipla dentro do card: sem espaçamento próprio o botão
   ficava encostado na borda. */
.print-batch-bar{margin:0;padding:14px 16px;gap:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.print-batch-bar .muted{flex:1;min-width:220px;font-size:var(--fs-2xs)}
/* A coluna de seleção só precisa da largura da caixa. */
.table th:has(>[data-print-all]),.table td:has(>[data-print-pick]){width:42px;text-align:center}

/* Etapas de aprovacao do rotulo: cada parecer OK / Nao OK ocupava 4 das 12
   colunas (um terco da linha) para dois botoes de poucos caracteres. O rotulo
   e os botoes ficavam encostados na esquerda de um vao enorme, com aparencia
   de texto solto, e a observacao era empurrada para a linha de baixo. Agora o
   parecer ocupa a largura dos proprios botoes e a observacao fica a direita, na
   mesma linha.

   A observacao leva 6 das 12 colunas, e nao 4: com 4 sobravam duas colunas
   vazias no fim da linha (parecer 2 + texto 4 + observacao 4 = 10), e o campo
   parava antes da borda do cartao como se estivesse desalinhado. Com 6 a linha
   fecha exata e a sobra vira largura do campo que mais precisa dela. */
.workflow-fields-grid>.field-radio{grid-column:span 2}
.workflow-fields-grid>.field-textarea{grid-column:span 6}
.choice-group{gap:6px}
.choice-option{min-width:0;padding:0 14px}

/* O construtor de perguntas mantinha cinco colunas fixas (12+160+130+100+32 =
   434px) dentro de um modal de 390px: o seletor de tipo era espremido a 32px,
   largura em que nao da para ler o texto nem acertar com o dedo. Abaixo de
   620px cada controle ocupa a linha toda e so o botao de remover fica ao lado. */
@media(max-width:620px){
  .workflow-field-row{grid-template-columns:minmax(0,1fr) 44px;row-gap:8px}
  .workflow-field-grip{display:none}
  .workflow-field-row>.wf-field-label{grid-column:1/-1}
  /* O enhancer de busca embrulha o <select> num .search-select, que passa a
     ser o filho da grade — mirar so o select deixaria o controle na coluna
     de 44px do botao de remover. */
  .workflow-field-row>.wf-field-type,
  .workflow-field-row>.search-select{grid-column:1/2;min-width:0}
  .workflow-field-row>.wf-field-remove{grid-column:2/3;justify-self:end}
  .workflow-field-row>.workflow-field-required{grid-column:1/-1}
  .workflow-field-row .wf-field-options-box,
  .workflow-field-row .workflow-field-range{grid-column:1/-1}
}

/* Alvo de toque no celular. O dedo cobre ~9mm; controle de 34px obriga a mira
   e faz errar o botao da linha de cima. 44px e o minimo do WCAG 2.5.5; abaixo
   de 40px a taxa de erro sobe muito. Vale so no toque: no mouse a densidade
   menor continua valendo. */
@media(max-width:820px) and (pointer:coarse){
  .mobile-menu{width:44px;height:44px;padding:0;place-items:center}
  .table-actions-trigger{width:44px;height:44px}
  .btn,.btn-sm,.icon-btn{min-height:44px}
  .icon-btn{min-width:44px}
  .field-inline-action{min-height:44px;padding:0 4px}
  .nav a{min-height:44px}
  .choice-option{min-height:44px}
  /* A barra de filtros da tabela reduz os controles com seletor de 3 niveis;
     no toque ela precisa ser alcancada como o resto. */
  .data-table-toolbar .table-inline-filters .btn,
  .data-table-toolbar .input,.data-table-toolbar .select{min-height:44px}
}

/* =========================================================
   Ritmo vertical do corpo da página
   =========================================================
   Cards empilhados (ficha do produto, tipos de exame + numeração
   oficial, etc.) ficavam colados um no outro: a margem existia só em
   classes pontuais (.filters-card, .label-qr-link-card), então cada
   página herdava um espaçamento diferente — ou nenhum. O espaço entre
   blocos é do fluxo da página, não de um card específico, logo mora
   aqui e vale para qualquer card solto no conteúdo.

   Só filhos diretos de .content: cards dentro de grades (.analytics-grid,
   .analytics-kpis) já são espaçados pelo gap da própria grade e não podem
   levar margem por cima disso. */
.content>.card{margin-bottom:16px}

/* Nota de rodapé do card (ex.: "N produto(s) cadastrado(s)..."). Como filha
   direta do card ela nascia sem recuo, encostando na borda arredondada e
   parecendo estar fora do card. O recuo acompanha o do .card-pad — que
   fica de fora justamente porque já tem o seu. */
.card:not(.card-pad)>.form-note{margin:0;padding:13px 22px 15px}

/* A fórmula visual reforça a regra operacional: entrada + categoria = prazo. */
.deadline-formula{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:12px;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(110deg,var(--surface),color-mix(in srgb,var(--accent) 8%,var(--surface)))}
.deadline-formula>div{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px 14px;border-radius:13px;background:var(--surface);box-shadow:0 8px 24px rgba(15,50,55,.05)}
.deadline-formula>div>span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-soft);color:var(--accent);font-weight:800}.deadline-formula small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.deadline-formula strong{font-size:14px}.deadline-formula>i{align-self:center;color:var(--accent);font-size:20px;font-style:normal;font-weight:800}.deadline-formula .result{background:var(--accent);color:#fff}.deadline-formula .result span{background:rgba(255,255,255,.18);color:#fff}.deadline-formula .result small{color:rgba(255,255,255,.72)}
@media(max-width:720px){.deadline-formula{grid-template-columns:1fr}.deadline-formula>i{text-align:center;line-height:10px}}

/* Parecer regulatório: checklist e decisão têm papéis distintos. */
.regulatory-review-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:0;background:#fff}.regulatory-review-body.without-checklist{grid-template-columns:minmax(330px,620px);justify-content:center}.regulatory-review-checklist,.regulatory-review-decision{min-width:0;padding:20px}.regulatory-review-decision{border-left:1px solid var(--line);background:color-mix(in srgb,var(--surface-01) 72%,#fff)}.regulatory-review-section-title{display:flex;align-items:center;gap:10px;margin-bottom:17px}.regulatory-review-section-title>span{display:grid;place-items:center;width:31px;height:31px;flex:none;border-radius:10px;background:var(--brand-02);color:var(--brand-07)}.regulatory-review-section-title strong,.regulatory-review-section-title small{display:block}.regulatory-review-section-title strong{font-size:var(--fs-xs);color:var(--ink-deep)}.regulatory-review-section-title small{margin-top:2px;color:var(--muted);font-size:var(--fs-3xs)}.regulatory-review-checklist .workflow-fields-grid{padding:0;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.regulatory-review-checklist .workflow-fields-grid>.field{grid-column:span 3}.regulatory-review-checklist .workflow-fields-grid>.field-radio,.regulatory-review-checklist .workflow-fields-grid>.field-checkbox{grid-column:span 2}.regulatory-review-checklist .workflow-fields-grid>.field-textarea{grid-column:span 4}.regulatory-review-decision .field{margin:0 0 14px}.regulatory-review-decision textarea{min-height:105px;resize:vertical}.regulatory-review-actions{justify-content:flex-end}.regulatory-review-actions>span{margin-right:auto;color:var(--muted);font-size:var(--fs-2xs)}.regulatory-review-actions .btn{min-width:150px;justify-content:center}

/* Validades: leitura por urgência e um vazio que orienta a configuração. */
.expiry-page-head{margin-bottom:20px}.expiry-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.expiry-stat{--expiry-color:#237a45;--expiry-soft:#e9f8ef;position:relative;display:flex;align-items:center;gap:14px;min-height:126px;padding:18px;border:1px solid color-mix(in srgb,var(--expiry-color) 18%,var(--line));border-radius:18px;background:linear-gradient(145deg,#fff 55%,var(--expiry-soft));box-shadow:0 10px 30px rgba(21,76,70,.06);overflow:hidden}.expiry-stat:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--expiry-color)}.expiry-stat.is-expired{--expiry-color:#bd4657;--expiry-soft:#fff0f2}.expiry-stat.is-today{--expiry-color:#a87317;--expiry-soft:#fff5dc}.expiry-stat.is-soon{--expiry-color:#167d77;--expiry-soft:#e5f5f3}.expiry-stat.is-valid{--expiry-color:#247b50;--expiry-soft:#eaf8f0}.expiry-stat-icon{width:43px;height:43px;display:grid;place-items:center;flex:none;border-radius:13px;background:var(--expiry-soft);color:var(--expiry-color)}.expiry-stat span,.expiry-stat strong,.expiry-stat small{display:block}.expiry-stat span{color:var(--ink-soft);font-size:var(--fs-2xs);font-weight:750}.expiry-stat strong{margin:3px 0;font-size:29px;line-height:1;color:var(--ink-deep);letter-spacing:-.04em}.expiry-stat small{color:var(--muted);font-size:var(--fs-3xs)}.expiry-empty-card{padding:0;overflow:hidden}.expiry-empty{display:grid;grid-template-columns:58px minmax(260px,.8fr) minmax(420px,1.2fr);align-items:center;gap:22px;padding:28px}.expiry-empty-mark{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:var(--brand-02);color:var(--brand-07);box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 12%,transparent)}.expiry-empty-copy>span{color:var(--brand-07);font-size:var(--fs-3xs);font-weight:800;text-transform:uppercase;letter-spacing:.09em}.expiry-empty-copy h2{margin:4px 0 7px;font-size:20px;color:var(--ink-deep)}.expiry-empty-copy p{max-width:560px;margin:0;color:var(--muted);font-size:var(--fs-2xs);line-height:1.55}.expiry-empty-steps{display:grid;gap:8px;margin:0;padding:0;list-style:none}.expiry-empty-steps li{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-01)}.expiry-empty-steps b{width:25px;height:25px;display:grid;place-items:center;flex:none;border-radius:8px;background:#fff;color:var(--brand-07);font-size:var(--fs-3xs);box-shadow:0 2px 8px rgba(20,76,70,.08)}.expiry-empty-steps strong,.expiry-empty-steps small{display:block}.expiry-empty-steps strong{font-size:var(--fs-2xs)}.expiry-empty-steps small{margin-top:1px;color:var(--muted);font-size:var(--fs-3xs)}.expiry-empty-actions{grid-column:2/-1;display:flex;align-items:center;gap:13px;padding-top:3px}.expiry-empty-actions span{color:var(--muted);font-size:var(--fs-3xs)}.expiry-group{margin-bottom:14px;overflow:hidden}.expiry-group .card-head{border-left:4px solid var(--brand-06)}.expiry-group-expired .card-head{border-left-color:#bd4657}.expiry-group-today .card-head{border-left-color:#a87317}.expiry-group-due_soon .card-head{border-left-color:#167d77}.expiry-group-valid .card-head{border-left-color:#247b50}
@media(max-width:1080px){.regulatory-review-body{grid-template-columns:1fr}.regulatory-review-decision{border-top:1px solid var(--line);border-left:0}.expiry-stats{grid-template-columns:repeat(2,1fr)}.expiry-empty{grid-template-columns:58px 1fr}.expiry-empty-steps{grid-column:1/-1}.expiry-empty-actions{grid-column:1/-1;padding-left:80px}}
@media(max-width:620px){.regulatory-review-checklist,.regulatory-review-decision{padding:15px}.regulatory-review-checklist .workflow-fields-grid>.field{grid-column:1/-1}.regulatory-review-actions{align-items:stretch}.regulatory-review-actions>span{margin:0}.regulatory-review-actions .btn{width:100%}.expiry-stats{grid-template-columns:1fr;gap:8px}.expiry-stat{min-height:100px}.expiry-empty{grid-template-columns:1fr;padding:20px}.expiry-empty-mark{width:48px;height:48px}.expiry-empty-steps,.expiry-empty-actions{grid-column:1}.expiry-empty-actions{align-items:stretch;flex-direction:column;padding-left:0}.expiry-empty-actions .btn{width:100%;justify-content:center}}

/* FQ 80: uma única submissão, apresentada nas quatro páginas do documento. */
.workflow-track-step{text-decoration:none}.review-stage{scroll-margin-top:18px}
.fq80-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:-2px 0 18px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-01)}.fq80-context span,.fq80-context strong,.fq80-context b,.fq80-context small{display:block}.fq80-context span{font-size:var(--fs-3xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.fq80-context strong{margin-top:3px;font-size:var(--fs-2xs);color:var(--ink-deep)}.fq80-context p{grid-column:1/-1;margin:2px 0 0;padding-top:10px;border-top:1px solid var(--line)}.fq80-context b{font-size:var(--fs-3xs);color:var(--ink-soft)}.fq80-context small{margin-top:3px;color:var(--muted);font-size:var(--fs-3xs)}
.regulatory-review-checklist .choice-group{justify-content:flex-start}
.regulatory-review-checklist .workflow-fields-grid.checklist-paged{display:block}.checklist-page-status{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-bottom:13px;padding:6px 8px 6px 13px;border-radius:11px;background:var(--brand-02);color:var(--brand-07);font-size:var(--fs-2xs);font-weight:800}.checklist-page-jump{display:flex;align-items:center;gap:5px}.checklist-page-number{width:31px;height:31px;padding:0;border:1px solid color-mix(in srgb,var(--brand-07) 20%,transparent);border-radius:8px;background:#fff;color:var(--brand-07);font:inherit;cursor:pointer;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s}.checklist-page-number:hover{transform:translateY(-1px);border-color:var(--brand-07)}.checklist-page-number.is-complete{background:#e7f7ee;border-color:#9fd5b5;color:#207346}.checklist-page-number.is-warning{background:#fff4cf;border-color:#e4c765;color:#795a00}.checklist-page-number.is-danger{background:#ffe8eb;border-color:#e49aa5;color:#a33143}.checklist-page-number.active{box-shadow:0 0 0 2px var(--brand-07);border-color:#fff}.checklist-page-number.active:not(.is-complete):not(.is-warning):not(.is-danger){background:var(--brand-07);color:#fff}.checklist-page-number:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.checklist-page[hidden]{display:none}.checklist-section-title{margin:20px 0 8px;padding:0 0 8px;border-bottom:1px solid var(--line);color:var(--ink-deep);font-size:var(--fs-2xs);letter-spacing:.025em}.checklist-section-title:first-child{margin-top:0}.checklist-page .field{display:block;margin:0;padding:11px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}.checklist-page .field>label:not(.choice-option){margin:0 0 8px;line-height:1.45}.checklist-page .field-textarea{display:block}.checklist-page .field-textarea>label{margin-bottom:6px!important}.checklist-page .choice-group{justify-content:flex-start;flex-wrap:wrap}.checklist-page-nav{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.checklist-page-nav .btn{min-width:112px;justify-content:center}.checklist-page-nav .btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:620px){.fq80-context{grid-template-columns:1fr}.checklist-page .field{display:block}.checklist-page .field>label:not(.choice-option){margin-bottom:8px}.checklist-page .choice-group{display:grid;grid-template-columns:repeat(3,1fr)}.checklist-page-nav{display:grid;grid-template-columns:1fr 1fr}.checklist-page-nav .btn{width:100%}}
.draft-status{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:10px 0;color:var(--text-muted,#667085);font-size:12px}.draft-status button{border:0;background:transparent;color:var(--primary,#2563eb);font:inherit;font-weight:600;cursor:pointer;padding:4px}.draft-status button:hover{text-decoration:underline}@media(max-width:640px){.draft-status{justify-content:space-between}}
