:root{font-family:Space Grotesk,Segoe UI,sans-serif;color:#e5eefb;background:radial-gradient(circle at top left,rgba(59,130,246,.25) 0%,transparent 28%),radial-gradient(circle at top right,rgba(14,165,233,.18) 0%,transparent 24%),linear-gradient(180deg,#0f172a,#111827 45%,#0b1220)}body{margin:0;background:transparent;color:#dbe7f7}.app{min-height:100vh;padding:32px;max-width:1680px;margin:0 auto}.app-shell{display:grid;gap:20px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;margin-bottom:20px;border:1px solid rgba(148,163,184,.18);border-radius:24px;background:linear-gradient(180deg,#0f172ae0,#111827b8);box-shadow:0 20px 45px #02061752;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header p{margin:8px 0 0;color:#94a3b8}.sign-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sign-role{background:#2a2d34;color:#fff;padding:6px 12px;border-radius:999px;font-size:.85rem}.sign-hint{margin-bottom:16px;color:#5b5e66}.sign-hint button{margin-left:12px}.share-panel{margin:16px 0;padding:14px;border:1px solid rgba(148,163,184,.2);border-radius:16px;background:linear-gradient(180deg,#fffffff2,#f5f8ffeb);box-shadow:0 18px 34px #0f172a24}.share-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.status-row{display:flex;gap:16px;margin-top:10px;color:#5b5e66;font-size:.9rem}.share-log{margin-top:16px}.share-log-grid{display:grid;gap:8px}.share-log-row{background:#fff;border:1px solid #dbe5f3;border-radius:10px;padding:8px 10px;display:grid;gap:4px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));font-size:.9rem}.contract-list{display:grid;gap:14px;margin-top:12px}.contract-row{background:linear-gradient(165deg,#fff,#f6faff);border:1px solid #dce5f4;border-radius:16px;padding:14px;display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;box-shadow:0 10px 24px #1f29370f;transition:transform .15s ease,box-shadow .2s ease}.contract-row:hover{transform:translateY(-1px);box-shadow:0 14px 28px #1f29371a}.contract-row.completed{background:linear-gradient(165deg,#f9fffb,#f0fff7);border-color:#cde8db}.contract-meta{display:grid;gap:6px;font-size:.9rem;color:#334155}.contract-meta strong{color:#0f172a}.contract-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.contract-divider{margin:18px 0 8px;border-top:1px solid #dbe4f2;padding-top:10px;color:#64748b}.sign-status{margin-bottom:12px}.toast-stack{position:fixed;right:24px;top:24px;display:grid;gap:10px;z-index:20}.toast{background:linear-gradient(180deg,#182233,#111827);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 10px 20px #0000001f;max-width:320px}.toast.success{background:#0f5132}.toast.error{background:#7f1d1d}.toast.info{background:#1f2937}.reset{margin-top:20px}h1{margin:0 0 6px;font-size:2.2rem;color:#f8fbff}h2{margin:0;color:#0f172a}h3,h4{color:#0f172a}.card{background:linear-gradient(180deg,#fffffff5,#f6f9fff2);border:1px solid rgba(148,163,184,.18);border-radius:24px;padding:20px;box-shadow:0 24px 48px #0f172a2e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.workspace{display:grid;grid-template-columns:320px 1fr;gap:24px;margin-top:24px}.docs-workspace{align-items:start}.docs-sidebar{position:sticky;top:16px;background:linear-gradient(180deg,#fffffffa,#eef5fff5)}.viewer-shell{border:1px solid rgba(96,165,250,.16);background:linear-gradient(180deg,#fffffffa,#f3f8fff7)}.menu-bar{display:flex;gap:12px;margin:20px 0;flex-wrap:wrap;padding:8px;border:1px solid rgba(148,163,184,.16);border-radius:18px;background:#0f172a8c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.menu-bar button{background:transparent;border:1px solid transparent;color:#cbd5e1;box-shadow:none}.menu-bar button.active{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;border-color:#ffffff2e;box-shadow:0 10px 18px #2563eb47}.viewer{min-height:520px}.admin{grid-column:1 / -1}label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;color:#334155}input{border:1px solid #cfd9e8;padding:10px 12px;border-radius:10px;transition:border-color .2s ease,box-shadow .2s ease;background:#fff}select{border:1px solid #cfd9e8;padding:10px 12px;border-radius:10px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus{outline:none;border-color:#2a7de1;box-shadow:0 0 0 3px #2a7de129}button{border:none;background:linear-gradient(180deg,#2f6ee6,#1d4ed8);color:#fff;padding:10px 16px;border-radius:12px;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,opacity .2s ease;box-shadow:0 8px 16px #1d4ed842}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 20px #1d4ed84d}button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}button.ghost{background:#ffffffeb;border:1px solid #c7d5ea;color:#1e293b;box-shadow:none}button.link{background:none;color:#1e293b;border:none;padding:0;text-align:left}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.viewer-toolbar{position:sticky;top:10px;z-index:12;padding:10px 12px;border:1px solid #d6e2f3;border-radius:14px;background:#f8fcfff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 24px #0f172a1a}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.export-status{font-size:.85rem;color:#5b5e66;display:inline-flex;align-items:center;gap:6px}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid #c7c2b5;border-top-color:#2a2d34;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.doc-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.doc-list li{display:flex;gap:10px;align-items:stretch}.doc-list li.active .doc-link{border-color:#3b82f6;background:linear-gradient(180deg,#eff6ff,#bfdbfe)!important;box-shadow:0 18px 36px #2563eb3d;transform:translateY(-1px)}.doc-link{width:100%;display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:18px!important;border-radius:22px;border:1px solid #d9e3f3!important;background:linear-gradient(180deg,#fff,#f8fbff)!important;box-shadow:0 16px 30px #0f172a1f;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease;position:relative;overflow:hidden}.doc-delete{flex:0 0 auto;align-self:center;min-width:96px;border-radius:16px}.doc-link:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#60a5fa,#2563eb)}.doc-link:hover{transform:translateY(-1px);box-shadow:0 20px 36px #0f172a29}.doc-link-title{font-weight:700;font-size:1rem;color:#0f172a;word-break:break-word}.doc-link-meta{font-size:.78rem;color:#475569;text-transform:uppercase;letter-spacing:.08em}.user-row{align-items:center;gap:10px}.user-email{flex:1;min-width:180px}.upload{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(180deg,#0f172a,#1e293b);color:#fff;padding:10px 14px;border-radius:14px;cursor:pointer;box-shadow:0 12px 24px #0f172a38}.upload:hover{transform:translateY(-1px)}.upload input{display:none}.pdf-stage{position:relative;overflow:auto;border-radius:18px;border:1px solid #d7e2f3;max-height:75vh;padding:18px;background:linear-gradient(180deg,#fdfefe,#f5f9ff);box-shadow:inset 0 1px #ffffffb3,0 18px 34px #0f172a14}.pdf-page{margin-bottom:16px}.page-label{font-size:.9rem;margin-bottom:8px;color:#475569;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.page-stack{position:relative}.pdf-canvas,.overlay{display:block}.overlay{position:absolute;left:0;top:0;cursor:default}.message{margin-bottom:12px;padding:10px 12px;background:#f6e7bd;border-radius:10px}.signature-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#11141b73;display:grid;place-items:center;z-index:40}.signature-pad{border:1px dashed #999;border-radius:8px;width:400px;height:160px;background:#fff}.signature-preview-box{border:1px solid #d7e2f2;border-radius:16px;padding:14px;background:#fff;display:grid;place-items:center;min-height:120px;margin-bottom:12px}.signature-preview-box img{max-width:100%;height:auto}.signature-list{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:16px}.signature-card{background:#fff;border:1px solid #d8e2f1;border-radius:16px;padding:12px;display:grid;gap:8px}.signature-meta{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;color:#5b5e66}.signature-preview{width:100%;height:auto;border:1px solid #dbe5f2;border-radius:8px;background:#fff}.admin-form{display:grid;gap:12px;margin-bottom:16px}.checkbox{flex-direction:row;align-items:center;gap:8px}.badge{background:#334155;color:#fff;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.01em;margin-left:8px}.badge.status-customer-pending{background:#ca8a04}.badge.status-landlord-pending{background:#2563eb}.badge.status-completed{background:#059669}.field-error{color:#7f1d1d;font-size:.85rem}.mail-logs{margin-top:16px}.mail-log-grid{display:grid;gap:10px}.mail-log{background:#fff;border:1px solid #dbe5f2;border-radius:16px;padding:10px;display:grid;gap:4px}.mail-log.sent{border-color:#1f7a55}.mail-log.failed{border-color:#7f1d1d}.mail-error{color:#7f1d1d;font-size:.85rem}@media (max-width: 960px){.workspace{grid-template-columns:1fr}.docs-sidebar{position:static}.doc-list li{flex-direction:column}.doc-delete{width:100%}.app{padding:20px}}@media print{.overlay,.toolbar,.actions,.share-panel,.menu-bar,.toast-stack,.upload,.doc-list,.admin,.sign-hint{display:none!important}.app{padding:0}.card{box-shadow:none;border:none;padding:0}}
