:root{
    --paper:#F6F2E9;
    --paper-raised:#FCFAF4;
    --ink:#23291F;
    --ink-soft:#5B6155;
    --line:#DED4BE;
    --brass:#A9762F;
    --brass-soft:#E9D9B8;
    --sage:#5C6E5A;
    --sage-soft:#DEE6DA;
    --terra:#B5482A;
    --terra-soft:#F1DAD1;
    --blue:#3E5C76;
    --blue-soft:#DCE4EC;
    --shadow: 0 1px 2px rgba(35,41,31,0.06), 0 6px 20px -8px rgba(35,41,31,0.15);
  }
  @media(prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --paper:#221E19;
      --paper-raised:#2B2620;
      --ink:#EDE6D6;
      --ink-soft:#A79B85;
      --line:#463F35;
      --brass:#D4A24C;
      --brass-soft:#4A3F27;
      --sage:#8FA88A;
      --sage-soft:#33402F;
      --terra:#D97A5A;
      --terra-soft:#4A2E24;
      --blue:#7FA0BE;
      --blue-soft:#2A3A48;
      --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 6px 20px -8px rgba(0,0,0,0.5);
    }
  }
  html[data-theme="dark"]{
    --paper:#221E19;
    --paper-raised:#2B2620;
    --ink:#EDE6D6;
    --ink-soft:#A79B85;
    --line:#463F35;
    --brass:#D4A24C;
    --brass-soft:#4A3F27;
    --sage:#8FA88A;
    --sage-soft:#33402F;
    --terra:#D97A5A;
    --terra-soft:#4A2E24;
    --blue:#7FA0BE;
    --blue-soft:#2A3A48;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 6px 20px -8px rgba(0,0,0,0.5);
  }
  *{box-sizing:border-box;}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:'Inter',sans-serif;font-size:15px;line-height:1.5;}
  h1,h2,h3,.display{font-family:'Fraunces',serif;font-weight:600;letter-spacing:-0.01em;}
  .mono{font-family:'JetBrains Mono',monospace;}
  button{font-family:inherit;cursor:pointer;}
  a{color:inherit;}
  ::selection{background:var(--brass-soft);}

  #app{max-width:1080px;margin:0 auto;padding:28px 20px 80px;}
  .topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;}
  .brand{display:flex;align-items:center;gap:10px;}
  .brand .seal{width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:700;font-size:15px;}
  .brand-name{font-size:19px;}
  .brand-tag{font-size:11px;color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;margin-top:1px;}
  .nav-actions{display:flex;gap:10px;}
  .btn{border:1px solid var(--ink);background:transparent;color:var(--ink);padding:9px 16px;border-radius:3px;font-size:13.5px;font-weight:600;transition:all .15s;}
  .btn:hover{background:var(--ink);color:var(--paper);}
  .btn-primary{background:var(--ink);color:var(--paper);}
  .btn-primary:hover{background:#0f130c;}
  .btn-brass{border-color:var(--brass);color:var(--brass);}
  .btn-brass:hover{background:var(--brass);color:#fff;}
  .btn-ghost{border:none;color:var(--ink-soft);padding:8px 10px;}
  .btn-ghost:hover{color:var(--ink);background:transparent;text-decoration:underline;}
  .btn-sm{padding:6px 11px;font-size:12.5px;}
  .btn:disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--ink-soft);}

  .card{background:var(--paper-raised);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);}
  .pad{padding:24px;}

  /* Dashboard */
  .stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;}
  .stat{padding:16px 18px;}
  .stat .num{font-family:'Fraunces',serif;font-size:28px;font-weight:600;}
  .stat .label{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
  .toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;}
  input[type=text],input[type=search],select,textarea{
    border:1px solid var(--line);background:var(--paper-raised);border-radius:3px;padding:9px 11px;font-family:inherit;font-size:13.5px;color:var(--ink);
  }
  input:focus,select:focus,textarea:focus{outline:2px solid var(--brass);outline-offset:1px;}
  .search-box{flex:1;position:relative;}
  .search-box input{width:100%;padding-left:32px;}
  .search-box .ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);opacity:.5;font-size:13px;}

  table{width:100%;border-collapse:collapse;}
  thead th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:10px 14px;border-bottom:1px solid var(--line);}
  tbody td{padding:13px 14px;border-bottom:1px solid var(--line);font-size:13.5px;vertical-align:middle;}
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:hover{background:#F1ECDE;cursor:pointer;}
  .pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.02em;}
  .pill-draft{background:#EDEAE0;color:var(--ink-soft);}
  .pill-sent{background:var(--blue-soft);color:var(--blue);}
  .pill-viewed{background:var(--brass-soft);color:var(--brass);}
  .pill-progress{background:#EFE3C6;color:#8A6415;}
  .pill-signed{background:var(--sage-soft);color:var(--sage);}
  .pill-completed{background:var(--sage);color:#fff;}
  .type-tag{font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--ink-soft);}
  .star-mark{color:var(--brass);}
  .empty{text-align:center;padding:60px 20px;color:var(--ink-soft);}
  .empty .display{font-size:20px;color:var(--ink);margin-bottom:6px;}

  /* Sections generic */
  .section-title{display:flex;align-items:center;gap:10px;margin:34px 0 14px;}
  .section-title .idx{font-family:'Fraunces',serif;font-style:italic;color:var(--brass);font-size:14px;}
  .section-title h2{font-size:16px;margin:0;text-transform:uppercase;letter-spacing:.04em;}
  .section-title .line{flex:1;height:1px;background:var(--line);}
  .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .field{display:flex;flex-direction:column;gap:5px;}
  .field label{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;}
  .field-full{grid-column:1/-1;}

  /* locked styling */
  .locked-field{position:relative;}
  .locked-field .lockval{
    background:repeating-linear-gradient(135deg, var(--brass-soft), var(--brass-soft) 6px, #F3E7CC 6px, #F3E7CC 12px);
    border:1px solid var(--brass);border-radius:3px;padding:9px 11px;font-size:13.5px;display:flex;align-items:center;justify-content:space-between;gap:8px;
  }
  .seal-icon{width:16px;height:16px;flex:none;}

  /* Create flow */
  .type-choice{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;}
  .type-card{border:1.5px solid var(--line);border-radius:6px;padding:22px;cursor:pointer;transition:all .15s;background:var(--paper-raised);}
  .type-card:hover{border-color:var(--ink);}
  .type-card.selected{border-color:var(--brass);background:#FBF4E6;box-shadow:0 0 0 1px var(--brass);}
  .type-card h3{margin:0 0 6px;font-size:17px;}
  .type-card p{margin:0;font-size:13px;color:var(--ink-soft);}
  .type-card .tag{display:inline-block;margin-top:10px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);}

  /* Client doc view */
  .doc-shell{max-width:720px;margin:0 auto;}
  .doc-header{text-align:center;margin-bottom:6px;}
  .doc-header .display{font-size:26px;}
  .doc-header .sub{color:var(--ink-soft);font-size:13px;margin-top:4px;}
  .progress-track{height:4px;background:var(--line);border-radius:2px;margin:22px 0 30px;overflow:hidden;}
  .progress-fill{height:100%;background:var(--sage);transition:width .3s;}

  .sig-pad-wrap{border:1.5px dashed var(--line);border-radius:6px;padding:10px;background:#fff;}
  canvas{width:100%;height:140px;display:block;background:#fff;border-radius:4px;touch-action:none;}
  .sig-tabs{display:flex;gap:8px;margin-bottom:10px;}
  .sig-tab{padding:6px 12px;font-size:12px;border:1px solid var(--line);border-radius:20px;background:transparent;color:var(--ink-soft);}
  .sig-tab.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
  .typed-sig{font-family:'Fraunces',serif;font-style:italic;font-size:34px;padding:20px;text-align:center;}

  .locked-summary{background:#FBF4E6;border:1px solid var(--brass-soft);border-radius:6px;padding:18px 20px;margin-bottom:6px;}
  .locked-summary .row{display:flex;justify-content:space-between;padding:6px 0;font-size:13.5px;border-bottom:1px dashed var(--line);}
  .locked-summary .row:last-child{border-bottom:none;}
  .locked-summary .row span:first-child{color:var(--ink-soft);}

  .checklist{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);}
  .checklist input{margin-top:3px;}
  .checklist label{font-size:13.5px;}

  .activity{list-style:none;margin:0;padding:0;}
  .activity li{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;}
  .activity li:last-child{border:none;}
  .activity .dot{width:7px;height:7px;border-radius:50%;background:var(--sage);margin-top:5px;flex:none;}
  .activity time{color:var(--ink-soft);margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:11px;white-space:nowrap;}

  .link-box{display:flex;gap:8px;margin-top:10px;}
  .link-box input{flex:1;font-family:'JetBrains Mono',monospace;font-size:12px;}

  .banner{padding:12px 16px;border-radius:5px;font-size:13px;margin-bottom:18px;display:flex;align-items:center;gap:8px;}
  .banner-sage{background:var(--sage-soft);color:#2f3d2d;}
  .banner-brass{background:var(--brass-soft);color:#6b4d1c;}

  .footer-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px;}
  .modal-overlay{position:fixed;inset:0;background:rgba(35,41,31,.5);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;}
  .modal{background:var(--paper-raised);border-radius:8px;max-width:420px;width:100%;padding:26px;}
  .breadcrumb{font-size:12px;color:var(--ink-soft);margin-bottom:4px;}
  .breadcrumb a:hover{text-decoration:underline;}

  @media(max-width:700px){
    .field-grid{grid-template-columns:1fr;}
    .type-choice{grid-template-columns:1fr;}
    .stats-row{grid-template-columns:1fr 1fr;}
  }
  @media print{
    .no-print{display:none!important;}
    body{background:#fff;}
    .print-page-break{page-break-before:always;break-before:page;}
  }