@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --bg:#f3f5fa;--surface:#fff;--border:#e4e8f0;--border2:#cbd2e0;
  --text:#0f1729;--muted:#6b7490;--hint:#8892a8;
  --brand:#1a3a8f;--brand-lt:#e8eeff;--brand-dk:#142d72;
  --ok:#0b6e4f;--ok-bg:#dcfdf0;--warn:#c05621;--warn-bg:#fff4e0;
  --bad:#b42318;--bad-bg:#fef0ef;--info-bg:#f0f2f8;
  --shadow:0 2px 12px rgba(15,23,41,.07);--shadow-lg:0 8px 32px rgba(15,23,41,.10);
  --radius:16px;--radius-sm:10px;--radius-xs:7px;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{letter-spacing:-.02em;margin:0}p{margin:0}
code{font-family:'SF Mono','Fira Code',monospace;font-size:.85em;background:var(--info-bg);padding:2px 6px;border-radius:5px;color:var(--brand)}

.shell{min-height:100vh;display:flex;flex-direction:column}
.main{max-width:1160px;margin:0 auto;padding:32px 20px 64px;flex:1}
.public-box{max-width:600px;margin:0 auto;padding:24px 20px 64px}

.topbar{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.topbar-inner{max-width:1160px;margin:0 auto;padding:0 20px;height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:16px;color:var(--text);letter-spacing:-.03em;text-decoration:none}
.brand:hover{text-decoration:none}
.brand-mark{width:34px;height:34px;background:var(--brand);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.brand-mark svg{width:19px;height:19px}
.nav{display:flex;align-items:center;gap:2px}
.nav a{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-xs);font-size:13.5px;font-weight:600;color:var(--muted);transition:background .15s,color .15s;text-decoration:none}
.nav a:hover{background:var(--info-bg);color:var(--text);text-decoration:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 18px;border-radius:var(--radius-xs);font:600 13.5px/1 'Plus Jakarta Sans',system-ui,sans-serif;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);transition:background .15s,border-color .15s;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--info-bg);text-decoration:none}
.btn-primary{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important;box-shadow:0 1px 4px rgba(26,58,143,.25)}
.btn-primary:hover{background:var(--brand-dk)!important;border-color:var(--brand-dk)!important}
.btn-danger{background:var(--bad-bg);border-color:#fecdca;color:var(--bad)}
.btn-full{width:100%;justify-content:center}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:16px}
.card-flat{box-shadow:none}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.card-head h2{margin:0}

.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-bottom:20px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.page-head p{color:var(--muted);font-size:13.5px;margin-top:4px}

.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}
.grid.two{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}

.kpi{font-size:32px;font-weight:800;letter-spacing:-.04em;line-height:1}
.stat{padding:20px}
.stat span{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}

