:root{--ink:#102c46;--blue:#1f567d;--paper:#f8f7f2;--mist:#e6efec;--line:#d9dfda;--orange:#e96f3b;--mint:#a9d2c4;--mono:'DM Mono',monospace;--sans:'Manrope',sans-serif;--serif:'Playfair Display',serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans)}.shell{min-height:100vh;display:grid;grid-template-columns:242px 1fr}.sidebar{background:var(--ink);color:#eef5f2;display:flex;flex-direction:column;padding:30px 20px;min-height:100vh}.brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-size:19px;letter-spacing:-.8px;font-weight:800}.brand span{display:grid;place-items:center;width:25px;height:25px;border:1px solid #b9d7d1;border-radius:50%;font:italic 20px var(--serif)}nav{display:grid;gap:6px;margin-top:70px}nav a{color:#b9c8cd;text-decoration:none;padding:11px 13px;border-radius:6px;font-weight:700;font-size:13px}nav a.active,nav a:hover{color:#fff;background:#26445a}.sidebar-foot{margin-top:auto;padding:14px 12px;border:1px solid #315168;background:#1b3a52;border-radius:7px;font:11px/1.5 var(--mono);color:#ccded9}.status-dot{height:7px;width:7px;background:#78c6a5;display:inline-block;border-radius:50%;margin-right:6px}main{max-width:1180px;width:100%;margin:0 auto;padding:0 6vw 64px}.eyebrow{font:500 10px var(--mono);letter-spacing:.13em;color:#718991;margin:0 0 9px}.topbar{min-height:248px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:end;padding:45px 0 38px;gap:30px}.topbar h1{font:600 clamp(42px,5vw,64px)/.95 var(--serif);letter-spacing:-.065em;margin:0}.topbar h1 em{color:var(--blue)}.topbar>p{max-width:260px;color:#63777d;font-size:13px;line-height:1.7;margin:0}.new-goal{display:grid;grid-template-columns:.7fr 1.3fr;gap:32px;align-items:center;margin:35px 0 28px;padding:25px 28px;background:var(--mist);border:1px solid #d4e2dd;border-radius:7px}.new-goal h2{font-size:20px;letter-spacing:-.9px;margin:0}.new-goal form{display:grid;grid-template-columns:1.35fr 1fr 1fr auto;gap:10px;align-items:end}.new-goal label{display:grid;gap:7px;color:#506770;font:500 10px var(--mono);letter-spacing:.06em}.new-goal label small{font:10px var(--sans);letter-spacing:0}.new-goal input{min-width:0;width:100%;height:42px;border:1px solid #cbd7d3;border-radius:5px;background:#fff;color:var(--ink);padding:0 12px;font:600 13px var(--sans);outline:none}.new-goal input:focus,.goal-editor input:focus{border-color:#397260;box-shadow:0 0 0 3px #d7e9e3}.money-input{display:flex;align-items:center;height:42px;border:1px solid #cbd7d3;border-radius:5px;background:#fff;padding-left:12px;font:600 13px var(--mono)!important;color:#42616a!important;letter-spacing:0!important}.money-input input{border:0!important;box-shadow:none!important;padding-left:7px!important}.new-goal button,.add-button{border:0;background:var(--ink);color:#fff;border-radius:5px;height:42px;padding:0 14px;white-space:nowrap;font-size:12px;font-weight:800;cursor:pointer}.new-goal button:hover,.add-button:hover{background:var(--blue)}.page-message{min-height:23px;margin:0 0 12px;color:#a43b26;font-size:12px}.page-message.success{color:#28745f}.goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.goal-card{background:#fff;border:1px solid var(--line);border-radius:7px;padding:25px}.goal-card.featured{background:var(--ink);border-color:var(--ink);color:#fff}.goal-kicker{display:flex;justify-content:space-between;gap:10px;color:#708993;font:500 10px var(--mono);letter-spacing:.1em}.featured .goal-kicker{color:#a9d2c4}.goal-card h2{font:600 26px/1.05 var(--serif);letter-spacing:-.7px;margin:18px 0 23px}.goal-values{display:flex;align-items:baseline;gap:7px;margin-bottom:13px}.goal-values strong{font-size:22px;letter-spacing:-1px}.goal-values span{font:11px var(--mono);color:#718991}.featured .goal-values span{color:#b9d7d1}.progress-track{height:7px;background:#d9e5e0;border-radius:99px;overflow:hidden}.featured .progress-track{background:#33576a}.progress{height:100%;background:#52998c;border-radius:inherit}.goal-card:nth-child(3n+2) .progress{background:#e7a74b}.goal-card:nth-child(3n) .progress{background:#8b5b95}.goal-note{margin:12px 0 22px;color:#6d8185;font-size:12px}.featured .goal-note{color:#c4d8d7}.goal-actions{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.goal-actions input{width:100%;height:40px;border:1px solid #cbd7d3;border-radius:5px;padding:0 11px;font:600 12px var(--sans);outline:none}.goal-actions button,.goal-editor button{height:40px;border-radius:5px;padding:0 11px;font-size:12px;font-weight:800;cursor:pointer}.goal-actions .add-button{background:#e3efeb;color:#164e55}.goal-actions .add-button:hover{background:#a9d2c4}.goal-actions .edit-button{border:1px solid #cbd7d3;background:#fff;color:var(--ink)}.goal-card.featured .edit-button{border-color:#557182;background:transparent;color:#fff}.goal-editor{display:none;grid-template-columns:1.3fr 1fr 1fr auto;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.featured .goal-editor{border-color:#33576a}.goal-card.editing .goal-editor{display:grid}.goal-editor label{display:grid;gap:5px;font:10px var(--mono);color:#6d8185}.featured .goal-editor label{color:#c4d8d7}.goal-editor input{height:37px;border:1px solid #cbd7d3;border-radius:5px;padding:0 9px;font:600 12px var(--sans)}.goal-editor .save-edit{border:0;background:var(--ink);color:#fff;align-self:end}.featured .goal-editor .save-edit{background:#a9d2c4;color:var(--ink)}.goal-editor .delete-goal{border:1px solid #dfb4a7;background:#fff;color:#a43b26;align-self:end}.empty{grid-column:1/-1;padding:50px 15px;border:1px dashed #c4d2ce;border-radius:7px;text-align:center;color:#61777c;font-size:14px;line-height:1.7}@media(max-width:980px){.new-goal{grid-template-columns:1fr}.new-goal form{grid-template-columns:1.3fr 1fr 1fr auto}.goals{grid-template-columns:1fr}}@media(max-width:800px){.shell{display:block}.sidebar{min-height:auto;padding:18px 20px}.sidebar nav{display:none}.sidebar-foot{display:none}main{padding:0 22px 42px}.topbar{min-height:200px;display:block;padding-top:45px}.topbar>p{margin-top:20px}.new-goal form{grid-template-columns:1fr 1fr}.new-goal form label:first-child{grid-column:1/-1}.new-goal button{grid-column:1/-1}.goal-editor{grid-template-columns:1fr 1fr}.goal-editor label:first-child{grid-column:1/-1}.goal-editor button{grid-column:span 1}}@media(max-width:430px){.new-goal{padding:20px}.new-goal form,.goal-editor{grid-template-columns:1fr}.goal-editor label:first-child,.goal-editor button{grid-column:auto}.goal-actions{grid-template-columns:1fr 1fr}.goal-actions input{grid-column:1/-1}}
.goal-card{transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.goal-card.saved{border-color:#72a99b;box-shadow:0 0 0 3px #d7e9e3}
.goal-card:not(.featured).saved{background:#f1f8f5}
.goal-card.featured.saved{border-color:#a9d2c4;box-shadow:0 0 0 3px #a9d2c455}
.goal-card.save-error{border-color:#c8786b;box-shadow:0 0 0 3px #f0d3cc}
.goal-card:not(.featured).save-error{background:#fff8f6}
.goal-card.saved .save-edit,.goal-card.saved .add-button{background:#397260;color:#fff}
.goal-card.save-error .save-edit,.goal-card.save-error .add-button{background:#a84738;color:#fff}
.goal-actions button:disabled,.goal-editor button:disabled{cursor:wait;opacity:.72}
@media(prefers-reduced-motion:reduce){.goal-card{transition:none}}
.goal-editor{grid-template-columns:repeat(2,minmax(0,1fr))}
.goal-editor label{min-width:0}
.goal-editor label:first-child{grid-column:1/-1}
.goal-editor input,.goal-editor button{width:100%;min-width:0}
@media(max-width:430px){.goal-editor{grid-template-columns:1fr}.goal-editor label:first-child{grid-column:auto}}

/* Contorno único: evita falhas de antialiasing nos campos de valor e data. */
.new-goal input{border:1px solid #b9cbc5;box-shadow:none;background-clip:padding-box}
.new-goal input:focus{border-color:#397260;box-shadow:0 0 0 3px #d7e9e3}
.new-goal .money-input{border:1px solid #b9cbc5;box-shadow:none;overflow:hidden;background-clip:padding-box}
.new-goal .money-input:focus-within{border-color:#397260;box-shadow:0 0 0 3px #d7e9e3}
.new-goal .money-input input{flex:1;min-width:0;border:0!important;border-radius:0!important;box-shadow:none!important}
