:root{--bg-primary:#f5f5f5;--bg-secondary:#ece7e4;--bg-card:#fff;--color-medium:#d2beb8;--color-accent:#222943;--color-accent-light:#2e3654;--color-accent-dark:#1a1f35;--color-gold:#cba052;--color-gold-dim:#cba05226;--text-primary:#1a1a2e;--text-secondary:#556;--text-muted:#8a8a9a;--on-dark-primary:#fff;--on-dark-secondary:#fff9;--on-dark-muted:#ffffff59;--on-dark-border:#ffffff1f;--on-dark-input-bg:#ffffff12;--on-dark-input-bg-hover:#ffffff1a;--border-light:#d2beb84d;--border-medium:#d2beb880;--border-color:var(--border-light);--shadow-sm:0 1px 3px #2229430a;--shadow-md:0 4px 16px #2229430f;--shadow-lg:0 8px 32px #22294314;--shadow-xl:0 16px 48px #2229431f;--white:#fff;--font-sans:"Montserrat", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-serif:"Cormorant", Georgia, serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--ease-out:cubic-bezier(.22, .8, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-medium);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}#root{min-height:100vh}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-serif);color:var(--text-primary);font-weight:500;line-height:1.2}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);font-size:.64rem;font-weight:600}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.app-shell{background:var(--bg-primary);min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.page{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:32px 28px 64px}.page-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.page-title{letter-spacing:-.01em;font-size:1.75rem}.page-subtitle{color:var(--text-muted);margin-top:4px;font-size:.84rem}.topbar{z-index:40;background:var(--bg-card);border-bottom:1px solid var(--border-light);align-items:center;gap:20px;height:72px;padding:0 28px;display:flex;position:sticky;top:0}.topbar-logo{width:auto;height:30px}.topbar-spacer{flex:1}.topbar-nav{align-items:center;gap:4px;display:flex}.topbar-link{border-radius:var(--radius-full);color:var(--text-secondary);transition:all .3s var(--ease-out);align-items:center;gap:7px;padding:8px 14px;font-size:.8rem;font-weight:500;display:inline-flex}.topbar-link:hover{color:var(--color-accent);background:var(--bg-secondary)}.topbar-link.is-active{color:var(--color-accent);background:#2229430f}.topbar-user{color:var(--text-muted);font-size:.78rem}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out);padding:22px;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg, var(--color-accent), var(--color-medium));opacity:0;height:2px;transition:opacity .3s var(--ease-out);position:absolute;inset:0 0 auto}.card-interactive:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-interactive:hover:before{opacity:1}.card-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:500}.card-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;display:grid}.badge{border-radius:var(--radius-full);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);background:#2229430f;align-items:center;gap:6px;padding:4px 12px;font-size:.62rem;font-weight:600;display:inline-flex}.badge-gold{background:var(--color-gold-dim);color:var(--color-gold)}.badge-draft{color:var(--text-muted);background:#8a8a9a1f}.badge-sent{color:var(--color-accent);background:#22294314}.badge-partially_signed{background:var(--color-gold-dim);color:var(--color-gold)}.badge-completed{color:#2e7d5a;background:#2e7d5a1f}.badge-declined{color:#be4646;background:#be46461f}.badge-cancelled{color:var(--text-muted);background:#8a8a9a1f}.badge-expired{color:#b8763f;background:#be78461f}.btn{border-radius:var(--radius-md);transition:all .3s var(--ease-out);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:11px 20px;font-size:.82rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--on-dark-primary)}.btn-primary:not(:disabled):hover{background:var(--color-accent-light);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:not(:disabled):hover{border-color:var(--color-accent);background:var(--bg-secondary)}.btn-gold{background:var(--color-gold);color:var(--on-dark-primary)}.btn-ghost{color:var(--text-secondary);padding:8px 12px}.btn-ghost:hover{color:var(--color-accent)}.btn-block{width:100%}.field{flex-direction:column;gap:7px;display:flex}.field-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:.68rem;font-weight:600}.input{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;transition:border-color .3s var(--ease-out), box-shadow .3s var(--ease-out);padding:12px 14px;font-size:.86rem}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #22294314}.form-error{border-radius:var(--radius-md);color:#be4646;background:#be464614;border:1px solid #be464633;padding:11px 14px;font-size:.8rem}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;padding:72px 24px;display:flex}.empty-state svg{opacity:.4}.empty-state p{max-width:320px;font-size:.86rem}.centered-screen{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.centered-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:40px 34px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.stat-card{color:var(--text-secondary);flex-direction:column;gap:6px;display:flex}.stat-card svg{color:var(--color-gold)}.stat-value{font-family:var(--font-serif);color:var(--text-primary);font-size:2.2rem;font-weight:600;line-height:1}.stat-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.search-box{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);transition:border-color .3s var(--ease-out);align-items:center;gap:10px;margin-bottom:20px;padding:0 14px;display:flex}.search-box:focus-within{border-color:var(--color-accent)}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-input{background:0 0;border:none;flex:1;padding:12px 0;font-size:.86rem}.search-input:focus{outline:none}.search-input::placeholder{color:var(--text-muted)}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.filtros{gap:6px;display:flex}.filtro-chip{border:1px solid var(--border-medium);border-radius:var(--radius-full);background:var(--bg-card);color:var(--text-secondary);transition:all .3s var(--ease-out);padding:9px 16px;font-size:.76rem;font-weight:500}.filtro-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.filtro-chip.is-on{background:var(--color-accent);border-color:var(--color-accent);color:var(--on-dark-primary)}.doc-list{flex-direction:column;gap:8px;display:flex}.doc-row{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all .3s var(--ease-out);align-items:center;gap:14px;padding:15px 18px;display:flex}.doc-row:hover{border-color:var(--color-medium);box-shadow:var(--shadow-md);transform:translateY(-2px)}.doc-icon{border-radius:var(--radius-md);background:var(--color-gold-dim);width:40px;height:40px;color:var(--color-gold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.doc-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:500;overflow:hidden}.doc-meta{color:var(--text-muted);font-size:.72rem}.acoes{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.detalhe-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.signer-list,.hash-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.signer-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.signer-row:last-child{border-bottom:none}.hash-list li{align-items:flex-start;gap:10px;display:flex}.hash-list svg{color:var(--text-muted);flex-shrink:0;margin-top:3px}.hash-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px;font-size:.66rem;font-weight:600;display:block}.hash-value{color:var(--text-secondary);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;line-height:1.5;display:block}.timeline{margin-top:16px;padding-left:6px}.timeline-item{border-left:1px solid var(--border-medium);gap:14px;padding:0 0 18px 18px;display:flex;position:relative}.timeline-item:last-child{border-left-color:#0000;padding-bottom:0}.timeline-dot{border-radius:var(--radius-full);background:var(--color-gold);width:8px;height:8px;position:absolute;top:5px;left:-4.5px}.timeline-event{color:var(--text-primary);font-size:.84rem;font-weight:500;display:block}.timeline-meta{color:var(--text-muted);font-size:.72rem}.page-wide{max-width:1500px}.prepare-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:22px;display:grid}.prepare-canvas{background:var(--bg-secondary);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:22px;max-height:calc(100vh - 220px);padding:22px;display:flex;overflow-y:auto}.prepare-side{flex-direction:column;gap:14px;max-height:calc(100vh - 120px);display:flex;position:sticky;top:92px;overflow-y:auto}.pdf-pagina-wrap{flex-direction:column;gap:7px;display:flex}.pdf-pagina-num{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-size:.64rem;font-weight:600}.pdf-pagina{box-shadow:var(--shadow-lg);border-radius:var(--radius-sm);line-height:0;position:relative;overflow:hidden}.pdf-pagina.is-adding{cursor:crosshair}.pdf-pagina canvas{max-width:100%;height:auto;display:block}.campo{border:1.5px dashed var(--campo-cor);background:color-mix(in srgb, var(--campo-cor) 12%, transparent);border-radius:var(--radius-sm);cursor:grab;touch-action:none;transition:background .2s var(--ease-out);justify-content:center;align-items:center;display:flex;position:absolute}.campo:hover{background:color-mix(in srgb, var(--campo-cor) 20%, transparent)}.campo:active{cursor:grabbing}.campo.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, var(--campo-cor) 25%, transparent);border-style:solid}.campo-label{letter-spacing:.04em;color:var(--campo-cor);text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;padding:0 4px;font-size:.62rem;font-weight:600;line-height:1.2;overflow:hidden}.campo-remover{border-radius:var(--radius-full);background:var(--campo-cor);color:#fff;opacity:0;width:19px;height:19px;transition:opacity .2s var(--ease-out);justify-content:center;align-items:center;display:flex;position:absolute;top:-9px;right:-9px}.campo:hover .campo-remover,.campo.is-selected .campo-remover{opacity:1}.campo-resize{background:var(--campo-cor);border:2px solid var(--bg-card);cursor:nwse-resize;touch-action:none;opacity:0;width:12px;height:12px;transition:opacity .2s var(--ease-out);border-radius:3px;position:absolute;bottom:-5px;right:-5px}.campo:hover .campo-resize,.campo.is-selected .campo-resize{opacity:1}.paleta{grid-template-columns:1fr 1fr;gap:7px;margin-top:14px;display:grid}.paleta-item{border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all .25s var(--ease-out);align-items:center;gap:7px;padding:9px 11px;font-size:.74rem;font-weight:500;display:flex}.paleta-item:hover{border-color:var(--color-accent);color:var(--color-accent)}.paleta-item.is-on{background:var(--color-accent);border-color:var(--color-accent);color:var(--on-dark-primary)}.signatario-tabs{gap:6px;margin-top:14px;display:flex}.signatario-tab{border:1px solid var(--border-medium);border-radius:var(--radius-full);color:var(--text-muted);transition:all .25s var(--ease-out);flex:1;padding:7px 10px;font-size:.72rem;font-weight:500}.signatario-tab.is-on{background:var(--tab-cor);border-color:var(--tab-cor);color:#fff}.dica{border-radius:var(--radius-sm);background:var(--color-gold-dim);color:var(--color-gold);margin-top:11px;padding:9px 12px;font-size:.74rem;font-weight:500}.campo-opcoes{border-top:1px solid var(--border-light);flex-direction:column;gap:6px;margin-top:14px;padding-top:14px;display:flex}.contador-campos{color:var(--text-muted);margin-top:14px;font-size:.72rem}.checkbox-linha{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:.78rem;display:flex}.checkbox-linha input{accent-color:var(--color-accent);cursor:pointer}.paciente-escolhido{background:var(--bg-secondary);border-radius:var(--radius-md);align-items:center;gap:12px;padding:12px;display:flex}.resultado-lista{flex-direction:column;gap:4px;max-height:260px;margin-top:10px;display:flex;overflow-y:auto}.resultado-item{border-radius:var(--radius-sm);text-align:left;width:100%;transition:background .25s var(--ease-out);align-items:center;gap:11px;padding:9px 11px;display:flex}.resultado-item:hover{background:var(--bg-secondary)}@media (width<=1100px){.prepare-layout{grid-template-columns:1fr}.prepare-side{max-height:none;position:static}.prepare-canvas{max-height:none}}.titulo-input{width:100%;font-family:var(--font-serif);color:var(--text-primary);letter-spacing:-.01em;background:0 0;border:none;padding:4px 0;font-size:1.75rem;font-weight:500}.titulo-input:focus{outline:none}.titulo-input::placeholder{color:var(--text-muted)}.editor-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:22px;display:grid}.editor-folha{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-md);width:100%;max-width:820px;margin:0 auto;padding:64px 72px}.editor-folha .ProseMirror{font-family:var(--font-sans);color:var(--text-primary);font-size:.92rem;line-height:1.75}.editor-side{flex-direction:column;gap:14px;display:flex;position:sticky;top:92px}.variavel-lista{flex-direction:column;gap:6px;display:flex}.variavel-item{border:1px solid var(--border-light);border-radius:var(--radius-sm);text-align:left;transition:all .25s var(--ease-out);flex-direction:column;align-items:flex-start;gap:2px;padding:9px 12px;display:flex}.variavel-item:hover{border-color:var(--color-accent);background:var(--bg-secondary)}.variavel-item code{color:var(--color-gold);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.variavel-item span{color:var(--text-muted);font-size:.72rem}@media (width<=1100px){.editor-layout{grid-template-columns:1fr}.editor-side{position:static}.editor-folha{padding:34px 26px}}.access-list{flex-direction:column;gap:8px;display:flex}.access-row{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.access-user{align-items:center;gap:12px;min-width:0;display:flex}.access-user-text{flex-direction:column;gap:2px;min-width:0;display:flex}.avatar{border-radius:var(--radius-full);object-fit:cover;border:1px solid var(--border-light);flex-shrink:0}.avatar-fallback{background:var(--bg-secondary);color:var(--color-accent);letter-spacing:.02em;justify-content:center;align-items:center;font-weight:600;display:flex}.access-name{color:var(--text-primary);font-size:.88rem;font-weight:500}.access-meta{color:var(--text-muted);text-transform:capitalize;font-size:.72rem}.access-toggles{flex-shrink:0;gap:8px;display:flex}.access-chip{border:1px solid var(--border-medium);border-radius:var(--radius-full);min-width:104px;color:var(--text-muted);transition:all .3s var(--ease-out);justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:.74rem;font-weight:500;display:inline-flex}.access-chip:not(:disabled):hover{border-color:var(--color-accent);color:var(--color-accent)}.access-chip.is-on{background:var(--color-accent);border-color:var(--color-accent);color:var(--on-dark-primary)}.access-chip.is-locked{background:var(--color-gold-dim);color:var(--color-gold);cursor:default;border-color:#0000}.access-chip:disabled:not(.is-locked){opacity:.6;cursor:not-allowed}@media (width<=640px){.access-row{flex-direction:column;align-items:stretch}.access-toggles{flex-wrap:wrap}.access-chip{flex:1}}.login-brand{flex-direction:column;align-items:center;gap:10px;margin-bottom:26px;display:flex}.login-brand img{width:auto;height:38px}.login-title{text-align:center;font-size:1.9rem}.login-sub{text-align:center;color:var(--text-muted);margin:6px 0 26px;font-size:.82rem}.login-form{flex-direction:column;gap:16px;display:flex}.sign-card{text-align:center;max-width:460px}.sign-logo{width:auto;height:34px;margin-bottom:12px}.sign-title{margin:12px 0 8px;font-size:1.5rem}.sign-text{color:var(--text-secondary);font-size:.86rem}.sign-note{border-radius:var(--radius-full);background:var(--color-gold-dim);color:var(--color-gold);align-items:center;gap:8px;margin-top:26px;padding:9px 16px;font-size:.72rem;font-weight:500;display:inline-flex}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:cardFadeIn .45s var(--ease-out) both}@media (width<=768px){.page{padding:22px 16px 48px}.page-header{flex-direction:column;align-items:flex-start}.page-title{font-size:1.4rem}.topbar{height:64px;padding:0 16px}.card-grid{grid-template-columns:1fr}.centered-card{padding:30px 22px}}
