@font-face{font-family:Roboto;src:url('/assets/Roboto-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Roboto;src:url('/assets/Roboto-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{font-family:Roboto,system-ui,sans-serif;color:#182539;background:#f3f6fa;font-size:16px;line-height:1.55;--navy:#071323;--blue:#185ac5;--line:#dbe2ec;--muted:#58677b;--radius:16px}*{box-sizing:border-box}body{margin:0}a{color:var(--blue);text-underline-offset:3px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #75aaff;outline-offset:3px}input,select,textarea{width:100%;min-height:48px;border:1px solid #aebbd0;border-radius:9px;padding:11px 13px;background:#fff;color:#182539}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--blue)}h1,h2,p{margin-top:0}h1{font-size:clamp(1.65rem,3vw,2.2rem);line-height:1.18;margin-bottom:10px;letter-spacing:-.025em}h2{font-size:1.15rem;line-height:1.35;margin-bottom:14px}p{color:var(--muted)}small,.help{font-size:.875rem;color:var(--muted)}.topbar{height:86px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:20px}.brand{display:flex;align-items:center;gap:22px;color:#fff;text-decoration:none}.brand img{display:block;width:142px;height:auto;max-height:54px;object-fit:contain}.brand span{border-left:1px solid #344054;padding-left:22px;font-size:.95rem}.account{display:flex;gap:18px;align-items:center;font-size:.875rem}.account span{max-width:240px;overflow:hidden;text-overflow:ellipsis}.text-button{border:1px solid #41516b;background:transparent;border-radius:8px;color:#fff;padding:8px 14px}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - 145px)}.sidebar{padding:34px 20px;border-right:1px solid var(--line);background:#eaf0f7}.nav-caption{font-size:.75rem;font-weight:700;letter-spacing:.11em;color:#64748b;margin:0 12px 10px}.sidebar nav a{display:block;padding:12px;border-radius:9px;text-decoration:none;color:#233852;font-weight:700;font-size:.9rem;margin-bottom:4px}.sidebar nav a:hover{background:#dce7f6;color:#12499f}.sidebar .nav-caption{margin-top:28px}.sidebar-note{border-top:1px solid #c9d4e3;padding:20px 12px;margin-top:34px;font-size:.875rem;color:#58677b}main{padding:36px 42px;min-width:0;width:100%;max-width:1260px}.guest{display:block}.guest main{margin:auto;max-width:520px;padding-top:65px}.card{padding:26px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 12px #13244404;margin-bottom:20px}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#255da3;margin-bottom:10px}.page-heading{margin-bottom:26px}.page-heading p{max-width:740px;margin-bottom:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:9px;padding:11px 18px;min-height:46px;font-weight:700;text-decoration:none;font-size:.9375rem;line-height:1.35}.primary{background:var(--blue);color:#fff}.primary:hover{background:#104ca9}.secondary{background:#fff;border-color:#b8c7da;color:#24446f}.secondary:hover{background:#eff5fd}.danger{background:#fff4f4;color:#9e2f34;border-color:#eab9bc}.stack{display:grid;gap:20px}.stack>.card{margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}.field{display:grid;gap:7px;font-size:.9375rem;font-weight:700;min-width:0}.field small{font-weight:400}.full{grid-column:1/-1}.required{color:#a12c37}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}.filter{display:flex;align-items:flex-end;gap:12px}.filter .field{min-width:230px}.company-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.company-grid .card{margin:0}.company-grid p{overflow-wrap:anywhere}.empty{text-align:center;padding:50px 24px}.empty-mark{display:grid;place-items:center;background:#edf4ff;color:var(--blue);font-size:2rem;width:66px;height:66px;border-radius:16px;margin:0 auto 24px}.empty p{max-width:510px;margin:0 auto 24px}.application-card{display:flex;align-items:center;gap:20px;text-decoration:none;color:inherit;padding:23px;transition:border-color .15s,box-shadow .15s}.application-card:hover{border-color:#83a6d7;box-shadow:0 5px 16px #1539650d}.object-icon{background:#edf4ff;color:var(--blue);width:52px;height:52px;border-radius:12px;display:grid;place-items:center;font-size:1.5rem;flex-shrink:0}.application-info{flex:1;min-width:0}.application-info h2{margin-bottom:4px;overflow-wrap:anywhere}.application-info p{margin:0 0 5px;font-size:.9375rem;overflow-wrap:anywhere}.application-info p span{padding:0 5px}.application-status{display:grid;justify-items:end;gap:12px}.open-label{color:var(--blue);font-size:.875rem;font-weight:700}.list-meta{font-size:.875rem;color:var(--muted);margin-bottom:12px}.badge{display:inline-block;padding:6px 11px;border-radius:7px;background:#eef1f5;color:#475569;font-size:.875rem;font-weight:700;line-height:1.45}.badge-submitted{background:#e6efff;color:#174c9b}.badge-changes_requested{background:#fff0d0;color:#815713}.badge-approved_for_contract{background:#e0f3e9;color:#19603d}.badge-rejected{background:#fbe7e9;color:#992e3b}.status-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:26px}.status-row>span:last-child{font-size:.875rem;color:var(--muted)}.progress{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);padding:0;margin:0 0 30px;gap:10px}.progress li{display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:3px solid #cbd5e1;color:#667386}.progress .done{border-color:var(--blue);color:var(--blue);font-weight:700}.notice{padding:16px 20px;border:1px solid;border-radius:10px;margin-bottom:24px;overflow-wrap:anywhere}.notice p{color:inherit;margin:5px 0 0}.success{background:#eaf7f0;border-color:#abd5bd;color:#215d3c}.error{background:#fff0f1;border-color:#efb6bc;color:#8b2935}.warning{background:#fff6e4;border-color:#e8cb8c;color:#77531a}.info{background:#edf4ff;border-color:#bfcee5;color:#254e84}.details{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}.details>div{border-bottom:1px solid #edf0f5;padding-bottom:12px;min-width:0}.details dt{color:var(--muted);font-size:.875rem}.details dd{margin:4px 0 0;overflow-wrap:anywhere}.detail-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:20px}.detail-grid .details{grid-template-columns:1fr}.company-summary summary{cursor:pointer;display:grid;gap:5px}.company-summary summary span{font-size:.875rem;color:var(--muted)}.company-summary[open] summary{margin-bottom:24px}.company-summary .button{margin-top:18px}.check{display:flex;align-items:flex-start;gap:12px}.check input{width:20px;height:20px;min-height:20px;flex-shrink:0;margin-top:3px;accent-color:var(--blue)}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:0 0 22px 25px;border-left:2px solid #d9e4f4;position:relative}.timeline li:before{content:'';width:10px;height:10px;background:var(--blue);border-radius:50%;position:absolute;left:-6px;top:6px}.timeline li:last-child{padding-bottom:0}.timeline time{display:block;font-size:.875rem;color:var(--muted);margin:4px 0}.timeline p{margin:8px 0 0;white-space:normal;overflow-wrap:anywhere}.back-link{display:inline-block;margin-bottom:20px;font-size:.875rem;text-decoration:none}.pagination{display:flex;gap:12px}.login{padding:32px}.login .help{margin:24px 0 0}.dirty-status{font-size:.875rem;color:#835419}.preview-banner{background:#e1edff;color:#234f84;text-align:center;padding:9px 16px;font-size:.875rem}.preview-banner a{margin-left:18px;font-weight:700}footer{padding:18px 32px;border-top:1px solid var(--line);text-align:right;font-size:.75rem;color:var(--muted)}.skip{position:absolute;top:-80px;left:10px;background:#fff;padding:12px;z-index:100}.skip:focus{top:5px}
@media(max-width:1100px){main{padding:30px 24px}.shell{grid-template-columns:205px minmax(0,1fr)}.detail-grid{grid-template-columns:1fr}.detail-grid .details{grid-template-columns:1fr 1fr}.toolbar{align-items:stretch;flex-direction:column}.toolbar>.button{align-self:flex-start}}
@media(max-width:760px){.topbar{height:auto;min-height:76px;padding:16px 20px;flex-wrap:wrap}.brand{gap:14px}.brand img{width:115px}.brand span{font-size:.875rem;padding-left:14px}.account{width:100%;justify-content:space-between}.shell{display:block}.sidebar{padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}.sidebar>.nav-caption,.sidebar-note,.sidebar nav .nav-caption{display:none}.sidebar nav{display:flex;gap:4px;flex-wrap:wrap}.sidebar nav a{font-size:.875rem;padding:8px 10px;margin:0}main{padding:26px 16px}.form-grid,.company-grid,.details,.detail-grid .details{grid-template-columns:1fr}.card{padding:21px}.application-card{flex-wrap:wrap;gap:14px}.application-info{flex-basis:calc(100% - 70px)}.application-status{display:flex;justify-content:space-between;align-items:center;width:100%;border-top:1px solid var(--line);padding-top:14px}.filter{flex-wrap:wrap}.filter .field{min-width:0;flex:1;flex-basis:200px}.progress{gap:3px}.progress li{font-size:.875rem;padding:10px 5px;gap:6px}.actions .button{flex-grow:1}.guest main{padding-top:32px}.preview-banner a{display:inline-block;margin:4px 10px}.status-row{gap:10px}.company-summary summary span{overflow-wrap:anywhere}.topbar .brand span{max-width:155px}.form-grid .full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.terms-card{scroll-margin-top:24px}.terms-price{font-size:1.65rem;font-weight:700;color:var(--navy)}.terms-price small{display:block;font-size:.85rem;font-weight:400;color:var(--muted);margin-top:6px}.terms-note{white-space:normal;overflow-wrap:anywhere}.terms-note h3{font-size:1rem;margin-bottom:8px}.terms-editor{border-top:1px solid var(--line);padding-top:22px;margin-top:24px}.fee-field{max-width:400px}.terms-publish-link{padding-top:12px}.terms-history{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.terms-history summary{cursor:pointer;font-weight:600}.terms-history article{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}
.contract-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:16px}.contract-row p{font-size:.875rem;color:var(--muted);margin:4px 0}.contract-paper{background:#fff;border:1px solid var(--line);padding:clamp(20px,5vw,64px);font-family:Georgia,'Times New Roman',serif;line-height:1.65;color:#151515}.contract-paper p{margin:0 0 .8rem;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4}.contract-paper .contract-heading{text-align:center;font-weight:700;margin:1.5rem 0 1rem}.contract-paper p:empty{min-height:.5rem}.contract-paper p:first-child{margin-top:0}@media(max-width:600px){.contract-row{align-items:flex-start;flex-direction:column}}

.contract-card,#application-review{scroll-margin-top:24px}.contract-card>.help{margin:18px 0 0}.button:disabled{background:#e7ecf3;border-color:#cbd5e1;color:#58677b;cursor:not-allowed}

.signing-progress{display:grid;grid-template-columns:1fr 1fr;gap:18px}.pdf-preview{width:100%;height:75vh;min-height:440px;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:24px}.signature-pad{display:block;width:100%;height:auto;aspect-ratio:10/3;border:2px solid #9daec7;border-radius:10px;background:#fff;touch-action:none}.signature-feedback{margin:0}.document-hash{overflow-wrap:anywhere;font-size:.8rem}.signing-card{scroll-margin-top:24px}@media(max-width:600px){.signing-progress{grid-template-columns:1fr;gap:0}.pdf-preview{min-height:360px}}
.signing-callout{display:flex;align-items:center;justify-content:space-between;gap:20px;border-color:#9daec7}.signing-callout p{margin-bottom:0}.signing-callout .button{flex-shrink:0}@media(max-width:600px){.signing-callout{align-items:stretch;flex-direction:column}}
