:root{--ink:#172b3c;--muted:#67788a;--border:#dce3ea;--bg:#f6f8fa;--primary:#176c5b;--primary-dark:#0e4a40;--panel:#fff;--warning:#fff8df}
*{box-sizing:border-box}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;line-height:1.55}.container{width:min(1140px,calc(100% - 40px));margin:auto}.topbar{background:#fff;border-bottom:1px solid var(--border)}.nav{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:74px}.brand{font-size:1.15rem;font-weight:800;color:var(--ink);text-decoration:none;white-space:nowrap}.brand-mark{color:var(--primary);font-size:24px}.nav-links{display:flex;align-items:center;gap:18px;font-size:.9rem}.nav-links a{color:#365065;text-decoration:none}.nav-links form{margin:0}.userchip{background:#f0f4f5;border-radius:30px;padding:5px 11px}.text-button{border:0;background:transparent;color:#176c5b;cursor:pointer;font:inherit}.main{min-height:calc(100vh - 150px);padding:40px 0 70px}.footer{border-top:1px solid var(--border);color:var(--muted);font-size:.8rem;padding:20px 0 30px}.page-heading{margin-bottom:24px}.page-heading h1{font-size:clamp(1.75rem,3.4vw,2.6rem);margin:3px 0 6px;line-height:1.22;overflow-wrap:anywhere}.page-heading p{margin:0}.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.15em;color:var(--primary)}h2{font-size:1.08rem;line-height:1.4;margin:0 0 12px}.muted{color:var(--muted)}.small-text{font-size:.86rem}.tiny{font-size:.76rem}.break{overflow-wrap:anywhere}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.split{display:flex;justify-content:space-between;align-items:center;gap:20px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;padding:11px 16px;border-radius:9px;font-weight:700;font:inherit;font-size:.9rem;cursor:pointer;text-decoration:none;transition:background .15s}.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary-dark)}.secondary{color:#334f62;background:#fff;border-color:var(--border)}.secondary:hover{background:#f0f5f6}.danger{background:#fce9e9;color:#991b1b;border-color:#f6caca}.small{padding:6px 11px;font-size:.77rem}.full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.panel{border:1px solid var(--border);background:var(--panel);border-radius:14px;box-shadow:0 3px 16px rgba(23,43,60,.035)}.form-panel{padding:24px}.table-panel{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#6d7d8b;background:#f9fafb}td,th{padding:15px 18px;border-bottom:1px solid #edf1f4}tr:last-child td{border-bottom:0}.link,.back{color:var(--primary);font-weight:700;text-decoration:none}.back{display:inline-block;margin-bottom:18px;font-size:.86rem}.empty{text-align:center;padding:70px 16px}.empty h2{margin:0}.pill{font-size:.76rem;font-weight:750;padding:5px 9px;border-radius:7px;white-space:nowrap;background:#eaf0f6;color:#526981}.pill.pending{color:#89620a;background:#fff2c7}.pill.signed{color:#166a45;background:#dff7e9}.pill.rejected{color:#a62b2b;background:#fde7e5}.pill.large{font-size:.82rem}.notice{background:var(--warning);border:1px solid #f1dda4;border-radius:11px;padding:13px 16px;margin:0 0 24px;font-size:.86rem}.notice.compact{margin-top:18px;margin-bottom:0}.flash{padding:12px 17px;border-radius:9px;border:1px solid #bfe3ce;background:#e9f7ef;color:#125837;margin-bottom:15px}.flash.error{border-color:#f1b4b4;background:#fff0f0;color:#b12323}.flash-stack{margin-bottom:22px}.field{margin:0 0 19px}.field label{display:block;font-weight:700;font-size:.86rem;margin-bottom:7px}.field input[type=text],.field input[type=password],.field input[type=file],.field select,.field textarea,.auth-panel input{display:block;width:100%;padding:11px 13px;border:1px solid #cfdbe1;border-radius:8px;font:inherit;background:white;color:var(--ink)}.field input[type=file]{font-size:.85rem}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #74b4a7;outline-offset:1px}.field .errorlist{color:#b02a2a;margin-top:5px;padding-left:18px}.field.check-row{display:flex;align-items:flex-start;gap:9px}.check-row input{margin-top:5px}.check-row label{margin:0;font-weight:500}.hint{font-size:.79rem;color:var(--muted);margin-top:9px}.form-panel>form{margin-top:12px}.auth-wrap{display:flex;justify-content:center;margin-top:40px}.auth-panel{width:min(430px,100%);padding:33px}.auth-panel h1{margin:0 0 3px}.auth-panel p{margin-top:5px}.auth-panel form{margin-top:20px}.review-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:22px;align-items:start}.preview-panel{padding:18px}.page-tools{align-items:flex-start;padding-bottom:13px}.page-tools h2{margin-bottom:2px}.page-tools p{margin:0}.pager{display:flex;gap:8px;flex-wrap:wrap}.pdf-frame{background:#e7ebee;padding:16px;overflow:auto;border-radius:8px;border:1px solid #d5dbe1}.pdf-stage{position:relative;display:block;max-width:100%;width:fit-content;margin:0 auto;box-shadow:0 7px 24px rgba(20,32,43,.15);background:white}.pdf-stage[data-selectable=true]{cursor:crosshair}.pdf-page{display:block;max-width:100%;height:auto;user-select:none;-webkit-user-drag:none}.signature-overlay{position:absolute;transform:translate(-50%,-50%);height:auto;pointer-events:none;filter:drop-shadow(0 0 3px rgba(8,110,76,.2))}.signature-overlay[hidden]{display:none}.downloads{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.side-panel{display:flex;flex-direction:column;gap:16px}.details{display:grid;grid-template-columns:1fr;gap:0}.details dt{font-size:.73rem;color:#778797;text-transform:uppercase;margin-top:11px}.details dd{margin:3px 0 8px;font-size:.87rem}.details dt:first-child{margin-top:0}.timeline-event{border-left:2px solid #b8d9ce;padding:1px 0 16px 13px}.timeline-event:last-child{padding-bottom:3px}.timeline-event b{font-size:.85rem}.position-help{margin:10px 0 16px;background:#eff8f5;border-radius:7px;padding:11px;font-size:.84rem;color:var(--primary-dark)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.signature-swatch{padding:22px;background:#f4f6f7;border:1px dashed #cbd8dc;min-height:130px;display:flex;align-items:center;justify-content:center}.signature-swatch img{max-width:100%;max-height:150px}
@media(max-width:850px){.review-layout,.two-col{grid-template-columns:1fr}.nav{flex-wrap:wrap;padding:14px 0}.nav-links{width:100%;justify-content:flex-start;gap:12px;flex-wrap:wrap}.main{padding-top:25px}.split{align-items:flex-start;flex-wrap:wrap}}@media(max-width:550px){.container{width:min(100% - 26px,1140px)}.form-panel{padding:19px}.preview-panel{padding:12px}.pdf-frame{padding:7px}.page-heading h1{font-size:1.7rem}.userchip{display:none}td,th{padding:11px}}

/* Login */
.login-page{background:radial-gradient(ellipse at 90% 15%,#e1eee8 0,transparent 45%),#f4f7f5}
.login-page .topbar{background:rgba(255,255,255,.85)}
.login-page .main{display:flex;align-items:center;justify-content:center;min-height:calc(100svh - 155px);padding:48px 0}
.login-page .auth-wrap{display:grid;grid-template-columns:1.15fr 1fr;width:min(960px,100%);margin:0;align-items:stretch;border:1px solid #d6e3dc;border-radius:24px;overflow:hidden;background:white;box-shadow:0 24px 70px #183f2f12}
.auth-intro{position:relative;padding:52px 44px;background:linear-gradient(145deg,#123d35,#1e6151);color:#fff}
.auth-intro .eyebrow{color:#b3dac7;font-size:.65rem}
.auth-intro h2{font-size:clamp(2rem,3.5vw,2.8rem);letter-spacing:-.045em;line-height:1.14;margin:24px 0 18px;font-weight:750}
.auth-intro>p{color:#d0e3db;font-size:.95rem;max-width:350px;line-height:1.8}
.auth-steps{list-style:none;margin:34px 0;padding:0;display:grid;gap:23px}
.auth-steps li{display:flex;align-items:flex-start;gap:15px}
.auth-steps li>span{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border:1px solid #ffffff30;border-radius:10px;color:#c2e5d4;font-size:.72rem}
.auth-steps strong{font-size:.88rem;font-weight:650}
.auth-steps p{font-size:.8rem;color:#c4dcd1;margin:4px 0 0;line-height:1.6}
.auth-intro-note{border-top:1px solid #ffffff26;padding-top:22px;font-size:.73rem;color:#bdd9cd}
.login-page .auth-panel{width:100%;border:0;border-radius:0;box-shadow:none;padding:48px 40px;align-self:center}
.auth-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#edf5f0;color:#176c5b;font-size:28px;margin-bottom:26px}
.login-page .auth-panel h1{font-size:1.9rem;letter-spacing:-.035em;margin:8px 0}
.login-page .auth-panel>.muted{font-size:.88rem;line-height:1.7;margin:0 0 26px}
.login-page .auth-panel form{margin-top:28px}
.login-page .auth-panel .field{margin-bottom:22px}
.login-page .auth-panel .field input{min-height:48px;background:#fbfcfb;border-color:#d7e1db;border-radius:10px;transition:border-color .15s,box-shadow .15s}
.login-page .auth-panel .field input:focus{border-color:#176c5b;outline:2px solid #176c5b40;outline-offset:2px}
.login-page .auth-panel .btn{min-height:48px;gap:16px;border-radius:10px;font-weight:700;box-shadow:0 4px 12px #176c5b20}
.login-page .auth-panel .btn:focus-visible{outline:3px solid #69a995;outline-offset:3px}
.login-page .auth-account-note{font-size:.78rem;text-align:center;color:#5b6f63;margin:24px 0}
.login-page .auth-security-note{border-top:1px solid #e4ebe6;padding-top:18px;line-height:1.7;font-size:.75rem;margin-bottom:0}
.login-page .footer{font-size:.73rem;text-align:center;line-height:1.7}
@media(max-width:700px){.login-page .auth-wrap{grid-template-columns:1fr;max-width:460px;border-radius:18px}.auth-intro{padding:28px}.auth-intro h2{font-size:2rem;margin:16px 0 12px}.auth-intro>p{margin-bottom:0;font-size:.85rem}.auth-steps,.auth-intro-note{display:none}.login-page .auth-panel{padding:30px 28px}.auth-icon{display:none}.login-page .main{padding:28px 0}.login-page .brand{font-size:1rem}}
