.contract-progress{padding:24px;margin:0 0 24px;border:1px solid var(--border,#ddd);border-radius:18px;background:var(--surface,#fff);color:var(--text,#151525);min-width:0}.contract-progress header,.contract-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.contract-progress h2{font-size:22px;margin:0 auto 0 0}.contract-progress h3{font-size:17px;margin:0}.contract-progress p{line-height:1.6;margin:14px 0;font-size:13px}.contract-progress button,.contract-dialog button,.contract-card-link{padding:10px 14px;border:1px solid var(--border,#ddd);border-radius:9px;background:var(--surface2,#f4f3fa);color:var(--text,#151525);font:inherit;font-size:13px;cursor:pointer}.contract-progress select,.contract-dialog input,.contract-dialog select{box-sizing:border-box;min-width:0;max-width:100%;padding:10px;border:1px solid var(--border,#ddd);border-radius:8px;background:var(--surface,#fff);color:inherit;font:inherit}.contract-progress label,.contract-dialog label{display:grid;gap:6px;font-size:13px}.contract-overview{display:flex;gap:24px;align-items:center;margin:26px 0}.contract-ring{flex:none;width:110px;height:110px;display:grid;place-items:center;font-size:26px;font-weight:800;border-radius:50%;background:radial-gradient(closest-side,var(--surface,#fff) 77%,transparent 79%),conic-gradient(#7c3aed var(--progress),#7c3aed22 0)}.contract-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.contract-stats>div{padding:18px;background:var(--surface2,#f4f3fa);border-radius:12px;display:grid;gap:6px}.contract-stats strong{font-size:27px}.contract-stats span{font-size:13px}.contract-goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.contract-goals article{padding:20px;border:1px solid var(--border,#ddd);border-top:3px solid var(--goal-color);border-radius:12px;min-width:0}.contract-goals article>div:first-child{display:flex;justify-content:space-between;gap:14px}.contract-goals progress{width:100%;height:12px;accent-color:var(--goal-color);margin-top:20px}.contract-stages{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;margin-bottom:14px}.contract-stages span{padding:6px 8px;border-radius:6px;background:var(--surface2,#f4f3fa)}.contract-goals small{color:var(--text2,#777);overflow-wrap:anywhere}.contract-progress details{margin:20px 0}.contract-progress summary{cursor:pointer}.contract-ledger{max-height:400px;overflow:auto}.contract-ledger>div{display:grid;gap:5px;padding:14px 0;border-bottom:1px solid var(--border,#ddd);overflow-wrap:anywhere}.contract-ledger span,.contract-ledger small{font-size:12px}.contract-dialog{box-sizing:border-box;inset:0;margin:auto;width:900px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:0;border:1px solid var(--border,#ddd);border-radius:16px;background:var(--surface,#fff);color:var(--text,#151525)}.contract-dialog::backdrop{background:#0009}.contract-dialog header{position:sticky;top:0;background:var(--surface,#fff);z-index:1;padding:20px;display:flex;gap:16px;align-items:center;justify-content:space-between}.contract-dialog h2{font-size:21px;margin:0}.contract-dialog form{padding:20px;display:grid;gap:16px}.contract-dialog fieldset{border:1px solid var(--border,#ddd);border-radius:12px;padding:16px;display:grid;grid-template-columns:1fr 100px;gap:12px;margin:12px 0;min-width:0}.contract-dialog fieldset input{width:100%}.contract-dialog input[type=color]{height:42px}.contract-dialog p{line-height:1.6;font-size:13px}.contract-dialog button[type=submit]{background:#6d28d9;color:white;padding:14px}.contract-card-link{margin-top:12px;width:100%;color:var(--accent,#6d28d9)}@media(max-width:600px){.contract-progress{padding:16px}.contract-stats{grid-template-columns:1fr 1fr}.contract-goals{grid-template-columns:1fr}.contract-overview{gap:14px}.contract-ring{width:85px;height:85px;font-size:22px}.contract-dialog fieldset{grid-template-columns:1fr}.contract-progress header select{width:100%}}

/* Borda iluminada acompanha a cor de cada ação. */
.contract-goals article,.contract-stats>div{position:relative;border:1px solid var(--goal-color,#7c3aed);box-shadow:0 0 8px color-mix(in srgb,var(--goal-color,#7c3aed) 28%,transparent),inset 0 0 5px color-mix(in srgb,var(--goal-color,#7c3aed) 12%,transparent);animation:contract-led-pulse 3s ease-in-out infinite alternate}
.contract-stats>div:nth-child(2){--goal-color:#059669}.contract-stats>div:nth-child(3){--goal-color:#d97706}.contract-stats>div:nth-child(4){--goal-color:#0284c7}
@keyframes contract-led-pulse{to{box-shadow:0 0 15px color-mix(in srgb,var(--goal-color,#7c3aed) 40%,transparent),inset 0 0 7px color-mix(in srgb,var(--goal-color,#7c3aed) 18%,transparent)}}
@media(prefers-reduced-motion:reduce){.contract-goals article,.contract-stats>div{animation:none}}
.contract-month-summary{padding:14px 18px;margin:16px 0;border-radius:12px;background:var(--surface2,#f4f3fa)}.contract-goals article>small{display:block;margin-top:10px}

.contract-stages button{font:inherit;font-size:12px;padding:6px 9px;border:1px solid var(--border,#ddd);border-radius:6px;background:var(--surface2,#f4f4fa);color:inherit;cursor:pointer}.contract-stages button:hover,.contract-stages button:focus-visible{outline:2px solid var(--goal-color,#7c3aed);outline-offset:2px}.contract-status-dialog{width:min(960px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}.contract-status-dialog .contract-service-body{overflow:auto;min-height:0;padding:16px}.contract-status-dialog .contract-ledger>div{overflow-wrap:anywhere}

.contract-portal-summary>summary{font-size:18px;font-weight:700;cursor:pointer;padding:14px 0}.contract-portal-summary>header{display:flex;flex-wrap:wrap;gap:12px}.contract-progress[hidden]{display:none!important}

.contract-progress [hidden]{display:none!important}.contract-progress>header{align-items:center}.contract-progress>header>label{margin:0;display:flex;align-items:center}.contract-progress>header select,.contract-progress>header button{min-height:40px}.contract-progress>header select{max-width:100%;width:auto}.contract-progress>header h2{flex:1 1 220px}

.contract-status-dialog .contract-ledger{max-height:none;overflow:visible}.contract-status-dialog .contract-service-body{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.contract-status-dialog .contract-ledger p{white-space:pre-wrap;overflow-wrap:anywhere}.contract-item-cover{max-width:100%;width:240px;max-height:260px;object-fit:contain;border-radius:10px}.contract-status-dialog header{flex-wrap:wrap}.contract-status-dialog .contract-ledger a{color:var(--accent,#7c3aed);font-weight:600}
