html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#162033;background:#f4f7fb;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:1180px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.loading,.empty-state{color:#64748b;place-items:center;min-height:100vh;display:grid}.login-screen{background-color:#eef4f8;background-image:linear-gradient(90deg,#14b8a614 1px,#0000 1px),linear-gradient(#14b8a614 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-items:center;min-height:100vh;display:grid}.login-panel{background:#fff;border:1px solid #dbe4f0;border-radius:8px;gap:18px;width:420px;padding:32px;display:grid;box-shadow:0 24px 70px #0f172a1f}.brand-row,.app-header,.timeline-head,.asset-item,.signing-record,.member-item{align-items:center;display:flex}.brand-row{color:#0f766e;gap:10px;font-weight:800}.login-panel h1{margin:2px 0 4px;font-size:30px;line-height:1.18}.login-panel label{color:#40516a;gap:10px;font-size:14px;line-height:1.3}.login-panel .ant-input,.login-panel .ant-input-affix-wrapper{border-radius:8px;min-height:44px}.login-panel .ant-btn{border-radius:8px;height:44px;font-weight:800}label{color:#475569;gap:8px;font-size:14px;font-weight:700;display:grid}input,select,textarea{color:#162033;background:#fff;border:1px solid #cbd5e1;border-radius:7px;outline:none;width:100%;padding:10px 12px}input[type=checkbox]{width:auto}textarea{resize:vertical}.primary-button{color:#fff;background:#0f766e;border:0;border-radius:7px;justify-content:center;align-items:center;padding:11px 16px;font-weight:800;text-decoration:none;display:inline-flex}.primary-button.compact{justify-self:start}.form-error{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:7px;padding:10px 12px}.form-success{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:7px;padding:10px 12px}.app-shell{grid-template-columns:430px 1fr;min-height:100vh;display:grid}.sidebar{background:#fff;border-right:1px solid #dbe4f0;height:100vh;padding:22px;position:sticky;top:0;overflow:auto}.app-header{justify-content:space-between;gap:16px;margin-bottom:16px}.app-header p{color:#0f766e;margin:0 0 4px;font-weight:800}.app-header h1{margin:0;font-size:24px}.icon-button{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:7px;place-items:center;width:40px;height:40px;display:grid}.icon-button.danger{color:#b91c1c;border-color:#fecaca}.user-strip{background:#f8fafc;border:1px solid #dbe4f0;border-radius:8px;padding:14px}.user-strip div{gap:4px;display:grid}.user-strip span,.muted-text{color:#64748b}.side-nav{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.nav-button{color:#334155;background:#fff;border:1px solid #dbe4f0;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-weight:800;text-decoration:none;display:inline-flex}.nav-button.active{color:#0e7490;background:#ecfeff;border-color:#0891b2}.stat-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0;display:grid}.stat{background:#fff;border:1px solid #dbe4f0;border-radius:8px;padding:12px}.stat span{color:#64748b;font-size:12px;display:block}.stat strong{margin-top:4px;font-size:24px;display:block}.stat.warn strong{color:#b45309}.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.department-bars,.dashboard-list{gap:10px;display:grid}.department-bar{grid-template-columns:minmax(120px,.8fr) minmax(0,1fr) 36px;align-items:center;gap:10px;display:grid}.department-bar span,.dashboard-row span,.dashboard-row small{color:#64748b;font-size:13px}.department-bar div{background:#e2e8f0;border-radius:999px;height:10px;overflow:hidden}.department-bar i{border-radius:inherit;background:#0891b2;height:100%;display:block}.department-bar strong{text-align:right}.dashboard-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;gap:4px;padding:12px;display:grid}.report-panel{max-width:520px}.report-actions{align-items:center;gap:10px;display:flex}.reminder-list{gap:10px;display:grid}.reminder-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid}.reminder-row div{gap:5px;display:grid}.reminder-row span,.reminder-row p{color:#64748b;font-size:13px}.reminder-row p{margin:0;line-height:1.6}.filters{gap:10px;margin-bottom:14px;display:grid}.search-box{position:relative}.search-box svg{color:#64748b;position:absolute;top:34px;left:12px}.search-box input{padding-left:38px}.project-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.project-row{text-align:left;background:#fff;border:1px solid #dbe4f0;border-radius:8px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:84px;padding:14px;display:grid}.project-row.active{background:#effafe;border-color:#0891b2}.project-index{color:#0891b2;font-weight:900}.project-row-main{gap:4px;min-width:0;display:grid}.project-row-main strong,.project-row-main span,.project-row-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-row-main span{color:#64748b;font-size:13px}.project-row-main small{color:#64748b;font-size:12px}.project-row-main small.overdue{color:#b91c1c;font-weight:900}.status-pill{color:#334155;background:#e2e8f0;border-radius:999px;justify-content:center;align-items:center;min-width:66px;padding:5px 9px;font-size:12px;font-weight:900;display:inline-flex}.status-pill.in_progress,.status-pill.on_track{color:#166534;background:#dcfce7}.status-pill.at_risk{color:#92400e;background:#fef3c7}.status-pill.blocked{color:#991b1b;background:#fee2e2}.status-pill.done{color:#1d4ed8;background:#dbeafe}.status-pill.active-user{color:#166534;background:#dcfce7}.workspace{padding:28px;overflow:auto}.admin-workspace{gap:18px;display:grid}.admin-header{border-bottom:1px solid #dbe4f0;justify-content:space-between;align-items:center;gap:18px;padding-bottom:18px;display:flex}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.admin-header p{color:#0f766e;margin:0 0 6px;font-weight:900}.admin-header h2{letter-spacing:0;margin:0;font-size:34px}.admin-grid{grid-template-columns:minmax(300px,.38fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.create-user-panel{position:sticky;top:20px}.bulk-user-divider{background:#dbe4f0;width:100%;height:1px}.user-list-panel{min-width:0}.user-table{gap:10px;display:grid}.managed-user-row{background:#f8fafc;border:1px solid #dbe4f0;border-radius:7px;grid-template-columns:minmax(220px,1fr) minmax(170px,.45fr) 104px minmax(220px,.55fr);align-items:center;gap:10px;padding:12px;display:grid}.managed-user-row.inactive{opacity:.72}.managed-user-main{gap:4px;min-width:0;display:grid}.managed-user-main strong,.managed-user-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.managed-user-main span{color:#64748b;font-size:13px}.secondary-button{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:40px;font-weight:800;display:inline-flex}.secondary-button.danger{color:#b91c1c;border-color:#fecaca}.secondary-button.success{color:#166534;border-color:#bbf7d0}.password-reset{grid-template-columns:1fr 40px;gap:8px;display:grid}.project-detail{gap:20px;display:grid}.detail-header{border-bottom:1px solid #dbe4f0;justify-content:space-between;gap:24px;padding-bottom:18px;display:flex}.detail-header h2{letter-spacing:0;margin:10px 0;font-size:36px}.detail-header p{color:#475569;max-width:960px;margin:0;font-size:17px;line-height:1.7}.meta-line{color:#0f766e;gap:10px;font-weight:900;display:flex}.meta-line span{background:#ecfdf5;border:1px solid #99f6e4;border-radius:999px;padding:5px 10px}.content-grid{grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);gap:18px;display:grid}.panel,.timeline-section,.asset-section,.signing-section,.audit-section{background:#fff;border:1px solid #dbe4f0;border-radius:8px;padding:18px}.panel{gap:14px;display:grid}.panel h3,.timeline-section h3,.asset-section h3,.signing-section h3,.audit-section h3{align-items:center;gap:8px;margin:0 0 12px;font-size:18px;display:flex}.form-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.check-row{grid-auto-flow:column;justify-content:start;align-items:center;gap:8px;display:inline-flex}.member-list,.asset-list,.timeline,.signing-grid,.audit-list{gap:10px;display:grid}.audit-layout{grid-template-columns:minmax(260px,.28fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.audit-filters{position:sticky;top:20px}.audit-list.compact{gap:8px}.audit-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:12px;display:grid}.audit-item-main{gap:4px;min-width:0;display:grid}.audit-item-main span,.audit-meta,.audit-item p{color:#64748b;font-size:13px}.audit-meta{white-space:nowrap;align-items:start;gap:6px;display:inline-flex}.audit-meta span{background:#fff;border:1px solid #dbe4f0;border-radius:999px;padding:3px 7px}.audit-item p{grid-column:1/-1;margin:0;line-height:1.6}.member-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;justify-content:space-between;gap:12px;padding:12px}.member-item span,.member-item small{color:#64748b}.member-form{background:#f8fafc;border:1px solid #dbe4f0;border-radius:7px;gap:12px;padding:12px;display:grid}.member-form-grid,.member-edit-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.member-edit-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;padding:12px}.member-edit-row label,.member-form label{gap:6px;font-size:12px}.member-actions{justify-content:flex-end;align-items:end;gap:8px;display:flex}.timeline-item{background:#f8fafc;border-left:4px solid #0f766e;border-radius:7px;gap:8px;padding:14px 16px;display:grid}.timeline-head{justify-content:space-between;gap:12px}.inline-actions{align-items:center;gap:8px;display:inline-flex}.progress-edit{border-left-color:#0891b2}.timeline-item p{color:#334155;margin:0;line-height:1.7}.progress-text-block{gap:6px;display:grid}.progress-text-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-text-head>b{color:#223047;font-size:13px}.progress-text-head .ant-btn{height:24px;padding:0;font-size:12px;font-weight:700}.progress-markdown{position:relative}.progress-markdown.is-collapsed{max-height:132px;overflow:hidden}.progress-markdown.is-collapsed:after{background:linear-gradient(#f8fafc00, var(--surface-subtle));content:"";pointer-events:none;height:40px;position:absolute;bottom:0;left:0;right:0}.selected-files{gap:6px;margin-top:2px;display:grid}.selected-file{color:#334155;background:#f8fafc;border:1px solid #dbe4f0;border-radius:7px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;font-weight:600;display:grid}.selected-file span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.selected-file small{color:#64748b;font-weight:700}.meeting-photo-section{gap:8px;display:grid}.meeting-photo-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;display:grid}.meeting-photo-card{background:#fff;border:1px solid #dbe4f0;border-radius:8px;gap:6px;min-width:0;margin:0;padding:8px;display:grid;position:relative}.meeting-photo-card a{aspect-ratio:4/3;background:#e2e8f0;border-radius:6px;display:block;overflow:hidden}.meeting-photo-card img{object-fit:cover;width:100%;height:100%;display:block}.meeting-photo-card figcaption{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.meeting-photo-card .ant-btn{background:#ffffffeb;width:30px;height:30px;position:absolute;top:12px;right:12px}.markdown-content{color:#334155;overflow-wrap:anywhere;line-height:1.75}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content p{margin:0 0 8px}.markdown-content ul,.markdown-content ol{margin:0 0 8px;padding-left:20px}.markdown-content li+li{margin-top:4px}.markdown-content blockquote{color:#475569;border-left:3px solid #cbd5e1;margin:0 0 8px;padding-left:10px}.markdown-content code{color:#0f172a;background:#e2e8f0;border-radius:5px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.markdown-content pre{color:#e2e8f0;background:#0f172a;border-radius:7px;margin:0 0 8px;padding:10px 12px;overflow:auto}.markdown-content pre code{color:inherit;background:0 0;padding:0}.detail-description{max-width:920px;font-size:15px}.timeline-item a,.asset-item{color:#0f766e;text-decoration:none}.timeline-item small{color:#64748b}.asset-groups{gap:16px;display:grid}.asset-group{gap:10px;display:grid}.asset-group h4{color:#334155;margin:0;font-size:15px}.asset-card{background:#f8fafc;border:1px solid #dbe4f0;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.asset-item{gap:10px;min-width:0}.asset-item span{gap:3px;display:grid}.asset-item small{color:#64748b}@media (width<=1280px){body{min-width:1024px}.app-shell{grid-template-columns:380px 1fr}.content-grid,.admin-grid,.dashboard-stats,.dashboard-grid,.audit-layout{grid-template-columns:1fr}.create-user-panel,.audit-filters{position:static}.managed-user-row{grid-template-columns:1fr 170px 104px}.password-reset{grid-column:1/-1}.member-form-grid,.member-edit-row{grid-template-columns:repeat(2,minmax(0,1fr))}.member-actions{justify-content:flex-start}.reminder-row{grid-template-columns:1fr}}:root{--bg:#f6f8fb;--surface:#fff;--surface-subtle:#f8fafc;--line:#d9e2ec;--line-strong:#c3d0df;--text:#152033;--muted:#607089;--brand:#0f766e;--brand-strong:#115e59;--brand-soft:#e7f7f4;--info:#2563eb;--warn:#b45309;--danger:#b91c1c;--success:#166534;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 14px 34px #0f172a14}body{background:var(--bg);min-width:0;color:var(--text)}button,.primary-button,.secondary-button,.nav-button,.project-row,.icon-button{transition:border-color .14s,background-color .14s,color .14s,box-shadow .14s,transform .14s}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}input,select,textarea{border-color:var(--line-strong);min-height:40px;color:var(--text);background:#fff;border-radius:8px;padding:9px 12px}textarea{line-height:1.6}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #0f766e24}label{color:#40516a;gap:7px;font-size:13px;font-weight:700}.primary-button,.secondary-button,.nav-button{border-radius:8px;align-self:start;min-height:38px;padding:0 14px;font-size:14px;line-height:1}.primary-button{background:var(--brand);box-shadow:var(--shadow-sm);gap:8px}.primary-button:hover:not(:disabled){background:var(--brand-strong);box-shadow:0 8px 18px #0f766e2e}.secondary-button{border-color:var(--line-strong);background:var(--surface);color:#334155;min-width:96px;padding:0 14px}.secondary-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.nav-button:hover:not(:disabled){border-color:var(--brand);color:var(--brand-strong);box-shadow:var(--shadow-sm)}.secondary-button.danger:hover:not(:disabled),.icon-button.danger:hover:not(:disabled){color:var(--danger);background:#fff1f2;border-color:#fca5a5}.secondary-button.success:hover:not(:disabled){color:var(--success);background:#f0fdf4;border-color:#86efac}.icon-button{border-radius:8px;width:38px;height:38px}.app-shell{background:var(--bg);grid-template-columns:360px minmax(0,1fr);min-height:100vh}.sidebar{border-right-color:var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;grid-template-rows:auto auto auto auto auto minmax(0,1fr);gap:14px;height:100vh;padding:18px;display:grid}.app-header{margin-bottom:0;padding-bottom:4px}.app-header p,.admin-header p{color:var(--brand);letter-spacing:0}.app-header h1{font-size:22px}.user-strip{border-color:var(--line);min-height:56px;box-shadow:var(--shadow-sm);background:linear-gradient(#fff,#f8fafc);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.side-nav{border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:0;padding:4px}.nav-button{color:#42526a;background:0 0;border-color:#0000;min-width:0;padding:0 8px;font-weight:800}.nav-button.active{border-color:var(--line);background:var(--surface);color:var(--brand-strong);box-shadow:var(--shadow-sm)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.stat{border-color:var(--line);background:var(--surface);min-height:72px;box-shadow:var(--shadow-sm)}.stat strong{font-size:26px}.filters{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px;gap:9px;margin-bottom:0;padding:12px}.search-box svg{top:32px}.project-list{align-content:start;gap:8px;padding-right:2px;overflow:auto}.project-row{border-color:var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;padding:12px}.project-row:hover{background:#fbfefd;border-color:#9cc9c4;transform:translateY(-1px)}.project-row.active{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px #0f766e14, var(--shadow-sm)}.project-index{width:34px;height:34px;color:var(--info);background:#eef6ff;border-radius:8px;place-items:center;font-size:13px;display:grid}.project-row.active .project-index{color:var(--brand-strong);background:#ccfbf1}.project-row-main{gap:5px}.project-list-heading{align-items:center}.panel-title-row{align-items:center;gap:10px;min-width:0;display:inline-flex}.project-sort.ant-segmented{flex:none}.project-progress{width:100%;min-width:0}.project-progress small{color:#64748b;margin-top:4px;font-size:12px;font-weight:800;display:block}.project-progress.compact{grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:8px;margin:2px 0 0;display:grid}.project-progress.compact .ant-progress{min-width:0}.project-progress.compact .ant-progress-outer{width:100%!important;padding-inline-end:0!important}.project-progress-value{color:#475569;text-align:right;white-space:nowrap;font-size:12px;font-weight:800;line-height:1}.progress-editor-row{grid-template-columns:minmax(0,1fr) 46px;align-items:center;gap:12px;display:grid}.progress-editor-row .ant-slider{margin-inline:4px}.progress-editor-row strong{color:var(--brand-strong);text-align:right;font-size:14px}.progress-summary,.stage-editor,.stage-editor-list{gap:10px;width:100%;display:grid}.stage-trail{flex-wrap:wrap;gap:6px;display:flex}.stage-chip{color:#64748b;background:#f8fafc;border:1px solid #dbe4f0;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.stage-chip.done{color:#047857;background:#ecfdf5;border-color:#bbf7d0}.stage-chip.in_progress{color:#0369a1;background:#f0f9ff;border-color:#bae6fd}.stage-chip.more{color:#475569}.stage-editor-head{border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.stage-editor-head strong{color:var(--brand-strong);font-size:18px}.stage-editor-head span{color:var(--muted);font-size:13px;font-weight:800}.stage-editor-row{grid-template-columns:30px minmax(180px,1fr) 132px 36px;align-items:center;gap:8px;display:grid}.stage-editor-row>span{width:30px;height:30px;color:var(--info);background:#eef6ff;border-radius:8px;place-items:center;font-size:12px;font-weight:900;display:grid}.workspace{min-width:0;padding:24px 30px 36px}.admin-workspace,.project-detail{max-width:1320px;margin:0 auto}.admin-header,.detail-header{border-bottom-color:var(--line);align-items:flex-start;padding:0 0 18px}.admin-header h2,.detail-header h2{font-size:clamp(28px,3vw,38px);line-height:1.15}.detail-header{grid-template-columns:minmax(0,1fr) auto;display:grid}.detail-header-actions{justify-self:end;align-items:center;gap:10px;display:inline-flex}.detail-header p{max-width:920px;font-size:15px;line-height:1.75}.meta-line{color:var(--brand-strong);flex-wrap:wrap}.meta-line span{background:var(--brand-soft);border-color:#b8e4dc}.content-grid{grid-template-columns:minmax(0,1.05fr) minmax(340px,.75fr);align-items:start;gap:16px}.project-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.project-main-column,.project-side-column{gap:16px;min-width:0;display:grid}.project-side-column{position:sticky;top:24px}.panel,.timeline-section,.asset-section,.signing-section,.audit-section{border-color:var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px}.panel{align-items:start}.panel>label,.panel>.form-row,.panel>.member-form,.panel>.member-list,.panel>.asset-list,.panel>.asset-groups{width:100%}.panel h3,.timeline-section h3,.asset-section h3,.signing-section h3,.audit-section h3{color:#223047;margin-bottom:10px;font-size:17px}.dashboard-stats{grid-template-columns:repeat(4,minmax(160px,1fr))}.dashboard-grid{gap:16px}.dashboard-row,.reminder-row,.managed-user-row,.member-form,.member-edit-row,.member-item,.signing-record,.timeline-item,.asset-card,.audit-item{border-color:var(--line);background:var(--surface-subtle);border-radius:8px}.managed-user-row{grid-template-columns:minmax(180px,1fr) 160px 96px minmax(210px,.56fr)}.password-reset{align-items:center}.form-row,.member-form-grid,.member-edit-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.timeline-item{border-left-color:var(--brand);box-shadow:var(--shadow-sm)}.timeline-head{align-items:flex-start}.asset-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.signing-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.signing-record{border:1px solid var(--line);min-height:168px;color:var(--text);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;gap:10px;padding:14px;display:grid}.signing-record-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.signing-record-head span{color:#475569;font-size:16px;font-weight:900}.signing-record-head small{color:#64748b;font-size:12px}.signing-record strong{color:#0f172a;font-size:19px}.signature-panel{background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:6px;place-items:center;min-height:62px;display:grid}.signature-panel img{object-fit:contain;filter:brightness(0)contrast(1.15);max-width:100%;max-height:58px}.signature-panel span{color:#111827;font-family:STKaiti,KaiTi,Kaiti SC,cursive;font-size:26px;font-style:italic}.status-pill{border-radius:999px;min-width:72px;min-height:28px}@media (width<=1180px){.app-shell{grid-template-columns:320px minmax(0,1fr)}.sidebar{padding:14px}.side-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid,.project-layout,.admin-grid,.audit-layout,.dashboard-grid,.leaderboard-podium,.leaderboard-row{grid-template-columns:1fr}.project-side-column{position:static}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.app-shell{display:block}.sidebar{height:auto;max-height:none;position:static}.workspace{padding:18px}.detail-header,.leaderboard-hero,.reminder-row,.managed-user-row,.member-form-grid,.member-edit-row,.form-row,.stage-editor-row{grid-template-columns:1fr}.project-list{grid-template-columns:1fr;max-height:420px}}.app-shell{grid-template-columns:248px minmax(0,1fr)}.sidebar{grid-template-rows:auto minmax(0,1fr) auto;align-content:start}.side-nav{grid-template-columns:1fr;align-content:start}.nav-button{justify-content:flex-start;gap:10px;min-height:42px;padding:0 12px}.primary-button.compact,.secondary-button.compact{min-width:112px}.project-workspace{max-width:none}.project-list-page,.project-detail-page{align-items:start;gap:16px;display:grid}.project-directory-list{max-height:none;position:static;overflow:visible}.project-directory-list .project-list{max-height:none;overflow:visible}.project-directory-detail{min-width:0}.project-metrics{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.project-metric{border:1px solid var(--line);background:var(--surface);min-height:32px;box-shadow:var(--shadow-sm);border-radius:999px;align-items:baseline;gap:6px;padding:5px 12px;display:inline-flex}.project-metric strong{color:var(--text);font-size:16px}.project-metric small{color:var(--muted);font-size:12px;font-weight:800}.project-metric.warn strong{color:var(--warn)}.panel-heading{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.panel-heading h3{margin:0}.panel-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;display:grid}.info-block{border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;gap:8px;min-height:86px;padding:14px;display:grid}.info-block.wide{grid-column:1/-1}.info-block span{color:var(--muted);font-size:13px;font-weight:800}.info-block strong{color:var(--text);white-space:pre-wrap;font-size:15px;line-height:1.7}.member-summary-list{gap:10px;width:100%;display:grid}.member-summary-card{border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;gap:5px;padding:12px;display:grid}.member-summary-card span,.member-summary-card small{color:var(--muted);font-size:13px}.member-summary-card strong{color:var(--text)}.action-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}.action-card h3,.action-card p{margin:0}.action-card div{gap:6px;display:grid}@media (width<=1180px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.project-directory-list{max-height:none;position:static}.project-directory-list .project-list{grid-template-columns:1fr;max-height:none}}@media (width>=1500px){.project-directory-list{max-width:1180px}.project-directory-list .project-list{max-height:none}}@media (width<=860px){.sidebar{grid-template-rows:auto auto auto;display:grid}.project-directory-list .project-list{max-height:none}.info-grid,.action-card{grid-template-columns:1fr}.project-metrics{justify-content:flex-start}}.app-shell.ant-layout{background:var(--bg);grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.workspace.ant-layout-content{flex:none;justify-self:stretch;inline-size:calc(100vw - 248px);width:calc(100vw - 248px)!important}.sidebar.ant-layout-sider{display:block;position:sticky;top:0;overflow:auto}.sidebar .ant-layout-sider-children{grid-template-rows:auto minmax(0,1fr) auto;gap:14px;display:grid}.user-strip.ant-card{width:100%;display:block}.user-strip.ant-card .ant-card-body{gap:10px;padding:12px;display:grid}.user-summary{min-width:0}.user-summary strong,.user-summary span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-actions{border-top:1px solid var(--line);align-items:center;gap:4px;padding-top:8px;display:flex}.user-action-button.ant-btn{color:#52647c;border-radius:7px;flex:1;height:30px;font-size:13px;font-weight:800}.user-action-button.ant-btn:hover{color:var(--brand);background:#eef5f8}.password-modal-form{gap:14px;display:grid}.side-nav.ant-menu{border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;padding:4px;display:block}.side-nav.ant-menu .ant-menu-item{border-radius:8px;width:100%;height:42px;margin-inline:0;font-weight:800}.panel.ant-card{padding:0}.panel.ant-card>.ant-card-body{gap:14px;padding:18px;display:grid}.project-row.ant-btn{white-space:normal;height:auto}.ant-input,.ant-select{width:100%}.ant-select .ant-select-selection-search-input{min-height:0;box-shadow:none;background:0 0;border:0;padding:0}.ant-select-single .ant-select-selector{align-items:center}.ant-select-single .ant-select-selection-item,.ant-select-single .ant-select-selection-placeholder{align-items:center;line-height:1.4;display:flex}.ant-btn{justify-content:center;align-items:center;display:inline-flex}.project-row.ant-btn{text-align:left;justify-content:stretch;display:grid}.status-pill.ant-tag{border-radius:999px;min-width:66px;min-height:28px;margin-inline-end:0;font-weight:900}.status-pill.ant-tag-success{color:#389e0d;background:#f6ffed;border-color:#b7eb8f}.status-pill.ant-tag-processing{color:#1677ff;background:#e6f4ff;border-color:#91caff}.status-pill.ant-tag-warning{color:#d48806;background:#fffbe6;border-color:#ffe58f}.status-pill.ant-tag-error{color:#cf1322;background:#fff2f0;border-color:#ffccc7}.project-descriptions .ant-descriptions-item-content{line-height:1.7}.section-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-title-row h3{margin:0}.leaderboard-page{gap:18px;display:grid}.leaderboard-hero{background:linear-gradient(120deg,#0f766e1f,#0000 34%),linear-gradient(250deg,#f59e0b29,#0000 30%),#fff;border:1px solid #0f766e2e;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;padding:clamp(20px,2vw,32px);display:grid;box-shadow:0 24px 70px #0f172a1a}.leaderboard-hero p,.leaderboard-hero span{color:#0f766e;margin:0;font-weight:900}.leaderboard-hero h2{color:#111827;align-items:center;gap:12px;margin:6px 0 8px;font-size:clamp(34px,4vw,58px);line-height:1.05;display:flex}.leaderboard-hero strong{color:#f8fafc;background:#111827;border-radius:999px;place-items:center;min-height:44px;padding:0 18px;display:grid}.leaderboard-podium{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:14px;display:grid}.podium-card,.leaderboard-row{border:1px solid var(--line);color:var(--text);text-align:left;box-shadow:var(--shadow-sm);background:#fff;border-radius:10px}.podium-card{gap:12px;min-height:250px;padding:18px;display:grid}.podium-card.rank-1{background:linear-gradient(145deg,#facc1533,#fff 42%);border-color:#facc15}.podium-card.rank-2{background:linear-gradient(145deg,#93c5fd38,#fff 42%);border-color:#93c5fd}.podium-card.rank-3{background:linear-gradient(145deg,#fda4af38,#fff 42%);border-color:#fda4af}.podium-rank{color:#fff;letter-spacing:0;background:#111827;border-radius:999px;width:fit-content;padding:6px 11px;font-size:13px;font-weight:900}.podium-card strong{color:#111827;font-size:20px;line-height:1.35}.podium-card small,.leaderboard-row small{color:var(--muted);font-size:13px;font-weight:800}.leaderboard-list{gap:10px;display:grid}.leaderboard-row{grid-template-columns:46px minmax(220px,1fr) minmax(260px,1.1fr) minmax(180px,.8fr) auto;align-items:center;gap:12px;padding:13px 14px;display:grid}.leaderboard-rank{width:38px;height:38px;color:var(--info);background:#eef6ff;border-radius:10px;place-items:center;font-weight:900;display:grid}.leaderboard-row>div{gap:4px;min-width:0;display:grid}.leaderboard-row strong{color:#111827;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.signing-results-page{min-height:calc(100vh - 40px)}.signing-results-shell{color:#f8fbff;background:linear-gradient(125deg,#2ee8ff21,#0000 34%),linear-gradient(245deg,#ffd35c1a,#0000 30%),#05070d;border-radius:10px;gap:18px;min-height:calc(100vh - 40px);padding:clamp(18px,1.6vw,28px);display:grid}.signing-results-shell:fullscreen{overflow:auto}.signing-results-hero{background:linear-gradient(125deg,#2ee8ff1f,#0000 34%),linear-gradient(245deg,#b8ff4d14,#0000 32%),#0a111cd6;border:1px solid #ffffff29;border-top:4px solid #2ee8ff;border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:clamp(18px,2vw,40px);padding:clamp(20px,1.8vw,34px);display:grid;box-shadow:0 28px 90px #00000059}.signing-brand-row,.signing-results-meta,.signing-results-actions,.signing-card-top,.signing-card-meta{align-items:center;display:flex}.signing-brand-row{gap:14px;margin-bottom:16px}.signing-brand-row span{background:#ffffff14;border:1px solid #ffffff47;border-radius:999px;place-items:center;min-height:38px;padding:0 18px;font-size:18px;font-weight:900;display:inline-grid}.signing-brand-row i{background:linear-gradient(90deg,#2ee8ff,#b8ff4d,#ffd35c);width:70px;height:2px;box-shadow:0 0 20px #2ee8ff59}.signing-results-hero p{color:#2ee8ff;margin:0 0 10px;font-size:17px;font-weight:900}.signing-results-hero h2{color:#f8fbff;margin:0;font-size:clamp(44px,4.2vw,76px);line-height:.98}.signing-results-meta{flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:420px}.signing-results-meta span,.signing-results-meta strong{color:#f8fbff;background:#00000038;border:1px solid #ffffff29;border-radius:8px;place-items:center;min-height:38px;padding:0 14px;font-size:14px;font-weight:900;display:inline-grid}.signing-results-meta strong{color:#b8ff4d;background:#b8ff4d14;border-color:#b8ff4d80}.signing-results-actions{justify-content:flex-end;gap:10px}.signing-progress-rail{background:#00000042;border:1px solid #ffffff1f;border-radius:999px;grid-column:1/-1;height:12px;overflow:hidden}.signing-progress-rail i{border-radius:inherit;background:linear-gradient(90deg,#2ee8ff,#b8ff4d,#ffd35c);height:100%;transition:width .5s;display:block;box-shadow:0 0 26px #2ee8ff59}.signing-results-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;display:grid}.signing-result-card{background:linear-gradient(145deg,#2ee8ff14,#0000 38%),#101722e6;border:1px solid #ffffff26;border-radius:10px;flex-direction:column;min-height:280px;padding:18px;display:flex;position:relative;overflow:hidden;box-shadow:0 22px 70px #00000047}.signing-result-card.is-signed{border-color:#b8ff4d61}.signing-result-card.is-focused{outline-offset:2px;outline:3px solid #2ee8ff8c}.signing-result-card:after{content:"";opacity:.7;background:linear-gradient(90deg,#0000,#2ee8ff,#b8ff4d,#0000);height:3px;position:absolute;inset:auto -20% 0}.signing-card-top{gap:10px;margin-bottom:14px}.signing-card-top>span{color:#2ee8ff;font-size:26px;font-weight:1000}.signing-card-top small,.signing-card-top b{color:#ffd35c;background:#ffd35c14;border:1px solid #ffd35c6b;border-radius:999px;min-height:30px;padding:5px 10px;font-size:13px;font-weight:900}.signing-card-top b{color:#b8ff4d;background:#b8ff4d14;border-color:#b8ff4d7a;margin-left:auto}.signing-result-card h3{color:#f8fbff;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.25em;margin:0 0 10px;font-size:24px;line-height:1.12;display:-webkit-box;overflow:hidden}.signing-result-card p{color:#aab4c6;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:3em;margin:0 0 14px;line-height:1.5;display:-webkit-box;overflow:hidden}.signing-card-meta{flex-wrap:wrap;gap:10px;margin-bottom:14px}.signing-card-meta span{color:#f8fbff;background:#0003;border:1px solid #ffffff29;border-radius:7px;min-height:32px;padding:6px 10px;font-size:13px;font-weight:800}.signing-card-meta b{color:#aab4c6;margin-right:6px}.signing-result-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:auto;display:grid}.signing-result-chip{background:#ffffff0e;border:1px solid #ffffff21;border-radius:8px;min-width:0;padding:8px}.signing-result-chip.is-ready{background:#b8ff4d12;border-color:#b8ff4d57}.signing-result-chip small,.signing-result-chip strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.signing-result-chip small{color:#aab4c6;font-size:11px;font-weight:900}.signing-result-chip strong{color:#f8fbff;margin-top:3px;font-size:13px}.signing-result-chip div{border-top:1px solid #ffffff14;place-items:center;height:46px;margin-top:6px;display:grid;overflow:hidden}.signing-result-chip img{object-fit:contain;max-width:100%;max-height:100%}.signing-result-chip span{color:#a8b3c79e;font-size:12px;font-weight:900}.signing-card-link.ant-btn{color:#f8fbff;background:#2ee8ff14;border-color:#2ee8ff6b;align-self:flex-start;margin-top:14px;font-weight:900}.signing-results-empty{color:#aab4c6;text-align:center;background:#101722e6;border:1px solid #ffffff29;border-radius:10px;padding:40px;font-size:18px;font-weight:900}@media (width<=1260px){.signing-results-hero{grid-template-columns:1fr;align-items:start}.signing-results-meta,.signing-results-actions{justify-content:flex-start}}@media (width<=720px){.signing-results-grid,.signing-result-strip{grid-template-columns:1fr}}@media (width<=860px){.loading,.empty-state,.login-screen{min-height:100dvh}.app-shell.ant-layout{min-height:100dvh;display:block}.sidebar.ant-layout-sider{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static;width:100%!important;min-width:0!important;max-width:none!important}.sidebar .ant-layout-sider-children{grid-template-rows:auto auto auto;gap:12px}.app-header{align-items:flex-start}.app-header h1{font-size:20px}.side-nav.ant-menu{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.side-nav.ant-menu:before,.side-nav.ant-menu:after{content:none;display:none}.side-nav.ant-menu .ant-menu-item{text-align:center;justify-content:center;height:38px;display:flex;padding-inline:6px!important}.side-nav.ant-menu .ant-menu-title-content{flex:none;min-width:0}.user-strip.ant-card .ant-card-body{grid-template-columns:minmax(0,1fr) auto;align-items:center}.user-actions{border-top:0;padding-top:0}.workspace.ant-layout-content{inline-size:100%;padding:16px;width:100%!important}.admin-workspace,.project-detail{max-width:none}.admin-header{flex-direction:column;align-items:stretch;gap:12px}.admin-header h2,.detail-header h2{font-size:26px}.admin-header-actions,.panel-actions,.report-actions,.signing-results-actions{justify-content:flex-start}.project-list-heading,.panel-heading,.section-title-row,.timeline-head,.progress-text-head{flex-wrap:wrap;align-items:flex-start}.project-sort.ant-segmented,.project-sort.ant-segmented .ant-segmented-group{width:100%}.project-sort.ant-segmented .ant-segmented-item{flex:1;min-width:0}.project-layout,.content-grid,.admin-grid,.audit-layout,.dashboard-grid,.leaderboard-hero,.leaderboard-podium,.leaderboard-row{grid-template-columns:1fr}.project-side-column,.create-user-panel,.audit-filters{position:static}.dashboard-stats,.stat-grid,.project-list{grid-template-columns:1fr}.project-row{grid-template-columns:32px minmax(0,1fr);align-items:start}.project-row .status-pill{grid-column:2;justify-self:start}.detail-header{grid-template-columns:1fr;gap:12px}.detail-header-actions{flex-wrap:wrap;justify-self:start}.form-row,.member-form-grid,.member-edit-row,.stage-editor-row,.managed-user-row{grid-template-columns:1fr}.member-actions{justify-content:flex-start}.project-descriptions .ant-descriptions-view,.project-descriptions table,.project-descriptions tbody,.project-descriptions tr,.project-descriptions th,.project-descriptions td{display:block;width:100%!important}.project-descriptions .ant-descriptions-item-label{border-inline-end:0;border-bottom:1px solid var(--line)}.asset-list,.signing-grid,.meeting-photo-grid{grid-template-columns:1fr}.asset-card{grid-template-columns:minmax(0,1fr)}.audit-item{grid-template-columns:1fr}.audit-meta{white-space:normal;flex-wrap:wrap}.leaderboard-hero{align-items:start;padding:18px}.leaderboard-hero h2{font-size:32px}.leaderboard-row{gap:10px}.leaderboard-row strong{white-space:normal}.signing-results-page,.signing-results-shell{min-height:100dvh}.signing-results-shell{border-radius:0;padding:12px}.signing-results-hero{gap:16px;padding:16px}.signing-brand-row{flex-wrap:wrap;gap:10px;margin-bottom:12px}.signing-brand-row i{flex:1;min-width:42px}.signing-results-hero h2{font-size:34px;line-height:1.08}.signing-results-meta,.signing-results-actions{justify-content:flex-start;max-width:none}.signing-results-actions .ant-btn{flex:1;min-width:0}.signing-result-card{min-height:auto;padding:14px}.signing-card-top{flex-wrap:wrap}.signing-card-top b{margin-left:0}.signing-result-card h3{min-height:0;font-size:21px}}@media (width<=520px){.login-screen{place-items:center stretch;padding:18px}.login-panel{width:100%;padding:24px}.login-panel h1{font-size:25px}.sidebar{padding:12px}.side-nav.ant-menu{grid-template-columns:repeat(3,minmax(0,1fr))}.side-nav.ant-menu .ant-menu-item{font-size:13px}.workspace.ant-layout-content{padding:12px}.panel,.timeline-section,.asset-section,.signing-section,.audit-section,.panel.ant-card>.ant-card-body{padding:14px}.admin-header h2,.detail-header h2{font-size:24px}.project-metrics{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.project-metric{justify-content:center}.project-row{padding:12px 10px}.status-pill.ant-tag{min-width:0}.stage-editor-head{flex-direction:column;align-items:flex-start}.password-reset{grid-template-columns:minmax(0,1fr) 40px}.primary-button.compact,.secondary-button.compact,.panel-actions .ant-btn,.report-actions .ant-btn,.admin-header-actions .ant-btn,.signing-results-meta span,.signing-results-meta strong,.signing-results-actions .ant-btn{width:100%}.signing-result-strip{gap:6px}.signing-result-chip div{height:40px}}
