*,:after,:before{box-sizing:border-box}body,html{padding:0;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0f172a;color:#e5e7eb}body{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit}.app-root{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1 1;max-width:1120px;width:100%;margin:0 auto;padding:2rem 1.5rem 3rem}.card{background:radial-gradient(circle at top left,#1d283a,#020617);border-radius:1rem;padding:1.75rem 2rem;box-shadow:0 20px 45px rgba(15,23,42,.9);border:1px solid rgba(148,163,184,.25)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.card-title{font-size:1.25rem;font-weight:600}.card-subtitle{font-size:.875rem;color:#9ca3af}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:999px;border:none;cursor:pointer;font-size:.9rem;font-weight:500;transition:transform .08s ease,box-shadow .08s ease,background .15s ease,color .15s ease}.btn-primary{background:linear-gradient(135deg,#22c55e,#16a34a);color:#022c22;box-shadow:0 10px 30px rgba(34,197,94,.35)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 40px rgba(34,197,94,.4)}.btn-spinner{display:inline-block;width:.9rem;height:.9rem;border-radius:999px;border:2px solid rgba(148,163,184,.5);border-top-color:#22c55e;animation:btn-spin .7s linear infinite}@keyframes btn-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.btn-secondary{background:rgba(15,23,42,.9);color:#e5e7eb;border:1px solid rgba(148,163,184,.6)}.btn-secondary:hover{background:rgba(15,23,42,.95)}.btn-ghost{background:transparent;color:#9ca3af}.btn-ghost:hover{background:rgba(15,23,42,.85);color:#e5e7eb}.btn-danger{background:linear-gradient(135deg,#f97373,#ef4444);color:#111827;box-shadow:0 10px 30px hsla(0,91%,71%,.3)}.btn-danger:hover{box-shadow:0 14px 40px hsla(0,91%,71%,.4)}.btn:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}.input,.select{width:100%;padding:.55rem .75rem;border-radius:.75rem;border:1px solid rgba(148,163,184,.6);background-color:rgba(15,23,42,.95);color:#e5e7eb;font-size:.9rem}.input::placeholder{color:#6b7280}.input:focus{outline:2px solid rgba(34,197,94,.75);outline-offset:1px}.label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-bottom:.25rem}.field{margin-bottom:1rem}.error-text{color:#fecaca;font-size:.8rem;margin-top:.25rem}.skeleton{position:relative;overflow:hidden;background:rgba(15,23,42,.9);border-radius:.5rem}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background-image:linear-gradient(120deg,transparent,rgba(148,163,184,.25),transparent);animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-paragraph{height:.9rem;margin-bottom:.5rem}.skeleton-table{height:8rem;margin-top:1rem}@keyframes skeleton-shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.muted{color:#9ca3af;font-size:.85rem}.table{width:100%;border-collapse:collapse;font-size:.8rem}.table td,.table th{padding:.55rem .5rem;text-align:left;position:relative}.table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;border-bottom:1px solid rgba(148,163,184,.35)}.table tbody tr:nth-child(odd){background:rgba(15,23,42,.75)}.table tbody tr:nth-child(2n){background:rgba(15,23,42,.4)}.table td.dashboard-status-aborted,.table td.dashboard-status-completed,.table td.dashboard-status-in-progress,.table td.dashboard-status-neutral,.table td.dashboard-status-pending{font-weight:600;border-left:3px solid transparent}.table td.dashboard-status-pending{border-left-color:rgba(250,204,21,.75);color:#fde047}.table td.dashboard-status-in-progress{border-left-color:rgba(96,165,250,.75);color:#93c5fd}.table td.dashboard-status-completed{border-left-color:rgba(74,222,128,.75);color:#86efac}.table td.dashboard-status-aborted{border-left-color:hsla(0,91%,71%,.75);color:#fca5a5}.table td.dashboard-status-neutral{border-left-color:rgba(148,163,184,.45);color:#e2e8f0}.table td.col-file,.table th.col-file{max-width:14rem;overflow:hidden}.table td.col-file .col-file-inner{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow-wrap:break-word;overflow:hidden}.table td.col-email,.table th.col-email{max-width:11rem;word-break:break-word;overflow-wrap:break-word;white-space:normal}@media (max-width:900px){.table{font-size:.75rem}.table td.col-file,.table th.col-file{max-width:none}.table td.col-file .col-file-inner{-webkit-line-clamp:1;line-clamp:1;white-space:nowrap}.table td.col-email,.table th.col-email{max-width:none;white-space:nowrap}}.status-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .6rem;border-radius:999px;font-size:.75rem}.status-dot{width:.45rem;height:.45rem;border-radius:999px}.status-pending{background:rgba(248,250,252,.05);color:#fbbf24}.status-pending .status-dot{background:#fbbf24}.status-in-progress{background:rgba(59,130,246,.1);color:#60a5fa}.status-in-progress .status-dot{background:#60a5fa}.status-signed{background:rgba(34,197,94,.12);color:#4ade80}.status-signed .status-dot{background:#22c55e}.status-aborted{background:rgba(239,68,68,.13);color:#fca5a5}.status-aborted .status-dot{background:#ef4444}.status-skipped{background:rgba(148,163,184,.15);color:#94a3b8}.status-skipped .status-dot{background:#94a3b8}.status-completed{background:rgba(34,197,94,.12);color:#bbf7d0}.status-completed .status-dot{background:#22c55e}.status-upload-pending{background:rgba(248,250,252,.05);color:#9ca3af}.status-upload-pending .status-dot{background:#9ca3af}.status-upload-preparing{background:rgba(59,130,246,.1);color:#ebd300}.status-upload-preparing .status-dot{background:#ebd300}.status-upload-ready{background:rgba(34,197,94,.12);color:#4ade80}.status-upload-ready .status-dot{background:#22c55e}.status-upload-error{background:rgba(239,68,68,.13);color:#fecaca}.status-upload-error .status-dot{background:#ef4444}.chip{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;background:rgba(15,23,42,.75);border:1px solid rgba(148,163,184,.6);color:#e5e7eb}.stack-v{flex-direction:column}.stack-h,.stack-v{display:flex;gap:.75rem}.stack-h{flex-direction:row}.stack-h.center{align-items:center}.stack-h.between{justify-content:space-between}.nav{width:100%;border-bottom:1px solid rgba(148,163,184,.3);background:radial-gradient(circle at top left,#020617,#020617)}.nav-inner{max-width:1120px;margin:0 auto;padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav-brand{font-size:1rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.nav-brand-group{min-width:0}.nav-links{display:flex;align-items:center;gap:.5rem}.pill{padding:.2rem .6rem;border-radius:999px;background:rgba(15,23,42,.8);border:1px solid rgba(148,163,184,.4);font-size:.75rem;color:#9ca3af}.page-title{font-size:1.4rem;font-weight:600;margin-bottom:1rem}.page-lead{font-size:.9rem;color:#9ca3af;margin-bottom:1.5rem}.divider{border:none;border-top:1px dashed rgba(148,163,184,.35);margin:1rem 0}.tag{padding:.18rem .55rem;border-radius:999px;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;border:1px solid rgba(148,163,184,.6);color:#9ca3af}.status-badge,.tag{display:inline-flex;align-items:center}.status-badge{gap:.34rem;padding:.16rem .5rem;border-radius:999px;border:1px solid rgba(148,163,184,.22);font-size:.72rem;font-weight:500;line-height:1;letter-spacing:.01em;white-space:nowrap;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.03)}.status-badge-dot{width:.38rem;height:.38rem;border-radius:999px;flex:0 0 auto}.status-badge-label{display:inline-block}.badge-green{background:rgba(22,163,74,.1);border-color:rgba(34,197,94,.32);color:#d1fae5}.badge-green .status-badge-dot{background:#4ade80;box-shadow:0 0 0 2px rgba(74,222,128,.12)}.badge-yellow{background:rgba(234,179,8,.1);border-color:rgba(234,179,8,.32);color:#fef3c7}.badge-yellow .status-badge-dot{background:#facc15;box-shadow:0 0 0 2px rgba(250,204,21,.12)}.badge-red{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.32);color:#fee2e2}.badge-red .status-badge-dot{background:#f87171;box-shadow:0 0 0 2px hsla(0,91%,71%,.12)}.badge-blue{background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.32);color:#dbeafe}.badge-blue .status-badge-dot{background:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.12)}.badge-gray{background:rgba(148,163,184,.1);border-color:rgba(148,163,184,.28);color:#94a3b8}.badge-gray .status-badge-dot{background:#94a3b8;box-shadow:0 0 0 2px rgba(148,163,184,.1)}.small{font-size:.8rem}.ui-checkbox-label{display:inline-flex;align-items:center;gap:.65rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ui-checkbox-input{position:absolute;opacity:0;pointer-events:none}.ui-checkbox-box{width:1.05rem;height:1.05rem;flex:0 0 auto;border-radius:.32rem;border:1px solid rgba(148,163,184,.45);background:rgba(15,23,42,.95);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.03);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .08s ease;position:relative}.ui-checkbox-box:after{content:"";position:absolute;left:.31rem;top:.14rem;width:.28rem;height:.5rem;border-right:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(45deg) scale(.8);opacity:0;transition:opacity .15s ease,transform .15s ease,border-color .15s ease}.ui-checkbox-text{color:#e5e7eb;font-size:.9rem;line-height:1.35}.ui-checkbox-label:hover .ui-checkbox-box{border-color:rgba(74,222,128,.5);box-shadow:0 0 0 3px rgba(34,197,94,.08)}.ui-checkbox-input:focus-visible+.ui-checkbox-box{outline:2px solid rgba(34,197,94,.65);outline-offset:2px}.ui-checkbox-input:checked+.ui-checkbox-box{background:linear-gradient(135deg,rgba(34,197,94,.28),rgba(22,163,74,.4));border-color:rgba(74,222,128,.75);box-shadow:0 0 0 3px rgba(34,197,94,.12)}.ui-checkbox-input:checked+.ui-checkbox-box:after{opacity:1;transform:rotate(45deg) scale(1);border-color:#dcfce7}.ui-file-input{width:100%;padding:.35rem;border-radius:.85rem;border:1px solid rgba(148,163,184,.4);background:rgba(15,23,42,.92);color:#cbd5e1;font-size:.9rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.ui-file-input:hover{border-color:rgba(74,222,128,.35)}.ui-file-input:focus{outline:none;border-color:rgba(74,222,128,.65);box-shadow:0 0 0 3px rgba(34,197,94,.12)}.ui-file-input::-webkit-file-upload-button{margin-right:.8rem;padding:.55rem .95rem;border:1px solid rgba(34,197,94,.38);border-radius:.7rem;background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(22,163,74,.3));color:#dcfce7;font-size:.82rem;font-weight:600;cursor:pointer;-webkit-transition:background .15s ease,border-color .15s ease,transform .08s ease,color .15s ease;transition:background .15s ease,border-color .15s ease,transform .08s ease,color .15s ease}.ui-file-input::file-selector-button{margin-right:.8rem;padding:.55rem .95rem;border:1px solid rgba(34,197,94,.38);border-radius:.7rem;background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(22,163,74,.3));color:#dcfce7;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .08s ease,color .15s ease}.ui-file-input::-webkit-file-upload-button:hover{background:linear-gradient(135deg,rgba(34,197,94,.28),rgba(22,163,74,.38));border-color:rgba(74,222,128,.55);transform:translateY(-1px)}.ui-file-input::file-selector-button:hover{background:linear-gradient(135deg,rgba(34,197,94,.28),rgba(22,163,74,.38));border-color:rgba(74,222,128,.55);transform:translateY(-1px)}.link{color:#4ade80;cursor:pointer}.link:hover{text-decoration:underline}.table-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.28rem;min-width:4.35rem;padding:.34rem .72rem;border-radius:.7rem;border:1px solid rgba(148,163,184,.24);background:rgba(15,23,42,.35);color:#e5e7eb;font-size:.74rem;font-weight:600;line-height:1;letter-spacing:.01em;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .08s ease,color .15s ease,box-shadow .15s ease}.table-action-btn:hover{background:rgba(15,23,42,.55);border-color:rgba(74,222,128,.34);color:#f8fafc;box-shadow:inset 0 0 0 1px rgba(74,222,128,.08);transform:translateY(-1px);text-decoration:none}.table-action-btn-arrow{color:#4ade80;font-size:.9em;line-height:1}.dashboard-tabs{display:flex;width:100%;gap:.35rem;margin-bottom:.9rem;padding:.2rem;border-radius:999px;background:rgba(15,23,42,.7);border:1px solid rgba(148,163,184,.35)}.dashboard-tab{flex:1 1;border:1px solid transparent;background:transparent;color:#cbd5e1;border-radius:999px;padding:.3rem .8rem;font-size:.78rem;cursor:pointer;text-align:center}.dashboard-tab.active{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.55);color:#dcfce7}.dashboard-row-actions{display:inline-flex;align-items:center;gap:.35rem;position:relative;z-index:20}.table td.dashboard-actions-cell{width:1%;white-space:nowrap;text-align:left}.table td.dashboard-created-cell{width:1%;white-space:nowrap}.row-action-menu-wrap{position:relative}.row-action-archive-btn{width:1.35rem;height:1.35rem;border-radius:.35rem;border:1px solid rgba(148,163,184,.35);background:rgba(15,23,42,.6);color:#cbd5e1;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.row-action-archive-btn:hover{border-color:rgba(74,222,128,.45);color:#dcfce7}.row-action-archive-icon{width:.82rem;height:.82rem}.row-action-menu-btn{width:1.45rem;height:1.45rem;border-radius:999px;background:rgba(15,23,42,.6);color:#cbd5e1;font-size:.95rem;line-height:1;cursor:pointer;padding:0}.row-action-menu,.row-action-menu-btn{border:1px solid rgba(148,163,184,.35)}.row-action-menu{position:absolute;min-width:8rem;background:#0b1220;border-radius:.5rem;box-shadow:0 10px 25px rgba(2,6,23,.7);overflow:hidden;z-index:2000}.row-action-menu-floating{position:fixed;transform:translateX(-100%)}.row-action-menu-item{width:100%;text-align:left;border:0;background:transparent;color:#e5e7eb;font-size:.75rem;padding:.45rem .55rem;cursor:pointer}.row-action-menu-item:hover{background:rgba(148,163,184,.12)}.row-action-menu-item.danger{color:#fca5a5}.signed-metric{display:inline-flex;flex-direction:column;gap:.32rem;min-width:3.1rem}.signed-metric-count{display:inline-flex;align-items:baseline;gap:.1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.signed-metric-value{color:#f8fafc;font-size:.88rem;font-weight:700}.signed-metric-separator,.signed-metric-total{color:#94a3b8;font-size:.76rem;font-weight:600}.signed-metric-bar{display:block;width:100%;height:.28rem;border-radius:999px;overflow:hidden;background:rgba(148,163,184,.16)}.signed-metric-bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#4ade80)}.dashboard-loading-cell{text-align:center}.dashboard-spinner-wrap{width:100%;min-height:16rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:1rem 0}.dashboard-spinner{width:3rem;height:3rem;border-radius:999px;border:4px solid rgba(148,163,184,.35);border-top-color:#4ade80;box-shadow:0 0 0 6px rgba(74,222,128,.08);animation:dashboard-spin .75s linear infinite}@keyframes dashboard-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.8);display:flex;align-items:center;justify-content:center;z-index:40}.modal{width:100%;max-width:420px;background:radial-gradient(circle at top left,#020617,#020617);border-radius:.9rem;border:1px solid rgba(148,163,184,.35);padding:1.25rem 1.5rem;box-shadow:0 20px 45px rgba(15,23,42,.9)}.modal-title{font-size:1rem;font-weight:600;margin-bottom:.4rem}.modal-description{font-size:.85rem;color:#9ca3af;margin-bottom:.9rem}@media (max-width:768px){.card{padding:1rem;width:100%}.app-main{padding:1rem .75rem 2rem}.nav-inner{padding:.75rem;flex-direction:column;align-items:stretch;gap:.75rem}.nav-brand-group{flex-direction:column;align-items:flex-start;gap:.4rem}.nav-brand{font-size:.95rem;letter-spacing:.06em;line-height:1.1}.pill.small{font-size:.7rem}.nav-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.5rem;gap:.5rem;width:100%}.nav-links>*{min-width:0}.nav-links .btn{width:100%;min-width:0;padding:.55rem .5rem;font-size:.8rem}.dashboard-card-header{flex-direction:column;align-items:stretch;gap:.85rem}.dashboard-card-header>a{width:100%}.dashboard-create-btn{width:100%;justify-content:center;padding:.7rem .9rem;box-shadow:0 8px 20px rgba(34,197,94,.2)}.batch-overview-header{flex-direction:column;align-items:stretch;gap:.85rem}.batch-overview-meta{flex-wrap:wrap;align-items:flex-start!important}.batch-overview-actions{width:100%;justify-content:stretch;flex-wrap:wrap}.batch-overview-actions>*{flex:1 1;min-width:0}.batch-overview-actions .btn{width:100%}.batch-signing-order-header{flex-direction:column;align-items:flex-start;gap:.75rem}.batch-signing-order-options{flex-direction:column;align-items:stretch}.batch-signing-order-options .btn{width:100%;justify-content:center;padding-inline:.9rem!important}.batch-signing-order-save{text-align:left!important}.batch-signing-order-save .btn{width:100%}.batch-live-overview-actions{flex-direction:column;align-items:stretch;gap:.65rem}.batch-live-overview-actions .btn{width:100%;justify-content:center}.batch-live-overview-actions code{display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.dashboard-tabs{display:flex;width:100%}.dashboard-tab{flex:1 1;text-align:center;padding:.5rem .75rem}}@media (max-width:520px){.nav-links{grid-template-columns:1fr}.nav-links .btn{justify-content:center}}