:root{--primary: #0f3a5c;--primary-dark: #0a2740;--accent: #e8a33d;--bg: #f6f7fb;--text: #1f2937;--muted: #6b7280;--border: #e5e7eb;--danger: #b91c1c;--success: #166534;--warning: #b45309}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:Segoe UI,Tahoma,sans-serif;background:var(--bg);color:var(--text)}html,body{overflow-x:hidden;max-width:100%}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}.btn{display:inline-block;padding:8px 16px;border-radius:6px;border:1px solid var(--primary);background:var(--primary);color:#fff;font-weight:500}.btn:hover{background:var(--primary-dark)}.btn-secondary{background:#fff;color:var(--primary)}.btn-secondary:hover{background:#eef3f8}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:#d3911e}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:#991b1b}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary)}label{font-weight:500;font-size:13px;color:var(--muted);display:block;margin-bottom:4px}.form-row{margin-bottom:14px}.card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000000f;margin-bottom:16px;max-width:100%}.card>table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.card h2{margin-top:0;color:var(--primary);border-bottom:2px solid var(--accent);padding-bottom:8px}table{width:100%;border-collapse:collapse;background:#fff;border-radius:6px;overflow:hidden}th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}th{background:var(--primary);color:#fff;font-weight:600;font-size:13px}tr:hover{background:#f9fafb}.badge{padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase}.b-DRAFT{background:#e5e7eb;color:#374151}.b-INITIATED,.b-IN_PROGRESS,.b-NOTIFIED,.b-PENDING,.b-AUTHENTICATED{background:#fef3c7;color:var(--warning)}.b-SIGNED{background:#d1fae5;color:var(--success)}.b-REJECTED,.b-EXPIRED{background:#fee2e2;color:var(--danger)}.alert{padding:12px 16px;border-radius:6px;margin-bottom:14px}.alert-error{background:#fee2e2;color:var(--danger);border:1px solid #fecaca}.alert-success{background:#d1fae5;color:var(--success);border:1px solid #a7f3d0}.alert-info{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.app-shell{display:flex;min-height:100vh;flex-direction:column}.topbar{background:var(--primary);color:#fff;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}.topbar .brand{font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}.topbar .brand .logo{background:var(--accent);color:var(--primary-dark);width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700}.topbar nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.topbar nav a{color:#fff;margin:0;padding:6px 10px;border-radius:4px;white-space:nowrap}.topbar nav a:hover,.topbar nav a.active{background:var(--primary-dark);text-decoration:none}.topbar .user{display:flex;align-items:center;gap:12px;font-size:14px}.topbar .user .user-link{color:#fff;padding:6px 10px;border-radius:4px;white-space:nowrap}.topbar .user .user-link:hover,.topbar .user .user-link.active{background:var(--primary-dark);text-decoration:none}@media (max-width: 900px){.topbar{padding:10px 12px}.topbar .brand{font-size:15px;flex:1 1 auto;min-width:0}.topbar .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar nav{order:3;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{font-size:14px;padding:6px 8px}.topbar .user .user-name{display:none}.content{padding:16px 12px}}.content{padding:24px;max-width:1200px;margin:0 auto;width:100%}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.kpi{background:#fff;padding:18px;border-radius:8px;border-left:4px solid var(--primary)}.kpi .label{color:var(--muted);font-size:12px;text-transform:uppercase;margin-bottom:6px}.kpi .value{font-size:28px;font-weight:700;color:var(--primary)}.signer-card{display:grid;grid-template-columns:2fr 2fr 2fr 1fr auto;gap:8px;padding:10px;background:#f9fafb;border-radius:6px;margin-bottom:8px;align-items:center}.sign-portal{max-width:1200px;margin:0 auto;padding:16px}.sign-portal .header-bar{background:var(--primary);color:#fff;padding:16px 24px;margin:-16px -16px 16px}.sign-layout{display:grid;grid-template-columns:1fr 380px;gap:16px}.pdf-viewer{background:#2a2a2a;padding:12px;border-radius:8px;min-height:600px}.sign-actions{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000000f}canvas.signature-canvas{border:2px dashed var(--border);border-radius:6px;background:#fff;width:100%;height:180px;display:block}.empty{text-align:center;padding:40px;color:var(--muted)}@media (max-width: 800px){.sign-layout{grid-template-columns:1fr}}
