:root{--ink:#13213b;--muted:#7a8494;--blue:#3047c9;--blue-dark:#243aab;--line:#e5e9f0;--pale:#f7f8fb;--white:#fff;--green:#14845c;--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--pale);line-height:1.45}button,input{font:inherit}button{cursor:pointer}input{outline:none}input:focus{border-color:#8d9af7!important;box-shadow:0 0 0 3px #3047c917}button:focus-visible{outline:3px solid #aab6ff;outline-offset:2px}.hidden{display:none!important}.muted{color:var(--muted);font-size:14px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:#8d96a6;margin:0 0 9px}.eyebrow.blue{color:var(--blue)}h1,h2,h3,p{margin-top:0}h1{font-weight:760;letter-spacing:-.055em}h2{letter-spacing:-.035em}.monogram{display:grid;place-items:center;flex-shrink:0;background:var(--blue);color:white;width:41px;height:41px;border-radius:12px;font-size:17px;font-weight:850;letter-spacing:-.09em}.btn{border:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:12px 18px;font-weight:680;font-size:13px;min-height:45px;white-space:nowrap}.btn.primary{background:var(--blue);color:white;box-shadow:0 6px 14px #3047c91e}.btn.primary:hover{background:var(--blue-dark)}.btn.ghost{background:#f1f3fa;color:#425272}.btn.outline{background:white;border:1px solid var(--line);color:#52607a}.btn.small{padding:8px 12px;min-height:34px;font-size:12px}.btn:disabled{opacity:.6;cursor:wait}.wide{width:100%;justify-content:space-between}.link-button{background:transparent;border:0;color:#9fa9c0;padding:9px 0;text-align:left}.shell{min-height:100vh;display:flex}.sidebar{width:241px;flex-shrink:0;background:#121e38;color:#fff;display:flex;flex-direction:column;padding:30px 18px 25px}.brand{display:flex;gap:12px;align-items:center;padding:0 13px 42px}.brand strong{font-size:17px;line-height:1.03;display:block;font-weight:720;letter-spacing:-.03em}.brand small{font-size:8px;letter-spacing:.13em;color:#8794b2;font-weight:720}.side-nav{display:flex;flex-direction:column;gap:7px}.side-nav a{display:flex;gap:14px;align-items:center;padding:12px 15px;font-size:13px;color:#a6b2cb;text-decoration:none;border-radius:9px}.side-nav a.active{background:#26385e;color:#fff}.side-nav a:hover{background:#243454;color:white}.aside-foot{margin-top:auto;padding:20px 13px 0;border-top:1px solid #2f3e59}.admin-dot{font-size:11px;color:#6fcc9f}.admin-dot span{color:#c1c9d7;margin-left:6px}.main{flex:1;min-width:0}.topbar{height:74px;background:white;border-bottom:1px solid var(--line);padding:0 45px;display:flex;align-items:center;justify-content:space-between}.topbar-crumb{font-size:13px;color:#8490a2}.topbar-crumb span{padding:0 8px;color:#c5cad4}.topbar-right{font-size:12px;color:#718096;display:flex;align-items:center;gap:9px}.status-dot{height:7px;width:7px;background:#31bf82;border-radius:50%}.avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#e8ebff;color:var(--blue);font-weight:750;margin-left:18px}.content{max-width:1200px;margin:auto;padding:51px 45px}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.heading-row h1{font-size:35px;margin:0 0 9px}.heading-row .muted{margin-bottom:0}.title-dot{color:var(--blue)}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.stat{border:1px solid var(--line);background:#fff;padding:24px 24px 22px;border-radius:13px;min-height:141px}.stat-top{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:#6e7a8e;font-weight:580}.stat-top span{font-size:17px;color:#a1aaca}.stat-value{font-size:38px;font-weight:770;letter-spacing:-.07em;line-height:1.3;margin-top:10px}.stat small{font-size:11px;color:#abb2bf}.contract-section{margin-top:45px}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.section-head h2{font-size:21px;margin:0 0 4px}.section-head p{margin:0}.filter-row{display:flex;gap:10px}.filter-row input{height:41px;width:244px;border:1px solid var(--line);border-radius:10px;padding:0 13px;background:white;font-size:12px}.filter-row .btn{min-height:41px}.contract-list{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:200px}.contract-item{padding:18px 22px;display:flex;align-items:center;gap:18px;border-bottom:1px solid #edf0f5}.contract-item:last-child{border-bottom:0}.doc-tile{width:46px;height:54px;border-radius:10px;background:#eff1fe;color:var(--blue);font-size:21px;display:grid;place-items:center;flex-shrink:0}.doc-info{flex:1;min-width:0}.doc-info strong{display:block;font-size:14px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-info small{font-size:11px;color:#99a3b2}.doc-info small span{padding:0 5px}.status-badge{margin-top:7px;border-radius:25px;font-size:10px;padding:3px 8px;display:inline-flex;gap:5px;font-weight:720}.status-mini{font-size:9px}.status-badge.pending{background:#fff5df;color:#aa7a1a}.status-badge.signed{background:#e3f7ee;color:#208a60}.status-badge.revoked{background:#f7e8e8;color:#ac5454}.doc-actions{display:flex;align-items:center;gap:7px}.more-btn{font-size:23px;background:transparent;border:0;color:#9aa3b5;padding:4px 9px}.page-foot{margin-top:40px;color:#b2bac5;font-size:11px}.page-foot span{padding:0 5px}.empty-state{text-align:center;padding:52px 20px}.empty-icon{width:70px;height:70px;margin:0 auto 16px;border-radius:16px;background:#edf0ff;display:grid;place-items:center;color:#5364d4;font-size:32px}.empty-state h3{font-size:17px;margin:0 0 8px}.empty-state p{color:#939eae;font-size:13px;margin-bottom:22px}.notice{padding:12px 17px;background:#fff0d6;border:1px solid #eccb7d;border-radius:10px;margin-bottom:22px;color:#805818;font-size:13px}
/* Admin login */.login-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;background:radial-gradient(circle at 20% 15%,#e9edff,transparent 38%),#f7f8fb}.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:30px;font-weight:740;font-size:19px;letter-spacing:-.04em}.login-card{background:white;border:1px solid #e8eaf0;width:min(440px,100%);box-shadow:0 15px 55px #162a5012;padding:39px;border-radius:20px}.icon-bubble{height:45px;width:45px;border-radius:12px;background:#eff0ff;color:var(--blue);display:grid;place-items:center;font-size:24px;margin-bottom:24px}.login-card h1{font-size:27px;margin:0 0 8px}.login-card .muted{margin-bottom:30px}.login-card form{display:grid;gap:18px}label{font-weight:650;color:#40516b;font-size:12px;display:block}label input:not([type=checkbox]):not([type=file]){display:block;width:100%;height:46px;border:1px solid #dae0ea;background:white;border-radius:9px;padding:0 13px;margin-top:8px;color:var(--ink);font-size:14px}.error{font-size:12px;color:#c7434a;min-height:15px;margin:0}.login-note{font-size:11px;color:#adb6c4;margin-top:25px}
/* Dialogs */.overlay{position:fixed;inset:0;z-index:20;background:#111d38a8;display:flex;justify-content:center;align-items:center;padding:15px;overflow:auto}.modal{background:#fff;border-radius:20px;width:min(570px,100%);max-height:min(94vh,850px);overflow:auto;box-shadow:0 20px 80px #101b3852}.modal-head{display:flex;justify-content:space-between;padding:30px 34px 20px}.modal-head h2{font-size:25px;margin:0 0 7px}.modal-head .muted{margin:0}.close-btn{border:0;background:#f3f5f8;width:33px;height:33px;border-radius:9px;font-size:23px;color:#69758e;line-height:0;display:grid;place-items:center}.modal-body{display:grid;gap:19px;padding:0 34px 22px}.required{color:#ec5965}.upload-box{border:1.5px dashed #b7c2e2;border-radius:14px;background:#f8f9ff;padding:22px 12px;text-align:center}.upload-icon{color:var(--blue);background:#e8ecff;border-radius:12px;width:46px;height:46px;margin:0 auto 12px;display:grid;place-items:center;font-size:24px}.upload-box strong{font-size:13px}.upload-box p{margin:5px 0 13px;color:#8f9aae;font-size:11px}.upload-box input{display:block;width:min(255px,100%);margin:0 auto;font-size:11px;color:#6f7b95}.file-name{display:block;margin:9px 0 0;font-size:11px;color:var(--blue);font-weight:640;word-break:break-all}.check-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-weight:400}.check-row input{width:17px;height:17px;accent-color:var(--blue);flex-shrink:0;margin:2px 0 0}.check-row span{display:flex;flex-direction:column}.check-row b{font-size:12px}.check-row small{margin-top:2px;color:#8894aa;font-size:11px}.small-warning{font-size:11px;color:#9a8490;margin:0}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding:20px 34px}.result-modal{padding:36px 33px 30px;text-align:center;position:relative}.result-close{position:absolute;top:18px;right:18px}.big-success{width:65px;height:65px;background:#e0f8eb;border-radius:50%;font-size:32px;color:#14885f;display:grid;place-items:center;margin:4px auto 18px}.result-modal h2{margin:0 0 8px}.result-modal .muted{margin-bottom:29px}.result-modal label{text-align:left}.copy-line{display:flex;align-items:center;gap:7px}.copy-line input{flex:1;min-width:0}.code-area{padding:17px;background:#fff8e9;border:1px solid #ffe0a1;border-radius:12px;margin:20px 0;text-align:center}.code-area p{font-size:12px;margin:0 0 5px}.code-area strong{font-size:26px;letter-spacing:.13em}.code-area small{display:block;color:#94764a;font-size:11px}.result-modal>.btn{margin-top:20px}
/* Signer */.sign-body{background:#f5f6fa;min-height:100vh}.sign-header{height:75px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 max(calc((100vw - 840px)/2),26px)}.sign-brand{display:flex;align-items:center;gap:10px}.sign-brand strong{font-size:14px;display:block;line-height:1.1;letter-spacing:-.02em}.sign-brand small{display:block;font-size:11px;color:#98a3b3;margin-top:2px}.secure-label{font-size:11px;color:#63708b}.sign-container{width:min(800px,calc(100% - 32px));margin:35px auto 70px}.sign-heading{text-align:center;margin:0 0 25px}.pill-secure{color:var(--green);background:#e8f8f0;padding:7px 12px;border-radius:20px;font-size:11px;font-weight:750;display:inline-flex;gap:6px;margin-bottom:17px}.sign-heading h1{font-size:30px;margin:0 0 6px}.sign-heading .muted{margin:0}.progress{display:flex;gap:8px;margin:0 auto 23px;justify-content:center;max-width:350px}.progress span{height:4px;flex:1;background:#dde2ed;border-radius:10px}.progress span.on{background:var(--blue)}.sign-card{background:white;border:1px solid #e3e7f0;border-radius:16px;margin-bottom:16px;padding:25px 29px;box-shadow:0 8px 24px #11223a08}.card-kicker{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.15em;margin-bottom:8px}.sign-card h2{font-size:18px;margin:0 0 14px}.client-info{display:grid;grid-template-columns:1fr 1fr;gap:14px}.info-item{background:#f8f9fb;padding:11px 12px;border-radius:10px;min-width:0}.info-item small{display:block;font-size:10px;color:#8d9aac;margin-bottom:4px}.info-item b{font-size:13px;overflow-wrap:anywhere}.contract-paper{background:#fff;border:1px solid #ebedf3;border-radius:10px;padding:25px 28px;color:#202b3e;font-family:Georgia,'Times New Roman',serif;font-size:13px;line-height:1.72;max-height:460px;overflow:auto;overscroll-behavior:contain;box-shadow:inset 0 0 0 7px #fbfbfd}.contract-paper h1{font-size:18px;text-align:center;line-height:1.3;margin-bottom:22px;letter-spacing:0}.contract-paper h2{font-size:15px;margin-top:20px;margin-bottom:7px;letter-spacing:0}.contract-paper li{margin-left:14px;padding-left:3px}.contract-paper p{margin:8px 0}.contract-paper table{border-collapse:collapse;width:100%}.contract-paper td,.contract-paper th{border:1px solid #ddd;padding:5px}.sign-instruction{font-size:12px;color:#808da3;margin:-4px 0 17px}.signature-area{border:1.5px dashed #aab5d2;background:#fff;position:relative;border-radius:10px;overflow:hidden;height:166px}.signature-area canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.signature-placeholder{position:absolute;pointer-events:none;top:42%;left:0;right:0;text-align:center;font-size:13px;color:#c7ced9}.signature-line{position:absolute;bottom:30px;left:12%;right:12%;height:1px;background:#e0e5ef;pointer-events:none}.signature-controls{display:flex;justify-content:space-between;align-items:center;margin:12px 0 19px}.signature-controls button{border:0;background:transparent;color:var(--blue);font-weight:680;font-size:12px}.signature-controls small{color:#a2aab6;font-size:11px}.sign-form{display:grid;gap:15px}.sign-form .two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sign-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#56657d;line-height:1.5;font-weight:480}.sign-check input{width:18px;height:18px;flex-shrink:0;margin:2px 0 0;accent-color:var(--blue)}.submit-sign{width:100%;font-size:15px;min-height:54px;margin-top:6px}.sign-error{font-size:12px;color:#bd3434;min-height:14px;font-weight:600;margin:0}.trust-note{font-size:11px;color:#969faf;text-align:center;margin:12px auto 0;max-width:600px}.success-card{text-align:center;padding:50px 22px}.success-icon{font-size:40px;width:86px;height:86px;margin:0 auto 24px;color:#138b5b;background:#def7e9;display:grid;place-items:center;border-radius:50%}.success-card h1{font-size:27px;margin:0 0 10px}.success-card p{color:#71809a}.protocol-box{background:#f4f6f9;padding:18px;margin:24px auto;border-radius:11px;max-width:420px;overflow-wrap:anywhere}.protocol-box small{display:block;color:#99a3b0;font-size:11px}.protocol-box b{font-size:17px;letter-spacing:.06em}.loading{text-align:center;padding:65px;color:#8190a7}.document-sheet{max-width:840px;margin:30px auto;padding:50px;background:white;border:1px solid #e0e4eb;font:14px/1.6 Georgia,serif}.document-sheet h1{text-align:center;font-size:21px}.document-sheet h2{font-size:16px;margin-top:20px}.document-sheet .proof{font:13px/1.5 system-ui,sans-serif;margin-top:30px;padding-top:22px;border-top:2px solid #999}.signed-image{height:100px;max-width:300px;object-fit:contain}.wrap-hash{overflow-wrap:anywhere}.float-print{position:fixed;bottom:25px;right:25px;border:0;border-radius:12px;background:var(--blue);padding:15px 25px;color:white;font-size:13px;font-weight:700;box-shadow:0 6px 23px #152b5729}.toast{position:fixed;right:22px;bottom:22px;background:#172645;color:white;border-radius:11px;padding:14px 18px;max-width:min(410px,calc(100vw - 40px));z-index:50;font-size:13px;box-shadow:0 10px 25px #0003}
@media(max-width:1050px){.sidebar{width:205px}.content{padding:40px 30px}.topbar{padding:0 30px}.doc-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:780px){.sidebar{width:70px;padding:21px 11px}.brand{padding:0 0 30px;justify-content:center}.brand>div,.side-nav span,.aside-foot,.side-nav a span{display:none}.side-nav a{justify-content:center;font-size:19px;padding:13px}.content{padding:31px 22px}.topbar{padding:0 22px;height:64px}.heading-row h1{font-size:29px}.stat{padding:19px 15px}.stat-value{font-size:30px}.stat-top{font-size:11px}.section-head{align-items:flex-start;flex-direction:column}.filter-row{width:100%}.filter-row input{flex:1;width:100%}.contract-item{gap:12px;padding:17px}.doc-actions{max-width:120px}}
@media(max-width:560px){.sidebar{display:none}.topbar{height:54px;padding:0 17px}.topbar-right{font-size:0}.avatar{font-size:12px;margin-left:2px}.content{padding:27px 15px}.heading-row{align-items:flex-start;flex-direction:column;gap:19px;margin-bottom:24px}.heading-row h1{font-size:29px}.heading-row>.btn{width:100%}.stat-grid{gap:8px}.stat{padding:14px 10px;min-height:113px;border-radius:10px}.stat-top{font-size:10px}.stat-top span{display:none}.stat-value{font-size:28px}.stat small{font-size:9px}.contract-section{margin-top:30px}.contract-item{flex-wrap:wrap;padding:15px}.doc-tile{width:37px;height:44px}.doc-info{flex:1;min-width:calc(100% - 65px)}.doc-actions{max-width:none;margin-left:49px;width:calc(100% - 49px);justify-content:flex-start}.modal-head,.modal-body,.modal-footer{padding-left:20px;padding-right:20px}.modal-head h2{font-size:23px}.login-card{padding:29px 22px}.sign-header{height:65px;padding:0 16px}.sign-brand .monogram{width:35px;height:35px}.secure-label{font-size:0}.sign-container{width:calc(100% - 22px);margin:23px auto 45px}.sign-heading h1{font-size:25px}.sign-card{border-radius:13px;padding:21px 16px}.client-info{gap:8px}.info-item{padding:10px 8px}.info-item b{font-size:11px}.contract-paper{padding:19px 15px;font-size:12px;max-height:390px;box-shadow:none}.sign-form .two-cols{grid-template-columns:1fr}.signature-area{height:155px}.submit-sign{position:sticky;bottom:9px;z-index:4}.document-sheet{padding:24px;margin:0;border:0}.float-print{bottom:10px;right:10px}}
@media print{body{background:white}.sign-header,.float-print,.toast{display:none!important}.document-sheet{border:0;max-width:100%;margin:0;padding:0}.document-sheet .proof{break-inside:avoid}}

/* Criador integrado, sem novo deploy por contrato */
.heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.generator-page{display:block;min-width:0;}
.generator-section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px;}
.generator-section-head h1{margin:4px 0 8px;}
#generatorFrame{border:1px solid #e5e8f0;box-shadow:0 18px 50px #1b27300a;border-radius:16px;display:block;width:100%;height:max(960px,calc(100vh - 220px));background:#fff;}
@media(max-width:800px){.generator-section-head{flex-wrap:wrap}#generatorFrame{height:1200px}.heading-actions{width:100%}}
