.portal-hero{background:linear-gradient(135deg,#fff,#f2ecdf);border-top:5px solid #68755d}.portal-timeline{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.portal-timeline li{display:flex;gap:.65rem;align-items:center;color:#777}.portal-timeline li span{display:grid;place-items:center;width:1.8rem;height:1.8rem;border:1px solid #aaa;border-radius:999px}.portal-timeline li.done{color:#31493a;font-weight:600}.portal-timeline li.done span{background:#31493a;color:#fff;border-color:#31493a}.portal-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid #e7e0d2}.reservation-card.admin-form{display:grid;gap:1rem}.reservation-card.admin-form fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;border:1px solid #ddd4c3;border-radius:12px;padding:1rem}.reservation-card.admin-form label{display:grid;gap:.35rem}.reservation-card.admin-form input,.reservation-card.admin-form textarea,.reservation-card.admin-form select{width:100%;box-sizing:border-box;border:1px solid #cfc7b8;border-radius:8px;padding:.75rem;background:#fff}.reservation-card.admin-form label:has(input[type=checkbox]){display:flex;grid-template-columns:auto 1fr;align-items:start}.reservation-card.admin-form input[type=checkbox]{width:auto;margin-top:.2rem}.form-actions{display:flex;gap:.75rem;flex-wrap:wrap}.inline{display:inline-block}.quote-preview{margin:1rem 0;padding:1rem;border:1px solid #ddd4c3;border-radius:12px;background:#faf7f0}.quote-result{display:grid;gap:.25rem;margin-top:.75rem}.quote-result strong{font-size:1.5rem;color:#31493a}.quote-result small{color:#6d746c}

.contract-workflow{border-top:5px solid #68755d}.contract-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.contract-heading h2{margin-top:0}.contract-status{display:inline-flex;padding:.45rem .7rem;border-radius:999px;background:#e4eadf;color:#31493a;font-size:.75rem;font-weight:700}.contract-steps{list-style:none;display:grid;gap:0;margin:1.5rem 0;padding:0}.contract-steps li{display:grid;grid-template-columns:2.25rem 1fr;gap:.85rem;padding:0 0 1.35rem;position:relative;color:#777}.contract-steps li:not(:last-child):before{content:"";position:absolute;left:1.05rem;top:2.1rem;bottom:.15rem;width:2px;background:#d9d5ca}.contract-steps li>span{position:relative;z-index:1;width:2.15rem;height:2.15rem;border-radius:50%;display:grid;place-items:center;background:#eeeae1;border:1px solid #d0c9ba;font-weight:700}.contract-steps li.done>span{background:#31493a;color:#fff;border-color:#31493a}.contract-steps li.current>span{background:#d7c59e;color:#3d3a2f;border-color:#c5ad79}.contract-steps strong{display:block;color:#383a32}.contract-steps p{margin:.3rem 0 .7rem;line-height:1.55}.contract-upload-form{display:grid;gap:1rem;padding:1.15rem;border:1px solid #d8d1c3;border-radius:12px;background:#faf8f3}.contract-upload-form>label:first-child{display:grid;gap:.45rem;font-weight:600}.contract-upload-form input[type=file]{width:100%;box-sizing:border-box;border:1px dashed #a9a18f;border-radius:9px;padding:.85rem;background:#fff}.contract-confirm{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;font-size:.9rem}.contract-confirm input{margin-top:.2rem}.contract-upload-form small,.contract-received small,.contract-complete small{display:block;color:#6d746c;line-height:1.5}.contract-received,.contract-complete{display:grid;gap:.65rem;border-radius:12px;padding:1.1rem;background:#eef4eb;border-left:4px solid #68755d;margin:1rem 0}.contract-received p,.contract-complete p{margin:0}.contract-replace{margin-top:1rem}.contract-replace summary{cursor:pointer;font-weight:600;color:#4b4a39;margin-bottom:.75rem}@media(max-width:620px){.contract-heading{display:grid}.contract-status{justify-self:start}.contract-upload-form{padding:.9rem}}
