:root{--ground: #F1F7F9;--ground-2: #E6F1F4;--surface: #FFFFFF;--ink-900: #0E2A3D;--ink-800: #123448;--ink-700: #274A5C;--ink-600: #3F5C6B;--ink-500: #5F7885;--ink-400: #90A4AD;--line: #DBE7EB;--line-2: #EAF1F4;--brand-800: #0A6E9A;--brand-700: #0B84B4;--brand-600: #0AA6D2;--brand-500: #06C6EE;--brand-400: #3AD3F0;--brand-soft:#D9F4FC;--brand-ring: rgba(6,198,238,.24);--brand-blue:#0873BC;--deep-900: #0C2536;--deep-800: #0E2A3D;--deep-700: #12455C;--ok-700:#127A5B;--ok-600:#1B9B72;--ok-soft:#DCF3EA;--warn-700:#9A6212;--warn-soft:#F6EBD5;--err-700:#B4322E;--err-soft:#FBE4E2;--info-700:#1C6C8A;--info-soft:#DFF1F6;--r-xs: 6px;--r-sm: 8px;--r: 12px;--r-lg: 14px;--r-pill: 999px;--shadow-xs: 0 1px 2px rgba(14,42,61,.06);--shadow-sm: 0 2px 8px rgba(14,42,61,.07);--shadow-md: 0 14px 30px -14px rgba(14,42,61,.2);--shadow-lg: 0 30px 60px -24px rgba(12,37,54,.35);--ring: 0 0 0 3px var(--brand-ring);--font-display: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink-800);background:radial-gradient(1100px 460px at 92% -10%,#d9eff3,#d9eff300 55%),radial-gradient(900px 460px at -8% 0%,#e2f0f4,#e2f0f400 48%),var(--ground);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:15px;line-height:1.58}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--ink-900)}p{margin:0}a{color:var(--brand-700);text-decoration:none}code,.mono{font-family:var(--mono)}::selection{background:var(--brand-soft)}.app{min-height:100%;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,#0e2a3d,#0c2536);color:#eaf6f8;border-bottom:2px solid var(--brand-500)}.appbar-inner{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:10px;flex:none;background:linear-gradient(160deg,#123a4e,#0a2536);display:grid;place-items:center;color:#2fd3ec;box-shadow:inset 0 0 0 1px #2fd3ec59,0 0 18px -4px #2fd3ec80}.brand-name{font-family:var(--font-display);font-size:18px;font-weight:700;line-height:1.1;color:#fff;letter-spacing:-.01em}.brand-sub{font-size:10.5px;color:#7fc4d0;letter-spacing:.16em;text-transform:uppercase;margin-top:3px}.appbar-spacer{flex:1}.trust-row{display:flex;gap:8px}.trust-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#bee4ea;font-weight:500;padding:6px 12px;border-radius:var(--r-pill);background:#3ec3d614;border:1px solid rgba(62,195,214,.2)}.lang-toggle{display:inline-flex;border:1px solid rgba(62,195,214,.28);border-radius:var(--r-pill);overflow:hidden}.lang-toggle button{background:transparent;border:0;color:#9fd3dd;font:inherit;font-size:12px;font-weight:700;letter-spacing:.04em;padding:6px 11px;cursor:pointer;transition:.15s ease}.lang-toggle button:hover{color:#dff3f7}.lang-toggle button.active{background:var(--brand-500);color:#052a31}@media (max-width: 720px){.trust-row{display:none}}.container{max-width:1120px;margin:0 auto;padding:34px 24px 60px;width:100%}.page-head{margin-bottom:24px}.page-title{font-size:29px;font-weight:700;letter-spacing:-.025em}.page-sub{color:var(--ink-500);margin-top:6px;font-size:15px}.grid{display:grid;gap:22px}.grid-main{grid-template-columns:minmax(0,1fr) 366px;align-items:start}@media (max-width: 900px){.grid-main{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:24px}.card-hd{padding:17px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px}.card-hd h3{font-size:16px;font-weight:700}.card-hd .card-hd-ico{color:var(--brand-600);display:grid;place-items:center}.stepper{display:flex;gap:10px;margin-bottom:24px;flex-wrap:wrap}.step{display:flex;align-items:center;gap:10px;padding:9px 15px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);color:var(--ink-500);font-weight:600;font-size:13.5px;box-shadow:var(--shadow-xs)}.step-num{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:var(--ground-2);color:var(--ink-500);font-size:11px;font-weight:700;font-family:var(--mono)}.step.active{color:var(--brand-700);border-color:var(--brand-400);background:var(--brand-soft)}.step.active .step-num{background:var(--brand-600);color:#fff}.step.done{color:var(--ok-700);border-color:#bee6d6}.step.done .step-num{background:var(--ok-600);color:#fff}.dropzone{position:relative;display:block;cursor:pointer;border:1.5px dashed var(--brand-400);border-radius:var(--r);background:linear-gradient(180deg,#fff,#eef9fb);padding:34px 22px;text-align:center;transition:.15s ease}.dropzone:hover{border-color:var(--brand-600);background:var(--brand-soft)}.dropzone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.dz-ico{width:48px;height:48px;margin:0 auto 12px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-700)}.dz-title{font-weight:700;color:var(--ink-900);font-size:16px}.dz-sub{color:var(--ink-500);font-size:13px;margin-top:4px}.doc-stage{background:repeating-linear-gradient(45deg,#e7f1f4 0,#e7f1f4 13px,#dfedf1 13px,#dfedf1 26px);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:grid;place-items:center;min-height:320px}.doc-paper{position:relative;display:inline-block;line-height:0;box-shadow:var(--shadow-md);background:#fff;overflow:hidden;border:1px solid rgba(14,42,61,.08)}.doc-paper canvas{max-width:100%;display:block;cursor:crosshair}.sig-field{position:absolute;border:1.5px solid var(--brand-600);background:#14b0c724;border-radius:5px;display:flex;align-items:flex-end;justify-content:center;padding:3px 5px;font-size:10px;font-weight:700;color:var(--brand-800);font-family:var(--font);box-shadow:0 6px 16px -6px #14b0c78c}.sig-field:before{content:"✒";position:absolute;top:2px;left:5px;font-size:11px}.field{margin-bottom:15px}.label{display:block;font-size:11px;font-weight:600;color:var(--ink-500);margin-bottom:6px;letter-spacing:.09em;text-transform:uppercase}.input,.select{width:100%;font:inherit;color:var(--ink-800);padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;transition:.15s ease;outline:none}.input::placeholder{color:var(--ink-400)}.input:focus,.select:focus{border-color:var(--brand-500);box-shadow:var(--ring)}.row{display:flex;gap:10px}.row>*{flex:1}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 24px;border-bottom:1px solid var(--line);background:var(--bg-50, #fafbfc)}.filter-bar .fb-item{display:flex;flex-direction:column;gap:5px;min-width:150px}.filter-bar .fb-item.grow{flex:1 1 220px}.filter-bar .label{margin-bottom:0}.filter-bar .input,.filter-bar .select{padding:8px 11px;font-size:14px}.filter-bar .fb-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.filter-bar .fb-count{font-size:12px;color:var(--ink-500);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;cursor:pointer;border:1px solid transparent;padding:11px 18px;border-radius:var(--r-sm);transition:.15s ease;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{color:#fff;border:0;background:linear-gradient(135deg,#14c6ec,#0a84be);box-shadow:0 8px 18px -8px #0a84bebf,inset 0 1px #ffffff4d}.btn-primary:not(:disabled):hover{background:linear-gradient(135deg,#2ed0f2,#0b76ac);transform:translateY(-1px)}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink-700);box-shadow:var(--shadow-xs)}.btn-ghost:not(:disabled):hover{border-color:var(--brand-400);color:var(--brand-700);background:var(--brand-soft)}.btn-lg{padding:14px 22px;font-size:15.5px;border-radius:var(--r)}.btn-block{width:100%}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 11px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.06em}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-draft{background:var(--ground-2);color:var(--ink-500)}.badge-process{background:var(--warn-soft);color:var(--warn-700)}.badge-signed{background:var(--ok-soft);color:var(--ok-700)}.badge-rejected{background:var(--err-soft);color:var(--err-700)}.tabs{display:flex;gap:4px;margin-bottom:22px;border-bottom:1px solid var(--line)}.tabs button{font:inherit;font-weight:600;font-size:14px;cursor:pointer;background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-500);padding:10px 16px;margin-bottom:-1px;transition:.15s ease}.tabs button:hover{color:var(--brand-700)}.tabs button.active{color:var(--brand-700);border-bottom-color:var(--brand-500)}.table-wrap{overflow-x:auto}.dtable{width:100%;border-collapse:collapse;font-size:13.5px}.dtable th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-400);padding:0 12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.dtable td{padding:12px;border-bottom:1px solid var(--line-2);vertical-align:middle}.dtable tr:last-child td{border-bottom:0}.dtable tbody tr:hover{background:var(--ground)}.dtable .num{text-align:center}.dt-name{font-weight:600;color:var(--ink-800);word-break:break-word}.dt-sub{font-size:12px;color:var(--ink-500);margin-top:3px;white-space:nowrap}.dt-actions{display:flex;gap:6px;justify-content:flex-end}.dt-actions .btn{flex:none;padding:6px 10px;font-size:12px}.btn.is-disabled{opacity:.45;pointer-events:none}.link-btn{font:inherit;background:none;border:0;cursor:pointer;color:var(--brand-700);font-weight:600}.link-btn:hover{text-decoration:underline}.signers-row>td{background:var(--ground);padding:14px 16px}.sg-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-400);margin-bottom:10px}.sg-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2)}.sg-row:last-child{border-bottom:0}.sg-num{width:22px;height:22px;border-radius:50%;background:var(--brand-600);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}.sg-id{min-width:200px}.sg-name{font-weight:600;color:var(--ink-800);font-size:13px}.sg-state{flex:1;font-size:12px}.sg-turn{color:var(--warn-700);background:var(--warn-soft);padding:3px 9px;border-radius:var(--r-pill);font-weight:600}.sg-signed{color:var(--ok-700);display:inline-flex;align-items:center;gap:5px}.sg-ok{color:var(--ok-700);font-size:12px;font-weight:600}.sg-actions{display:flex;gap:6px}.sg-actions .btn{flex:none;padding:5px 9px;font-size:11.5px}.alert{border-radius:var(--r-sm);padding:12px 14px;font-size:13.5px;display:flex;gap:10px;align-items:flex-start}.alert-error{background:var(--err-soft);color:var(--err-700);border:1px solid #F1C9C6}.alert-success{background:var(--ok-soft);color:var(--ok-700);border:1px solid #BEE6D6}.alert-info{background:var(--info-soft);color:var(--info-700);border:1px solid #C4E4EC}.hash{font-family:var(--mono);font-size:12px;color:var(--ink-600);background:var(--ground-2);padding:2px 7px;border-radius:5px}.meta{color:var(--ink-500);font-size:13px}.divider{height:1px;background:var(--line);margin:18px 0}.copybox{display:flex;gap:8px;align-items:center;background:var(--ground-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}.copybox code{font-size:11.5px;word-break:break-all;color:var(--ink-700)}.hint{color:var(--ink-500);font-size:12.5px;margin-top:8px}.tag-req{color:var(--brand-600)}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.pager-label{font-size:13px;color:var(--ink-600);font-weight:600;font-variant-numeric:tabular-nums;min-width:120px;text-align:center}.pager .btn{padding:7px 13px;font-size:13px}.help{margin-top:14px;font-size:12.5px;color:var(--ink-500);text-align:left}.help>summary{cursor:pointer;color:var(--brand-700);font-weight:600;list-style:none;display:inline-flex;align-items:center;gap:7px}.help>summary::-webkit-details-marker{display:none}.help>summary:before{content:"?";display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--brand-soft);color:var(--brand-700);font-size:11px;font-weight:700}.help[open]>summary{margin-bottom:8px}.help ul{margin:0;padding-left:20px;line-height:1.75}.signer-wrap{max-width:560px;margin:14px auto}.signer-hero{text-align:center;margin-bottom:20px}.lock-badge{width:62px;height:62px;margin:0 auto 16px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#14c6ec,#0a84be);color:#fff;box-shadow:0 14px 30px -12px #0a84be99,inset 0 0 0 1px #ffffff40}.otp-input{text-align:center;font-family:var(--mono);font-size:26px;letter-spacing:12px;font-weight:600;padding:14px}.success-check{width:74px;height:74px;margin:0 auto 18px;border-radius:50%;background:var(--ok-soft);color:var(--ok-600);display:grid;place-items:center;box-shadow:inset 0 0 0 2px #bee6d6}.footer{margin-top:auto;border-top:1px solid var(--line);background:#ffffffb3}.footer-inner{max-width:1120px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--ink-500);font-size:12.5px}.footer-dot{width:4px;height:4px;border-radius:50%;background:var(--brand-500)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fade .35s ease both}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.fade-in,.spin{animation:none}}.auth-wrap{display:grid;place-items:center;min-height:60vh;padding:24px 0}.auth-card{width:100%;max-width:400px}.auth-head{text-align:center;margin-bottom:18px}.auth-ico{width:44px;height:44px;margin:0 auto 10px;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#14c6ec,#0a84be);box-shadow:0 8px 18px -8px #0a84bebf}.auth-title{font-size:20px;color:var(--ink-900);margin:0 0 4px}.auth-sub{color:var(--ink-500);font-size:13.5px;margin:0}.code-input{text-align:center;font-family:var(--mono);font-size:26px;letter-spacing:12px;font-weight:700}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:20px}.kpi-row .kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 10px;text-align:center;box-shadow:var(--shadow-xs)}.kpi .n{font-size:21px;font-weight:800;color:var(--brand-700);line-height:1.2}.kpi .t{font-size:10.5px;color:var(--ink-500);text-transform:uppercase;letter-spacing:.05em;margin-top:3px}.qbar{height:5px;background:var(--ground-2);border-radius:4px;overflow:hidden;margin-top:4px;max-width:120px}.qbar-fill{height:100%;background:linear-gradient(90deg,#14c6ec,#0a84be);transition:width .2s ease}.create-box{background:var(--ground);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;margin-bottom:14px}.create-box .input{flex:1;min-width:150px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;padding:20px;z-index:50}.modal{background:#fff;border-radius:var(--r-md, 12px);border:1px solid var(--line);width:100%;max-width:460px;padding:22px;box-shadow:0 20px 50px #00000040}.modal-title{font-size:17px;font-weight:700;margin-bottom:4px}.modal-sub{font-size:13px;color:var(--ink-500);margin-bottom:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.session-chip{display:flex;align-items:center;gap:8px;margin-right:6px}.session-chip .session-name{font-weight:600;font-size:13px}.session-chip .session-role{font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:#ffffff1f}.session-id{display:flex;flex-direction:column;line-height:1.15}.session-id .session-tenant{font-size:11px;opacity:.8}
