:root{
  --ink:#111318;
  --muted:#6f737b;
  --line:#e2e3e5;
  --paper:#f3f3f1;
  --white:#fff;
  --soft:#f8f8f6;
  --accent:#a39a70;
  --accent-dark:#6f682f;
  --success:#23683a;
  --warning:#965c00;
  --danger:#a33a3a;
  --shadow:0 18px 45px rgba(15,18,22,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Arial,Helvetica,sans-serif}
header{
  min-height:78px;background:#101112;color:#fff;display:flex;align-items:center;justify-content:space-between;
  padding:0 max(28px,calc((100% - 1240px)/2));position:sticky;top:0;z-index:20;
  box-shadow:0 1px 0 rgba(255,255,255,.08)
}
.brand{color:#fff;text-decoration:none;font-weight:800;font-size:18px;letter-spacing:.2em}
nav{display:flex;gap:22px;align-items:center}
nav span{color:#d7d7d7}
nav a{color:#fff;text-decoration:none;border-bottom:1px solid transparent}
nav a:hover{border-color:#fff}
main{max-width:1240px;margin:38px auto;padding:0 22px;min-height:75vh}
h1{font-size:clamp(32px,4vw,48px);line-height:1.05;font-weight:500;margin:0 0 14px;letter-spacing:-.035em}
h2{font-size:22px;line-height:1.25;margin:0 0 10px}
p{margin-top:0}
.lead{color:var(--muted);font-size:16px}
a{color:#312c8f}
.card{
  background:var(--white);border:1px solid var(--line);border-radius:14px;padding:26px;margin:20px 0;
  box-shadow:0 5px 20px rgba(15,18,22,.025)
}
.page-hero{
  position:relative;overflow:hidden;background:#151719;color:#fff;border-radius:18px;padding:38px 42px;margin-bottom:24px;
  box-shadow:var(--shadow)
}
.page-hero p{color:#c9cacc;max-width:720px;margin-bottom:0}
.page-hero .eyebrow{color:#cfc79a}
.hero-mark{
  position:absolute;right:35px;top:50%;transform:translateY(-50%);font-size:120px;font-weight:800;
  letter-spacing:-.08em;color:rgba(255,255,255,.055);user-select:none
}
.eyebrow{margin:0 0 7px;font-size:11px;font-weight:800;letter-spacing:.18em;color:#777b83}
button,.button{
  display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:#151719;color:#fff;
  padding:13px 20px;text-decoration:none;cursor:pointer;font-weight:700;transition:.18s ease
}
button:hover,.button:hover{transform:translateY(-1px);background:#000}
.secondary{background:#ecece9;color:#1a1b1d}
.secondary:hover{background:#deded9;color:#111}
.small-button{padding:8px 11px;font-size:12px}
.full-button,.primary-wide{width:100%}
.alert,.success{padding:14px 16px;border-radius:9px;margin:15px 0}
.alert{background:#fff0f0;border:1px solid #e7b8b8;color:#7e2525}
.success{background:#ebf7ee;border:1px solid #b8d9be;color:#205b31}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 24px}
.stats div{
  display:flex;flex-direction:column-reverse;background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px 24px;
  box-shadow:0 6px 20px rgba(15,18,22,.03)
}
.stats b{font-size:34px;line-height:1}
.stats span{color:var(--muted);font-size:13px;margin-top:8px}
.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:23px}
.section-heading p:not(.eyebrow){margin:5px 0 0;color:var(--muted)}
.section-heading.with-search{align-items:center}
.document-flow-badge{
  white-space:nowrap;background:#f0eee4;color:#605b38;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800
}
.admin-form{display:grid;gap:22px}
.form-grid{display:grid;gap:16px}
.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid .full-width{grid-column:1/-1}
label{font-weight:700;font-size:13px}
input,select{
  display:block;width:100%;padding:12px 13px;border:1px solid #ced0d3;border-radius:7px;margin-top:7px;
  background:#fff;color:#111;font:inherit;outline:none
}
input:focus,select:focus{border-color:#817944;box-shadow:0 0 0 3px rgba(129,121,68,.12)}
.field-hint{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}
.table-search{width:min(380px,100%);margin:0}
.document-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.document-upload-box{
  position:relative;display:flex;flex-direction:column;min-height:185px;border:1px solid var(--line);border-radius:13px;
  padding:22px;background:#fafaf8;cursor:pointer;transition:.18s ease
}
.document-upload-box:hover{border-color:#a19a73;transform:translateY(-2px);box-shadow:0 10px 25px rgba(15,18,22,.06)}
.document-upload-box.signable{background:#f5f3e8;border-color:#d9d2aa}
.document-upload-box strong{font-size:17px;margin:18px 0 5px}
.document-upload-box>span:not(.document-number){font-weight:400;color:var(--muted)}
.document-upload-box input{margin-top:auto;padding:9px;background:#fff}
.document-number{
  display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#111;color:#fff;font-size:11px
}
.advanced-settings{border:1px solid var(--line);border-radius:10px;background:#fafaf8}
.advanced-settings summary{cursor:pointer;padding:15px 17px;font-weight:700}
.advanced-settings[open] summary{border-bottom:1px solid var(--line)}
.advanced-settings>p,.advanced-settings>.coord-grid{margin-left:17px;margin-right:17px}
.advanced-settings>.coord-grid{margin-bottom:17px}
.coord-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.coord-grid fieldset{border:1px solid var(--line);border-radius:9px;padding:13px}
.coord-grid legend{font-weight:800}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:separate;border-spacing:0}
th,td{text-align:left;border-bottom:1px solid var(--line);padding:15px 13px;vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#7c8087}
td small{display:block;color:var(--muted);margin-top:3px}
.document-links{display:flex;flex-wrap:wrap;gap:7px}
.document-links a,.muted-link{display:inline-flex;padding:6px 9px;border-radius:6px;background:#f1f1ee;font-size:12px;text-decoration:none}
.muted-link{color:#8b8d92}
.admin-status{
  display:inline-block;padding:6px 9px;border-radius:999px;font-size:10px;text-transform:uppercase;
  letter-spacing:.08em;background:#ecece9;white-space:nowrap
}
.admin-status.completed{background:#e5f4e8;color:var(--success)}
.admin-status.signature_required{background:#fff1dc;color:var(--warning)}
.inline-action{display:inline}
.customer-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.customer-admin-card{
  display:grid;grid-template-columns:auto 1fr;gap:13px;border:1px solid var(--line);border-radius:12px;padding:18px;background:#fafaf8
}
.customer-avatar{
  display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#151719;color:#fff;font-weight:800
}
.customer-details{display:flex;flex-direction:column}
.customer-details span{font-size:12px;color:var(--muted)}
.customer-email-form{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px}
.customer-email-form button{height:45px}
.empty-filter{padding:22px;text-align:center;color:var(--muted)}
.order-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.order-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:23px;box-shadow:0 7px 25px rgba(15,18,22,.035)}
.order-card-top{display:flex;justify-content:space-between;gap:15px}
.order-label{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:800}
.order-card h2{font-size:25px;margin:2px 0 12px}
.order-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0;margin:16px 0;color:var(--muted)}
.order-meta strong{color:var(--ink);margin-left:5px}
.customer-document-list{display:grid;gap:8px;margin-bottom:16px}
.customer-document-list a{
  display:flex;justify-content:space-between;gap:15px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;
  color:var(--ink);text-decoration:none;background:#fafaf8
}
.customer-document-list a:hover{border-color:#9c956b}
.customer-document-list small{color:var(--muted)}
.signing-document-preview{
  background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;margin:20px 0;box-shadow:var(--shadow)
}
.preview-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:15px}
.preview-heading h2{margin:0}
.preview-heading p{margin:4px 0 0;color:var(--muted)}
.pdf-preview-frame{
  height:min(72vh,760px);min-height:480px;border:1px solid #d4d6d9;border-radius:10px;overflow:hidden;background:#3f4246
}
.pdf-preview-frame iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.preview-note{margin:11px 0 0;font-size:12px;color:var(--muted)}
.signing-progress{position:sticky;top:95px;z-index:10}
.progress-heading{display:flex;justify-content:space-between;gap:15px}
.progress-track{height:7px;background:#ebeae6;border-radius:999px;overflow:hidden;margin:14px 0}
.progress-track span{display:block;height:100%;width:0;background:#6d6739;transition:width .25s}
.progress-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;list-style:none;padding:0;margin:0}
.progress-steps li{color:#94969a;font-weight:700}
.progress-steps li span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #c9cbce;border-radius:50%;margin-right:7px}
.progress-steps li.active,.progress-steps li.done{color:#17191c}
.progress-steps li.done span{background:#202225;color:#fff;border-color:#202225}
.signature-block{transition:.2s ease}
.signature-block.is-pending{opacity:.56}
.signature-block.is-active{border-color:#bab387;box-shadow:0 0 0 3px rgba(186,179,135,.13)}
.signature-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.signature-statement{margin:10px 0 0;max-width:980px;font-size:15px;line-height:1.6;font-weight:400;color:#2d2f34}
.step-label{margin:0;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.signature-status{background:#ecece9;padding:7px 11px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.signature-status.confirmed{background:#e5f4e8;color:var(--success)}
.signature-help{color:var(--muted)}
.signature{width:100%;height:auto;border:1px solid #bfc2c6;border-radius:8px;background:#fff;touch-action:none}
.signature-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}
.signature-confirmed{padding:14px;border:1px solid #cfe0d3;border-radius:9px;background:#f4faf5}
.signature-preview{display:block;max-width:520px;width:100%;max-height:150px;object-fit:contain;background:#fff;border:1px solid var(--line);margin:12px 0}
.confirmed-message{color:var(--success);font-weight:800}
.final-signing-panel{text-align:center;border:2px solid #222}
.login{max-width:460px;margin:70px auto}
.login form{display:grid;gap:16px}
footer{text-align:center;padding:35px;color:var(--muted)}
@media(max-width:850px){
  .coord-grid,.document-upload-grid,.customer-admin-grid,.order-card-grid{grid-template-columns:1fr}
  .form-grid.two-columns{grid-template-columns:1fr}
  .form-grid .full-width{grid-column:auto}
  .section-heading.with-search,.preview-heading{display:block}
  .table-search{margin-top:14px;width:100%}
  .customer-email-form{grid-template-columns:1fr}
  .progress-steps{grid-template-columns:1fr}
  .signing-progress{position:static}
}
@media(max-width:700px){
  header{position:static;padding:18px 20px;display:block}
  nav{margin-top:12px;flex-wrap:wrap}
  main{margin-top:22px;padding:0 14px}
  .stats{grid-template-columns:1fr}
  .page-hero{padding:29px 24px}
  .hero-mark{display:none}
  .pdf-preview-frame{height:62vh;min-height:410px}
  .card{padding:19px}
}


/* Patch 011: customer account creation */
.customer-create-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.add-customer-card{
  border-top:4px solid #a39a70;
}
.customer-create-form{
  margin-top:4px;
}
.login-note{
  margin:18px 0 0;
  color:var(--muted);
  font-size:12px;
  text-align:center;
}
@media(max-width:850px){
  .customer-create-grid{grid-template-columns:1fr}
}


/* Patch 012: grouped multi-document upload */
.customer-assignment-row{
  padding:18px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafaf8;
}
.document-groups{
  display:grid;
  gap:18px;
}
.document-group{
  padding:20px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 24px rgba(15,18,22,.035);
}
.document-group-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.document-group-header h3{
  margin:3px 0 3px;
  font-size:20px;
}
.document-group-header p{
  margin:0;
  color:var(--muted);
}
.group-index{
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  color:#777b83;
}
.remove-document-group{
  padding:8px 12px;
  font-size:12px;
}
.add-document-group{
  justify-self:start;
}
@media(max-width:850px){
  .document-group-header{display:block}
  .remove-document-group{margin-top:12px}
}


/* Patch 013: original-only workflow */
.admin-status.uploaded{
  background:#e8eef8;
  color:#315c91;
}
.attach-confirmation-form{
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  margin-top:6px;
}
.compact-file{
  display:flex;
  flex:1;
  align-items:center;
  gap:7px;
  padding:6px 9px;
  border:1px dashed #bbbcae;
  border-radius:7px;
  background:#fafaf7;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
}
.compact-file input{
  width:1px;
  height:1px;
  padding:0;
  margin:0;
  opacity:0;
  position:absolute;
}
.attach-confirmation-form .small-button{
  flex:0 0 auto;
}
.anchor-analysis{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#f8f8f6}.anchor-analysis [data-anchor-list]{margin:9px 0}.verification-card{max-width:720px;margin:60px auto;background:#fff;border:1px solid var(--line);border-radius:15px;padding:30px;box-shadow:var(--shadow)}

/* Patch 015: separate certificate and clearer signing actions */
.signing-action-hero{
  display:flex;
  align-items:center;
  gap:18px;
  padding:24px 27px;
  margin-bottom:20px;
  border-radius:15px;
  color:#fff;
  background:#7d2f2f;
  box-shadow:var(--shadow);
}
.signing-action-hero h1{margin:0 0 7px;font-size:34px}
.signing-action-hero p{margin:0;color:#f5dede}
.signing-action-hero .eyebrow{color:#ffd7d7}
.signing-action-icon{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  border-radius:50%;
  background:#fff;
  color:#7d2f2f;
  font-size:28px;
  font-weight:900;
}
.order-card.requires-action{
  border:2px solid #b75858;
  box-shadow:0 12px 32px rgba(125,47,47,.12);
}
.required-action-banner{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin:14px 0;
  padding:13px 14px;
  border-radius:9px;
  background:#fff0f0;
  color:#7c2929;
}
.required-action-banner span{font-size:12px}
.waiting-banner{
  margin:14px 0;
  padding:12px 14px;
  border-radius:9px;
  background:#eef2f7;
  color:#4f5f72;
}
.action-required-button{
  background:#a23c3c;
  font-size:16px;
}
.action-required-button:hover{background:#7d2929}
.completed-download-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.signing-completed-message{
  margin-bottom:20px;
  font-size:15px;
}
@media(max-width:700px){
  .signing-action-hero{align-items:flex-start;padding:20px}
  .signing-action-hero h1{font-size:28px}
  .completed-download-actions{grid-template-columns:1fr}
}


/* Patch 016: admin document removal */
.document-management-cell{
  min-width:340px;
  display:grid;
  gap:9px;
}
.admin-document-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fafaf8;
}
.admin-document-row>div{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
}
.admin-document-row strong{
  width:100%;
  font-size:12px;
}
.admin-document-row a{
  display:inline-flex;
  padding:5px 8px;
  border-radius:6px;
  background:#efefec;
  font-size:12px;
  text-decoration:none;
}
.generated-document-row{
  background:#f1f7f2;
  border-color:#c7ddcc;
}
.danger-small-button{
  flex:0 0 auto;
  padding:7px 10px;
  border:1px solid #c75a5a;
  border-radius:6px;
  background:#fff;
  color:#9b2f2f;
  font-size:11px;
}
.danger-small-button:hover{
  background:#a33a3a;
  color:#fff;
  transform:none;
}
.remove-document-form{
  flex:0 0 auto;
}
@media(max-width:760px){
  .document-management-cell{min-width:280px}
  .admin-document-row{align-items:flex-start}
}


/* Patch 017: editable document names and customer deletion */
.editable-order-cell{
  min-width:270px;
}
.rename-order-form{
  display:grid;
  grid-template-columns:minmax(160px,1fr) auto;
  align-items:end;
  gap:7px;
}
.rename-order-form input{
  margin:0;
  padding:9px 10px;
  font-weight:700;
}
.rename-order-form .small-button{
  height:39px;
  white-space:nowrap;
}
.delete-customer-form{
  grid-column:1/-1;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.danger-customer-button{
  width:100%;
  padding:10px 12px;
  border:1px solid #c75a5a;
  border-radius:7px;
  background:#fff;
  color:#9b2f2f;
}
.danger-customer-button:hover{
  background:#a33a3a;
  color:#fff;
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
@media(max-width:760px){
  .rename-order-form{grid-template-columns:1fr}
}


/* Patch 018: complete responsive refinement */

/* Prevent accidental horizontal overflow */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}
img, iframe, canvas, table {
  max-width: 100%;
}
input, select, button, textarea {
  min-width: 0;
}
main {
  width: 100%;
}

/* Tablet */
@media (max-width: 1024px) {
  header {
    padding-left: 24px;
    padding-right: 24px;
  }

  main {
    max-width: 100%;
    padding-left: 18px;
    padding-right: 18px;
  }

  .page-hero {
    padding: 32px 30px;
  }

  .stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .document-upload-grid,
  .customer-admin-grid,
  .order-card-grid {
    grid-template-columns: 1fr 1fr;
  }

  .coord-grid {
    grid-template-columns: 1fr;
  }

  .table-wrap {
    border-radius: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  table {
    min-width: 980px;
  }

  .document-management-cell {
    min-width: 330px;
  }

  .pdf-preview-frame {
    height: 68vh;
    min-height: 520px;
  }

  .signing-progress {
    position: static;
  }
}

/* Large phones and portrait tablets */
@media (max-width: 820px) {
  header {
    min-height: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 16px 18px;
    position: static;
  }

  .brand {
    font-size: 17px;
  }

  nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    width: 100%;
  }

  nav span,
  nav a {
    font-size: 14px;
  }

  main {
    margin-top: 20px;
    padding: 0 14px;
  }

  h1 {
    font-size: 34px;
  }

  h2 {
    font-size: 21px;
  }

  .page-hero {
    padding: 28px 22px;
    border-radius: 14px;
  }

  .hero-mark {
    display: none;
  }

  .stats {
    grid-template-columns: 1fr;
  }

  .section-heading,
  .section-heading.with-search,
  .preview-heading,
  .order-card-top,
  .signature-title-row,
  .document-group-header {
    display: block;
  }

  .table-search {
    width: 100%;
    margin-top: 14px;
  }

  .form-grid.two-columns,
  .customer-create-grid,
  .document-upload-grid,
  .customer-admin-grid,
  .order-card-grid {
    grid-template-columns: 1fr;
  }

  .form-grid .full-width {
    grid-column: auto;
  }

  .document-upload-box {
    min-height: 165px;
  }

  .customer-email-form {
    grid-template-columns: 1fr;
  }

  .customer-email-form button {
    width: 100%;
  }

  .rename-order-form {
    grid-template-columns: 1fr;
  }

  .rename-order-form .small-button {
    width: 100%;
  }

  .completed-download-actions {
    grid-template-columns: 1fr;
  }

  .pdf-preview-frame {
    height: 62vh;
    min-height: 460px;
  }

  .progress-steps {
    grid-template-columns: 1fr;
  }

  .signature-actions {
    flex-direction: column-reverse;
  }

  .signature-actions button {
    width: 100%;
  }

  .signature-preview {
    max-width: 100%;
  }

  .verification-form {
    grid-template-columns: 1fr;
  }

  .verification-form button {
    width: 100%;
  }

  .verification-details > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .anchor-preview-list {
    grid-template-columns: 1fr;
  }
}

/* Phones */
@media (max-width: 600px) {
  body {
    font-size: 14px;
  }

  header {
    padding: 14px 14px;
  }

  nav {
    gap: 8px 13px;
  }

  main {
    padding: 0 10px;
    margin-top: 14px;
  }

  h1 {
    font-size: 28px;
  }

  h2 {
    font-size: 19px;
  }

  .card {
    padding: 16px;
    border-radius: 11px;
    margin: 14px 0;
  }

  .page-hero {
    padding: 23px 18px;
    margin-bottom: 16px;
  }

  .stats div {
    padding: 17px 18px;
  }

  .stats b {
    font-size: 29px;
  }

  input,
  select,
  button,
  .button {
    width: 100%;
    min-height: 44px;
    font-size: 16px;
  }

  input[type="file"] {
    font-size: 14px;
  }

  .document-flow-badge {
    display: inline-flex;
    margin-top: 12px;
  }

  .document-group {
    padding: 14px;
  }

  .document-upload-box {
    padding: 16px;
  }

  .customer-admin-card {
    grid-template-columns: 1fr;
  }

  .customer-avatar {
    width: 40px;
    height: 40px;
  }

  .customer-details {
    margin-bottom: 8px;
  }

  .delete-customer-form,
  .customer-email-form {
    grid-column: auto;
  }

  .table-wrap {
    margin-left: -4px;
    margin-right: -4px;
  }

  table {
    min-width: 880px;
    font-size: 13px;
  }

  th,
  td {
    padding: 11px 9px;
  }

  .document-management-cell {
    min-width: 300px;
  }

  .admin-document-row {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-document-row > div {
    display: grid;
    grid-template-columns: 1fr;
  }

  .remove-document-form,
  .danger-small-button {
    width: 100%;
  }

  .attach-confirmation-form {
    flex-direction: column;
    align-items: stretch;
  }

  .compact-file {
    width: 100%;
  }

  .small-button {
    width: 100%;
  }

  .order-card {
    padding: 17px;
  }

  .order-card h2 {
    font-size: 21px;
    word-break: break-word;
  }

  .customer-document-list a {
    flex-direction: column;
    gap: 2px;
  }

  .signing-action-hero {
    padding: 18px;
    gap: 12px;
  }

  .signing-action-icon {
    width: 44px;
    height: 44px;
    font-size: 23px;
  }

  .signing-action-hero h1 {
    font-size: 25px;
  }

  .signing-document-preview {
    padding: 13px;
  }

  .preview-heading .button {
    margin-top: 12px;
  }

  .pdf-preview-frame {
    height: 58vh;
    min-height: 390px;
    border-radius: 7px;
  }

  .signature {
    height: 165px;
  }

  .signature-block {
    scroll-margin-top: 12px;
  }

  .final-signing-panel {
    padding: 18px;
  }

  .verification-page {
    margin: 20px auto;
  }

  .verification-card {
    padding: 18px;
  }
}

/* Small phones */
@media (max-width: 390px) {
  .brand {
    letter-spacing: .15em;
  }

  nav span,
  nav a {
    font-size: 13px;
  }

  h1 {
    font-size: 25px;
  }

  .page-hero {
    padding: 20px 15px;
  }

  .card {
    padding: 14px;
  }

  .pdf-preview-frame {
    height: 54vh;
    min-height: 350px;
  }

  .signature {
    height: 150px;
  }
}

/* Touch targets */
@media (pointer: coarse) {
  button,
  .button,
  nav a,
  .document-links a,
  .customer-document-list a {
    min-height: 44px;
  }

  input,
  select {
    min-height: 46px;
  }

  .signature {
    touch-action: none;
  }
}


/* Patch 020: unified three-document model */
.document-slot-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.document-slot{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:190px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fafaf8;
}
.document-slot-required{
  border:2px solid #b75858;
  background:#fff5f5;
}
.document-slot-heading{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.document-slot-heading>div{
  display:flex;
  flex-direction:column;
}
.document-slot-heading small{
  margin-top:3px;
  color:var(--muted);
}
.document-slot-number{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  width:29px;
  height:29px;
  border-radius:50%;
  background:#17191c;
  color:#fff;
  font-size:10px;
  font-weight:800;
}
.document-slot-status{
  align-self:flex-start;
  padding:5px 8px;
  border-radius:999px;
  background:#ecece9;
  color:#54565b;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.document-slot-status.required{
  background:#ffe2e2;
  color:#8e2e2e;
}
.document-slot-status.signed,
.document-slot-status.available{
  background:#e4f3e7;
  color:#216237;
}
.document-slot-action{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:43px;
  padding:10px 12px;
  border-radius:7px;
  background:#ecece9;
  color:#17191c;
  text-decoration:none;
  font-weight:700;
  text-align:center;
}
.document-slot-action.primary-action{
  background:#9f3b3b;
  color:#fff;
}
.document-slot-unavailable{
  margin-top:auto;
  padding:10px 12px;
  border-radius:7px;
  background:#efefec;
  color:#898b90;
  font-size:12px;
  text-align:center;
}

.document-management-cell{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  min-width:370px;
}
.admin-document-slot{
  display:grid;
  gap:8px;
  padding:11px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fafaf8;
}
.admin-document-slot-header{
  display:flex;
  align-items:center;
  gap:8px;
}
.admin-document-slot-header span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:25px;
  height:25px;
  border-radius:50%;
  background:#17191c;
  color:#fff;
  font-size:9px;
  font-weight:800;
}
.admin-document-slot-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
}
.admin-document-slot-actions a{
  display:inline-flex;
  padding:6px 9px;
  border-radius:6px;
  background:#ecece9;
  text-decoration:none;
  font-size:12px;
}
@media(max-width:1024px){
  .document-slot-list{
    grid-template-columns:1fr;
  }
}
@media(max-width:600px){
  .document-slot{
    min-height:0;
  }
  .document-management-cell{
    min-width:320px;
  }
}


/* Patch 021: customer password management */
.customer-password-form{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr auto;
  align-items:end;
  gap:10px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.customer-password-heading{
  grid-column:1/-1;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.customer-password-heading span{
  color:var(--muted);
  font-size:12px;
}
.customer-password-form button{
  height:45px;
  white-space:nowrap;
}
@media(max-width:820px){
  .customer-password-form{
    grid-template-columns:1fr;
  }
  .customer-password-form button{
    width:100%;
  }
}


/* Patch 022: editable customer login username */
.customer-username-form{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:10px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.customer-username-form button{
  height:45px;
  white-space:nowrap;
}
.customer-details span strong{
  color:var(--ink);
}
@media(max-width:820px){
  .customer-username-form{
    grid-template-columns:1fr;
  }
  .customer-username-form button{
    width:100%;
  }
}


/* Patch 024: attach Original Order to an existing group */
.attach-original-form{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto;
  align-items:end;
  gap:8px;
  margin-top:4px;
}
.attach-original-form .compact-file{
  min-width:0;
}
.attach-original-form .small-button{
  white-space:nowrap;
}
@media(max-width:760px){
  .attach-original-form{
    grid-template-columns:1fr;
  }
  .attach-original-form .small-button{
    width:100%;
  }
}
