:root{--ink:#16231b;--green:#153d29;--lime:#b9e45b;--soft:#eff4ef;--line:#dce5de;--muted:#69766d}*{box-sizing:border-box}body{margin:0;background:#f6f8f6;color:var(--ink);font:16px/1.55 Inter,system-ui,-apple-system,sans-serif}.portal-shell{max-width:1120px;margin:auto;padding:28px 20px 70px}.portal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 0 32px}.portal-header strong{font-size:25px;letter-spacing:.18em;color:var(--green)}.portal-header span{color:var(--muted)}.hero-card,.quote-head,.project-head,.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 10px 35px rgba(20,50,32,.055)}.hero-card{max-width:720px;margin:70px auto}.hero-card h1,.quote-head h1,.project-head h1{font-size:clamp(32px,5vw,58px);line-height:1.06;margin:12px 0}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.13em;color:#4c745b}.quote-head,.project-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.quote-meta{text-align:right}.quote-meta span,.quote-meta strong{display:block}.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin:20px 0}.card h2{margin-top:0}.quote-item,.totals>div{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}.quote-item small,.legal,.files small{display:block;color:var(--muted)}.totals{margin-top:8px}.totals .grand{font-size:22px;border:0}.button{display:inline-block;border:0;border-radius:12px;padding:13px 18px;background:var(--green);color:#fff;text-decoration:none;font-weight:750;cursor:pointer}.button.secondary{background:var(--soft);color:var(--green)}.legal{margin-top:12px}.approved-badge{display:block;padding:13px;border-radius:12px;background:#e5f7e9;color:#176030;font-weight:700}.message{padding:15px 18px;border-radius:14px;margin:18px 0}.message.success{background:#e5f7e9;color:#155a2b}.message.error{background:#fff0ed;color:#8a2718}.terms p{white-space:normal}.progress-ring{width:120px;height:120px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(closest-side,#fff 78%,transparent 80%),conic-gradient(var(--lime) calc(var(--value)*1%),#e6ebe7 0)}.progress-ring strong{font-size:24px}.progress-ring span{font-size:11px;color:var(--muted)}.stages{display:grid;gap:4px}.stage{display:flex;gap:14px;align-items:center;padding:12px}.stage i{width:14px;height:14px;border:2px solid #aebbb1;border-radius:50%}.stage.in_progress i{background:var(--lime);border-color:var(--green);box-shadow:0 0 0 5px #ebf5d8}.stage.completed i{background:var(--green);border-color:var(--green)}.stage span,.stage small{display:block}.stage small{color:var(--muted)}.dates div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.dates dd{font-weight:700}.timeline article{border-left:3px solid var(--lime);padding:0 0 12px 16px;margin-bottom:15px}.timeline h3{margin:4px 0}.portal-form{display:grid;gap:13px}.portal-form label{display:grid;gap:7px;font-weight:650}.portal-form input,.portal-form textarea{width:100%;border:1px solid #cbd7ce;border-radius:10px;padding:12px;font:inherit}.request{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.request span{font-size:12px;background:var(--soft);padding:5px 8px;border-radius:99px}.files{list-style:none;padding:0}.files li{padding:12px 0;border-bottom:1px solid var(--line)}.files a{color:var(--green);font-weight:700}.muted{color:var(--muted)}@media(max-width:760px){.content-grid{grid-template-columns:1fr}.quote-head,.project-head{align-items:flex-start}.progress-ring{width:95px;height:95px}.portal-header span{display:none}.card,.quote-head,.project-head{padding:20px}}