.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:6px;font-size:11.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0}
.badge-green{background:var(--ok-bg);color:var(--ok)}.badge-green::before{background:#22c87a}
.badge-amber{background:var(--warn-bg);color:var(--warn)}.badge-amber::before{background:#f5a623}
.badge-red{background:var(--bad-bg);color:var(--bad)}.badge-red::before{background:#e05252}
.badge-blue{background:var(--brand-lt);color:var(--brand)}.badge-blue::before{background:#4a7fe5}
.badge-gray{background:var(--info-bg);color:var(--muted)}.badge-gray::before{background:#a0aabb}

.status-uploaded,.status-draft{background:var(--info-bg);color:var(--muted)}
.status-owner_sign_started,.status-signed_by_owner,.status-sent_to_counterparty{background:var(--warn-bg);color:var(--warn)}
.status-signed_by_all{background:var(--ok-bg);color:var(--ok)}
.status-rejected_by_counterparty,.status-failed{background:var(--bad-bg);color:var(--bad)}

.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
table{width:100%;border-collapse:collapse;min-width:640px;font-size:13.5px}
th{text-align:left;padding:11px 16px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#fafbff;border-bottom:1px solid var(--border)}
td{padding:13px 16px;border-bottom:1px solid var(--border);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:#fafbff}

.form{display:grid;gap:16px}
.field{display:grid;gap:6px}
.field label{font-size:13.5px;font-weight:700;color:var(--text)}
.field input,.field textarea,.field select{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;font:15px/1 'Plus Jakarta Sans',system-ui,sans-serif;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s;outline:none}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,58,143,.1)}
.field .hint{font-size:12.5px;color:var(--muted)}
.dropzone{border:2px dashed var(--border2);border-radius:var(--radius);background:#fafbff;padding:32px 24px;text-align:center;transition:border-color .15s,background .15s;cursor:pointer}
.dropzone:hover{border-color:var(--brand);background:var(--brand-lt)}
.dropzone p{color:var(--muted);font-size:13.5px;margin-top:8px}
.form-stack{display:grid;gap:14px}
.form-stack label{display:grid;gap:6px;font-weight:700;font-size:13.5px}
.form-stack input,.form-stack textarea{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;font:15px/1.4 'Plus Jakarta Sans',system-ui,sans-serif;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}
.form-stack input:focus,.form-stack textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,58,143,.1)}
.inline-form{display:inline-flex;margin:6px 6px 0 0}

.alert{border-radius:var(--radius-sm);border:1px solid #fedf89;background:#fffaeb;color:#93370d;padding:13px 16px;font-size:13.5px;font-weight:500;margin:4px 0}
.alert.bad{border-color:#fecdca;background:var(--bad-bg);color:var(--bad)}
.alert.ok{border-color:#abefc6;background:var(--ok-bg);color:var(--ok)}
.alert.info{border-color:#b2ccf5;background:var(--brand-lt);color:var(--brand)}

.timeline{display:grid;gap:8px}
.timeline-item{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:13px}
.timeline-time{color:var(--muted);font-size:12.5px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

.sign-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);padding:36px 32px;margin-bottom:14px}
.sign-header{text-align:center;margin-bottom:28px}
.sign-icon{width:60px;height:60px;background:var(--brand-lt);border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.sign-icon svg{width:30px;height:30px;color:var(--brand);stroke:var(--brand)}
.sign-header h1{font-size:21px;font-weight:800;letter-spacing:-.03em;margin-bottom:6px}
.sign-header p{font-size:14px;color:var(--muted);line-height:1.55}
.doc-preview-block{border:1.5px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px;margin-bottom:22px;cursor:pointer;transition:border-color .15s,background .15s;text-decoration:none;color:inherit}
.doc-preview-block:hover{border-color:var(--brand);background:#fafbff;text-decoration:none}
.doc-preview-icon{width:38px;height:38px;background:var(--info-bg);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.doc-preview-icon svg{width:20px;height:20px;stroke:var(--brand)}
.doc-preview-info .name{font-weight:700;font-size:13.5px}
.doc-preview-info .meta{font-size:12px;color:var(--muted);margin-top:2px}
.consent-block{display:grid;gap:12px;margin-bottom:20px}
.consent-row{display:flex;align-items:flex-start;gap:11px}
.consent-row input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin-top:2px;cursor:pointer;accent-color:var(--brand)}
.consent-row label{font-size:13.5px;color:var(--muted);line-height:1.5;cursor:pointer}
.trust-bar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--hint);font-weight:600}
.trust-item svg{width:13px;height:13px;flex-shrink:0;stroke:var(--hint)}
.trust-dot{width:3px;height:3px;border-radius:50%;background:var(--border2)}
.reject-section{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}
.reject-summary{cursor:pointer;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px;list-style:none;user-select:none}
.reject-summary:hover{color:var(--bad)}
.reject-body{margin-top:14px;padding:16px;background:var(--bad-bg);border:1px solid #fecdca;border-radius:var(--radius-sm)}
.reject-body p{font-size:13px;color:var(--bad);margin-bottom:12px}
.sign-success{text-align:center;padding:20px 0 10px}
.success-icon{width:64px;height:64px;background:var(--ok-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.success-icon svg{width:30px;height:30px;stroke:var(--ok)}

.muted{color:var(--muted)}.hint{color:var(--hint);font-size:13px}
.footer-note{color:var(--muted);font-size:13px;margin-top:18px;text-align:center}
.pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:6px 12px;background:var(--surface);color:var(--muted);font-weight:600;font-size:12.5px}
h1{font-size:clamp(24px,4vw,38px);font-weight:800;line-height:1.05;letter-spacing:-.04em}
h2{font-size:20px;font-weight:800;letter-spacing:-.03em}
h3{font-size:16px;font-weight:700;letter-spacing:-.02em}
.kv{display:grid;grid-template-columns:1fr auto;gap:8px 16px}
.kv dt{color:var(--muted);font-size:13.5px}.kv dd{margin:0;font-weight:700;font-size:13.5px;text-align:right}
.check-list{display:grid;gap:8px}
.check-row{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;background:var(--surface);display:grid;gap:3px}
.check-row span{color:var(--muted);font-size:13px}
.check-ok{border-color:#abefc6;background:#f6fef9}.check-warn{border-color:#fedf89;background:#fffcf5}.check-fail{border-color:#fecdca;background:#fff8f7}
.compact-card{box-shadow:none;margin-top:16px}
.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:6px}
.page-sub{color:var(--muted);font-size:13.5px;margin-top:4px;margin-bottom:24px}

@media(max-width:860px){
  .hero{grid-template-columns:1fr}.grid,.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}
  .col-3,.col-4,.col-6,.col-8,.col-12{grid-column:1}
  .topbar-inner{padding:0 14px}.nav a{padding:7px 10px;font-size:13px}
  .main{padding:20px 14px 48px}.public-box{padding:16px 14px 48px}
  .card{padding:18px;border-radius:14px}.sign-card{padding:24px 20px;border-radius:16px}
  .timeline-item{grid-template-columns:1fr}table{min-width:560px;font-size:13px}h1{font-size:26px}
  .page-head{display:block}.page-head .actions{margin-top:12px}
}

/* ============================================================
   ARCHIVE THEME OVERRIDE
   ============================================================ */

:root{
  --bg:#efe7da;
  --surface:#fcfaf4;
  --border:#d9cfbf;
  --border2:#c7baa5;
  --text:#1f1a16;
  --muted:#6f685f;
  --hint:#8a8176;
  --brand:#9a7b34;
  --brand-lt:#f4ecdc;
  --brand-dk:#7d6328;
  --ok:#2f7d32;
  --ok-bg:#eef8ee;
  --warn:#a56a1f;
  --warn-bg:#fff5e7;
  --bad:#a63d32;
  --bad-bg:#fff1ef;
  --info-bg:#f4efe6;
  --shadow:0 1px 0 rgba(31,26,22,.04),0 12px 32px -18px rgba(31,26,22,.16);
  --shadow-lg:0 8px 40px rgba(31,26,22,.14);
  --radius:18px;
  --radius-sm:12px;
  --radius-xs:8px;
}

body{
  background:radial-gradient(circle at top,#f8f3ea 0%,#efe7da 100%);
  color:var(--text);
}

h1,h2,h3,h4{
  font-family:Georgia,'Times New Roman',serif;
  color:var(--text);
  letter-spacing:-.035em;
}

.topbar{
  background:rgba(252,250,244,.9);
  border-bottom:1px solid rgba(154,123,52,.18);
}

.brand{
  color:var(--text);
}

.brand-mark{
  background:var(--brand);
  border-radius:50%;
}

.card,
.sign-card,
.table-wrap{
  background:rgba(252,250,244,.96);
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}

.btn-primary{
  background:linear-gradient(180deg,#b08a3a 0%,#9a7b34 100%)!important;
  border-color:#8f722f!important;
  color:#fff!important;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 4px 14px rgba(154,123,52,.24);
}

.btn-primary:hover{
  background:#866628!important;
  border-color:#7b5d23!important;
}

.btn{
  border-color:var(--border);
}

.field input,
.field textarea,
.field select,
.form-stack input,
.form-stack textarea{
  background:#fffdf9;
  border-color:var(--border);
}

.field input:focus,
.field textarea:focus,
.field select:focus,
.form-stack input:focus,
.form-stack textarea:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 4px rgba(154,123,52,.12);
}

th{
  background:#f6efe3;
  color:var(--muted);
}

tbody tr:hover{
  background:#f8f3ea;
}

.dropzone{
  background:#f8f3ea;
  border-color:#cdbfa6;
}

.dropzone:hover{
  background:#f6efe3;
  border-color:var(--brand);
}

.sign-icon,
.doc-preview-icon{
  background:var(--brand-lt);
}

.sign-icon svg,
.doc-preview-icon svg{
  stroke:var(--brand);
}

code{
  background:#f4ecdc;
  color:#7d6328;
}

