:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17202a;background:#f5f7fa}*{box-sizing:border-box}body{margin:0}.topbar{background:#0f2d3a;color:white;padding:14px 24px;display:flex;align-items:center;gap:28px}.brand{font-weight:800;font-size:20px}.topbar a{color:#dfeef4;text-decoration:none;margin-right:16px}.topbar a:hover{color:white}.wrap{max-width:1180px;margin:28px auto;padding:0 20px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{background:white;border:1px solid #dfe5ea;border-radius:14px;padding:20px;box-shadow:0 2px 10px rgba(0,0,0,.035)}.stat{font-size:34px;font-weight:800}.muted{color:#667785}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}h1{margin:0 0 22px}h2{margin-top:0;font-size:19px}label{display:block;font-size:13px;font-weight:700;margin:12px 0 5px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cbd5dc;border-radius:8px;background:white;font:inherit}textarea{min-height:86px}button,.btn{display:inline-block;background:#0f6b78;color:white;border:0;border-radius:9px;padding:10px 15px;font-weight:700;text-decoration:none;cursor:pointer}.btn.secondary{background:#e9f0f3;color:#173c48}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.table{width:100%;border-collapse:collapse;background:white}.table th,.table td{text-align:left;padding:11px;border-bottom:1px solid #e6ebef;vertical-align:top}.table th{font-size:12px;text-transform:uppercase;color:#60717d}.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:#eaf4f5;color:#175967;font-size:12px;font-weight:700}.checkgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.check{border:1px solid #dce4e8;border-radius:10px;padding:11px;background:white}.check input{width:auto;margin-right:8px}.flash{background:#fff6d9;border:1px solid #f0d36b;padding:12px;border-radius:9px}.actions{display:flex;gap:10px;align-items:center;margin-top:18px}.small{font-size:12px}@media(max-width:800px){.grid,.two,.checkgrid,.row{grid-template-columns:1fr}.topbar{display:block}.topbar nav{margin-top:8px}.topbar a{display:inline-block;margin:4px 12px 4px 0}}

.btn.danger{background:#b42318;color:white}
.notice{margin-top:14px;padding:11px 12px;border-radius:9px;background:#eef7f9;color:#285764;font-size:13px}
.body-editor{min-height:220px}
.body-cell{max-width:580px;line-height:1.45}
.actions-cell{white-space:nowrap}
.actions-cell form{display:inline-block;margin-left:6px}
code{background:#eef1f3;padding:2px 5px;border-radius:5px}


.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.page-head h1{margin-bottom:4px}
.actions-cell{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.actions-cell form{margin:0}
.button{display:inline-block;text-decoration:none;padding:9px 12px;border-radius:8px;font-weight:600}
.button.secondary,button.secondary{background:#eef2f7;color:#223;border:1px solid #d6dbe3}
button.danger{background:#b42318}
dialog.modal{width:min(860px,92vw);max-height:90vh;overflow:auto;border:0;border-radius:14px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog.modal::backdrop{background:rgba(0,0,0,.45)}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}

/* Progresso da geração */
body.generation-lock{overflow:hidden}
.generation-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(9,25,34,.62);backdrop-filter:blur(7px);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.generation-overlay.is-visible{opacity:1;visibility:visible}
.generation-panel{width:min(560px,94vw);background:#fff;border:1px solid rgba(255,255,255,.55);border-radius:22px;padding:34px;box-shadow:0 28px 80px rgba(8,28,38,.28);text-align:left;transform:translateY(10px) scale(.985);transition:transform .2s ease}
.generation-overlay.is-visible .generation-panel{transform:translateY(0) scale(1)}
.generation-icon{width:54px;height:54px;border-radius:16px;background:#eaf5f6;display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:#0f6b78;font-size:27px;font-weight:900}
.generation-spinner{width:25px;height:25px;border:3px solid #bdd8dc;border-top-color:#0f6b78;border-radius:50%;animation:generation-spin .8s linear infinite}
.generation-icon.is-success{background:#e9f8ef;color:#18794e}
.generation-icon.is-error{background:#fff0ef;color:#b42318}
.generation-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;color:#738590;margin-bottom:6px}
.generation-panel h2{font-size:24px;margin:0 0 7px;color:#142932}
.generation-message{margin:0;color:#60727e;line-height:1.45;min-height:22px}
.generation-metrics{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:26px 0 10px}
.generation-metric-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#83939c;font-weight:800;margin-bottom:2px}
.generation-metrics strong{font-size:22px;color:#173c48}
.generation-percent{font-size:30px;font-weight:850;letter-spacing:-.035em;color:#0f6b78}
.progress-track{height:13px;background:#e8eef1;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(12,35,45,.08)}
.progress-bar{height:100%;min-width:0;background:linear-gradient(90deg,#0f6b78,#1b8f9f);border-radius:999px;transition:width .35s ease;position:relative;overflow:hidden}
.progress-bar::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.34) 46%,transparent 60%);transform:translateX(-100%);animation:generation-shine 1.55s infinite}
.generation-detail{margin-top:14px;color:#7a8b94;font-size:12px;line-height:1.45}
.generation-error-actions{margin-top:22px;display:flex;justify-content:flex-end}
@keyframes generation-spin{to{transform:rotate(360deg)}}
@keyframes generation-shine{100%{transform:translateX(130%)}}
@media(max-width:600px){.generation-panel{padding:26px 22px;border-radius:18px}.generation-percent{font-size:26px}}

/* Assinatura digital */
.signature-generate-box{margin-top:10px;padding:12px;border:1px solid #cfe1e5;border-radius:10px;background:#f5fbfc}
.signature-generate-box input{width:auto;margin-right:8px}
.signature-ready{margin-top:7px;color:#18794e;font-weight:700}
.signature-badge{display:inline-block;padding:5px 10px;border-radius:999px;background:#e9f8ef;color:#18794e;font-size:12px;font-weight:800}
.signature-card{max-width:850px}
.signature-enable{margin-top:16px}
.signature-enable input{width:auto;margin-right:8px}
.signature-file-current{margin-top:6px}
.signature-alert{padding:12px 14px;border-radius:10px;margin-bottom:16px;font-weight:700}
.signature-alert.success,.signature-test-result.success{background:#e9f8ef;color:#18794e;border:1px solid #b9e3ca}
.signature-test-result{margin-top:16px;padding:12px 14px;border-radius:10px;background:#f3f6f8;color:#536773}
.signature-test-result.error{background:#fff0ef;color:#b42318;border:1px solid #f2c0bc}
.signature-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.signature-info-grid>div{border:1px solid #e1e8ec;border-radius:10px;padding:12px;background:#fbfcfd}
.signature-info-grid span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#7a8b94;font-weight:800;margin-bottom:4px}
.signature-info-grid strong{display:block;overflow-wrap:anywhere}
.signature-serial{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
@media(max-width:700px){.signature-info-grid{grid-template-columns:1fr}}
