*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!m-0{margin:0!important}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.\!mb-0{margin-bottom:0!important}.\!mb-1{margin-bottom:.25rem!important}.\!mb-2{margin-bottom:.5rem!important}.\!mb-3{margin-bottom:.75rem!important}.\!mb-4{margin-bottom:1rem!important}.\!mt-0{margin-top:0!important}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.\!h-auto{height:auto!important}.min-h-screen{min-height:100vh}.\!w-\[42\%\]{width:42%!important}.\!w-\[58\%\]{width:58%!important}.w-12{width:3rem}.w-16{width:4rem}.w-36{width:9rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[140px\]{min-width:140px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.cursor-pointer{cursor:pointer}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.\!rounded-lg{border-radius:.5rem!important}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-purple-100{--tw-border-opacity: 1;border-color:rgb(243 232 255 / var(--tw-border-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-50\/80{background-color:#f9fafbcc}.bg-purple-50\/40{background-color:#faf5ff66}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-emerald-600{--tw-gradient-from: #059669 var(--tw-gradient-from-position);--tw-gradient-to: rgb(5 150 105 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-teal-600{--tw-gradient-to: rgb(13 148 136 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0d9488 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-600{--tw-gradient-to: #0891b2 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.\!p-0{padding:0!important}.p-3{padding:.75rem}.p-4{padding:1rem}.\!px-0{padding-left:0!important;padding-right:0!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.\!py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.\!leading-normal{line-height:1.5!important}.\!leading-snug{line-height:1.375!important}.leading-none{line-height:1}.leading-snug{line-height:1.375}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-tight{letter-spacing:-.025em}.\!text-gray-500{--tw-text-opacity: 1 !important;color:rgb(107 114 128 / var(--tw-text-opacity, 1))!important}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--signops-page-bg: #f3f4f6;--signops-surface-bg: #ffffff;--signops-section-bg: #f9fafb;--signops-section-strong: #f3f4f6;--signops-border: #e5e7eb}body{margin:0;min-height:100vh;background:var(--signops-page-bg);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{font-size:16px}.signops-page-bg{background:var(--signops-page-bg)}.ant-layout-sider-collapsed .signops-sider-username{display:none}.ant-layout-sider-collapsed .signops-sider-brand{padding-inline:12px;text-align:center}.ant-layout-sider-collapsed .signops-sider-logo .signops-logo-text{display:none}.ant-layout-sider-collapsed .signops-sider-logo .signops-logo-row{justify-content:center}.signops-logo-mark{filter:drop-shadow(0 6px 14px rgba(5,150,105,.22))}.signops-login-shell{background:radial-gradient(circle at top right,rgba(16,185,129,.12),transparent 28%),radial-gradient(circle at bottom left,rgba(15,23,42,.06),transparent 32%),#fff}.ant-card{border-color:var(--signops-border);box-shadow:0 1px 2px #0f172a0a}.ant-card-head{border-bottom-color:var(--signops-border);min-height:48px}.ant-card-head-title{font-weight:600;color:#374151}.ant-tabs-nav{margin-bottom:0!important}.ant-tabs-nav:before{border-bottom-color:var(--signops-border)!important}.ant-table-thead>tr>th{font-weight:600;white-space:nowrap}.ant-table-summary>tr>td{background:var(--signops-section-bg)}.ant-descriptions-bordered .ant-descriptions-item-label{font-weight:500;color:#4b5563}.signops-stat-card .ant-card-body{background:var(--signops-surface-bg)}.workflow-stepper-card.ant-card{box-shadow:none}.signops-worker-content .ant-card{border-radius:10px}.signops-worker-page-with-action{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}.signops-worker-page-with-validation{padding-bottom:calc(220px + env(safe-area-inset-bottom,0px))}.signops-worker-action-bar{position:fixed;left:0;right:0;bottom:0;z-index:100;max-width:32rem;margin:0 auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--signops-border);box-shadow:0 -4px 12px #0f172a14;max-height:min(70vh,420px);overflow-y:auto}.work-due-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;padding:10px 12px;border-radius:10px;font-size:15px}.work-due-banner--compact{margin-bottom:0;font-size:14px;padding:8px 10px}.work-due-banner--normal{background:#f3f4f6;color:#374151;border:1px solid var(--signops-border)}.work-due-banner--today{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.work-due-banner--urgent{background:#fff1f2;color:#be123c;border:1px solid #fda4af}.work-due-banner--critical{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}.work-design-preview-root,.work-design-preview-root .ant-image{display:block;width:100%}.work-design-preview-img{width:100%;max-height:280px;-o-object-fit:contain;object-fit:contain;background:#f9fafb;border:1px solid var(--signops-border)}.work-design-preview--file a{color:#374151;text-decoration:none}.validation-panel-action-bar .ant-alert{font-size:13px}.validation-panel-action-bar-issues{margin-bottom:4px!important}.bom-table--worker .bom-col-category{width:22%}.bom-table--worker .bom-col-name{width:48%}.bom-table--worker .bom-col-qty{width:30%}.worker-header-icon-btn{min-width:44px!important;min-height:44px!important;padding-inline:8px!important}.worker-header-search .ant-input-search-button{min-height:44px}.worker-notification-popover{width:min(92vw,320px);max-height:360px;overflow-y:auto}.worker-notification-item{width:100%;border:none;background:transparent;padding:0;cursor:pointer;text-align:left}.worker-notification-item:disabled{cursor:default}.worker-notification-item:not(:disabled):hover .ant-typography{color:#1677ff}.work-list-sort-filter{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%}.work-list-sort-filter .ant-radio-button-wrapper{width:100%;height:44px;min-height:44px;margin:0!important;padding-inline:4px;display:inline-flex;align-items:center;justify-content:center;line-height:1.2;font-size:16px}.workflow-stepper-card .ant-card-body{overflow-x:auto;padding:8px 8px 6px!important}.workflow-stepper{width:100%}.workflow-stepper-track{display:grid;grid-template-columns:repeat(var(--workflow-step-count, 6),minmax(0,1fr));align-items:start}.workflow-stepper-step{position:relative;min-width:0}.workflow-stepper-step:not(:last-child):after{content:"";position:absolute;top:11px;left:calc(50% + 12px);right:calc(-50% + 12px);height:2px;background:var(--signops-border);z-index:0}.workflow-stepper--compact .workflow-stepper-step:not(:last-child):after{top:9px;left:calc(50% + 10px);right:calc(-50% + 10px)}.workflow-stepper-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 2px}.workflow-stepper-icon{width:24px;height:24px;border-radius:9999px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;line-height:1;background:var(--signops-surface-bg);border:2px solid var(--signops-border);color:#9ca3af}.workflow-stepper--compact .workflow-stepper-icon{width:20px;height:20px;font-size:11px}.workflow-stepper-icon--finish,.workflow-stepper-icon--process{background:#16a34a;border-color:#16a34a;color:#fff}.workflow-stepper-label{width:100%;text-align:center;font-size:15px;line-height:1.35;color:#9ca3af;word-break:keep-all}.workflow-stepper--compact .workflow-stepper-label{font-size:14px}.workflow-stepper-label--process{font-weight:600;color:#374151}.workflow-stepper-label--finish{color:#4b5563}.workflow-step-memo-readonly.ant-input[disabled]{color:#374151;background:var(--signops-section-bg);cursor:default}.workflow-step-advance-btn{height:48px!important;min-height:48px;font-size:16px}.workflow-step-memo .rounded-lg.border-green-400{border-color:#86efac;background:#f0fdf4}.description-edit-table .ant-descriptions-item-content{vertical-align:middle}.info-table{width:100%;border-collapse:collapse;table-layout:fixed;background:var(--signops-surface-bg);border:1px solid var(--signops-border);border-radius:8px;overflow:hidden}.info-table th,.info-table td{border:1px solid var(--signops-border);padding:8px 12px;font-size:14px;vertical-align:middle;word-break:break-word}.info-table th{width:110px;background:var(--signops-section-bg);font-weight:500;color:#4b5563;text-align:left}.info-table td{background:var(--signops-surface-bg);color:#111827}.info-table-empty{background:var(--signops-surface-bg)}.info-table-editable .ant-input,.info-table-editable .ant-input-number,.info-table-editable .ant-select,.info-table-editable .ant-picker{width:100%}.info-table-editable .ant-form-item{margin-bottom:0}.bom-table-wrap{border:1px solid var(--signops-border);border-radius:8px;background:var(--signops-surface-bg);overflow:hidden}.bom-table{width:100%;border-collapse:collapse;table-layout:fixed}.bom-table th,.bom-table td{border-bottom:1px solid var(--signops-border);padding:10px 12px;font-size:14px;vertical-align:middle;word-break:break-word}.bom-table thead th{background:var(--signops-section-bg);font-weight:600;color:#374151;text-align:left;border-bottom-width:2px}.bom-table tbody tr:last-child td{border-bottom:none}.bom-table tbody tr.bom-item-even td{background:#fff}.bom-table tbody tr.bom-item-odd td{background:#f3f6f9}.bom-table tbody tr.bom-item-even:hover td,.bom-table tbody tr.bom-item-even:hover+tr.bom-note-row.bom-item-even td,.bom-table tbody tr.bom-note-row.bom-item-even:hover td{background:#f0fdf4}.bom-table tbody tr.bom-item-odd:hover td,.bom-table tbody tr.bom-item-odd:hover+tr.bom-note-row.bom-item-odd td,.bom-table tbody tr.bom-note-row.bom-item-odd:hover td{background:#e7f2f2}.bom-col-category,.bom-col-name,.bom-col-qty,.bom-col-price,.bom-col-amount{width:20%}.bom-col-category{text-align:center}.bom-col-name{min-width:0}.bom-col-qty,.bom-col-price,.bom-col-amount{text-align:right;white-space:nowrap}.bom-table thead .bom-col-qty,.bom-table thead .bom-col-price,.bom-table thead .bom-col-amount{text-align:right}.bom-item-row td{border-bottom:none}.bom-item-row-single td{border-bottom:1px solid var(--signops-border)}.bom-note-row td{padding-top:0;padding-bottom:10px;color:#6b7280;font-size:13px;border-bottom:1px solid var(--signops-border)}.bom-note-text{display:block;line-height:1.45;word-break:break-word}.bom-col-action{width:40px;text-align:center;padding-inline:4px}.bom-category-cell{vertical-align:middle}.bom-item-name{font-weight:500;color:#111827}.bom-unit{color:#6b7280;font-size:13px}.bom-amount{font-weight:600;color:#111827}.bom-empty{text-align:center;color:#9ca3af;padding:24px 12px!important}.bom-table-summary td{background:var(--signops-section-strong);border-top:2px solid var(--signops-border);border-bottom:none}.bom-table .ant-input,.bom-table .ant-input-number,.bom-table .ant-select{width:100%}.hover\:\!text-gray-800:hover{--tw-text-opacity: 1 !important;color:rgb(31 41 55 / var(--tw-text-opacity, 1))!important}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
