.mobile-shell{background:#f5f6f8;flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.mobile-header{text-align:center;color:#1f2937;background:#fff;border-bottom:1px solid #eef0f3;padding:14px 16px 10px;font-size:17px;font-weight:600}.mobile-content{padding:12px 14px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));flex:1;overflow-y:auto}.mobile-nav{z-index:100;padding-bottom:env(safe-area-inset-bottom,0px);background:#fff;border-top:1px solid #eef0f3;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav-inner{width:100%;max-width:480px;margin:0 auto;display:flex}.mobile-nav-item{text-align:center;color:#9ca3af;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 6px;font-size:12px;text-decoration:none;display:flex}.mobile-nav-item .nav-icon{font-size:20px;line-height:1}.mobile-nav-item.active{color:#2563eb}.m-section{margin-bottom:16px}.m-section-title{color:#1f2937;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:15px;font-weight:600;display:flex}.m-section-title .quarter-tag{color:#6b7280;font-size:12px;font-weight:400}.m-stat-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.m-stat-card{color:inherit;background:#fff;border-radius:10px;justify-content:space-between;align-items:center;min-height:56px;padding:14px 16px;text-decoration:none;display:flex;box-shadow:0 1px 2px #0000000d}.m-stat-card:active{background:#f9fafb}.m-stat-card .msc-num{color:#1f2937;font-size:24px;font-weight:700}.m-stat-card .msc-lbl{color:#6b7280;font-size:13px}.m-stat-card .msc-right{text-align:right}.m-stat-card.abnormal .msc-num{color:#dc2626}.m-quick-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.m-quick-item{text-align:center;color:#374151;background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:16px;font-size:14px;text-decoration:none;display:flex;box-shadow:0 1px 2px #0000000d}.m-quick-item:active{background:#f9fafb}.m-quick-item .mqi-icon{font-size:24px}.m-error{text-align:center;color:#991b1b;background:#fef2f2;border-radius:8px;padding:20px;font-size:14px}.m-error-retry{color:#fff;background:#dc2626;border:none;border-radius:6px;margin-top:10px;padding:8px 20px;font-size:14px}.m-loading{text-align:center;color:#9ca3af;padding:40px;font-size:14px}.m-placeholder{text-align:center;color:#9ca3af;padding:60px 20px;font-size:14px;line-height:1.8}@media (width<=767px){.sidebar{display:none!important}.app{flex-direction:column}.main{display:none}}.m-status-tabs{-webkit-overflow-scrolling:touch;gap:6px;padding:4px 0 10px;display:flex;overflow-x:auto}.m-status-tabs::-webkit-scrollbar{display:none}.m-status-tab{color:#6b7280;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:16px;flex-shrink:0;padding:6px 14px;font-size:13px}.m-status-tab.active{color:#fff;background:#2563eb;border-color:#2563eb}.m-list-actions{justify-content:flex-end;margin-bottom:10px;display:flex}.m-btn-primary{color:#fff;background:#2563eb;border:none;border-radius:8px;padding:8px 16px;font-size:14px}.m-btn-primary:active{background:#1d4ed8}.m-empty{text-align:center;color:#9ca3af;padding:40px 20px;font-size:14px}.m-card-list{flex-direction:column;gap:10px;display:flex}.m-after-card{cursor:pointer;background:#fff;border-radius:10px;padding:12px 14px;box-shadow:0 1px 2px #0000000d}.m-after-card:active{background:#f9fafb}.m-after-card-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.m-after-id{color:#6b7280;font-size:13px;font-weight:600}.m-after-project{color:#1f2937;margin-bottom:4px;font-size:15px;font-weight:600}.m-after-meta{color:#6b7280;flex-wrap:wrap;gap:4px;margin-bottom:6px;font-size:12px;display:flex}.m-after-desc{color:#374151;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.m-after-foot{color:#9ca3af;justify-content:space-between;align-items:center;font-size:12px;display:flex}.m-after-source{background:#f3f4f6;border-radius:4px;padding:2px 6px}.m-after-card.is-read{opacity:.6}.m-notif-dot{background:#dc2626;border-radius:50%;flex-shrink:0;width:8px;height:8px}.m-list-actions .m-btn-ghost{border:none;border-radius:6px;padding:8px 14px;font-size:13px}.m-list-actions{gap:8px}.m-card{cursor:pointer;background:#fff;border-radius:10px;padding:12px 14px;box-shadow:0 1px 2px #0000000d}.m-card:active{background:#f9fafb}.m-card-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.m-card-title{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:600;overflow:hidden}.m-card-meta{color:#6b7280;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;font-size:12px;display:flex}.status-tag.s-install-pending{color:#51607a;background:#eef2f7}.status-tag.s-install-progress{color:#1e40af;background:#dbeafe}.status-tag.s-install-acceptance{color:#9a3412;background:#ffedd5}.status-tag.s-install-delivered{color:#166534;background:#dcfce7}.m-card-foot{color:#9ca3af;margin-top:2px;font-size:11px}.m-back-btn{color:#2563eb;cursor:pointer;background:0 0;border:none;align-items:center;margin-bottom:8px;padding:6px 0;font-size:14px;display:inline-flex}.m-back-btn:active{color:#1d4ed8}.m-detail-title{color:#1f2937;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:16px;font-weight:600;display:flex}.m-detail-title span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.m-detail-section{background:#fff;border-radius:10px;margin-bottom:10px;padding:12px 14px}.m-detail-section-title{color:#1f2937;margin-bottom:8px;font-size:14px;font-weight:600}.m-detail-row{color:#374151;gap:10px;padding:5px 0;font-size:13px;display:flex}.m-detail-row-block{flex-direction:column;gap:4px}.m-detail-row-block span:last-child{line-height:1.5}.m-detail-k{color:#6b7280;flex-shrink:0;width:72px}.m-inspection-source{color:#92400e;background:#fef3c7;border-radius:8px;margin-bottom:10px;padding:8px 12px;font-size:13px}.m-action-bar{z-index:50;background:#f5f6f8;border-top:1px solid #eef0f3;margin:0 -14px;padding:10px 14px 4px;position:sticky;bottom:58px}.m-btn-full{box-sizing:border-box;border-radius:10px;width:100%;min-height:48px;padding:12px;font-size:15px;font-weight:600}.insp-photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.insp-photo-thumb{aspect-ratio:1;background:#f3f4f6;border-radius:8px;position:relative;overflow:hidden}.m-back{cursor:pointer;color:#2563eb;margin-right:8px}.m-info-grid{flex-direction:column;gap:4px;font-size:13px;display:flex}.m-info-item{gap:8px;display:flex}.m-info-item .k{color:#6b7280;flex-shrink:0;width:72px}.m-info-item a{color:#2563eb}.m-progress-grid{justify-content:space-between;gap:6px;display:flex}.m-progress-item{text-align:center;background:#f9fafb;border-radius:8px;flex:1;padding:8px 4px}.m-progress-item .num{color:#1f2937;font-size:18px;font-weight:700}.m-progress-item .lbl{color:#6b7280;margin-top:2px;font-size:11px}.insp-result{border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:600}.insp-result-normal{color:#16a34a;background:#dcfce7}.insp-result-abnormal{color:#dc2626;background:#fee2e2}.insp-result-pending{color:#6b7280;background:#f3f4f6}.m-abnormal-detail{border-top:1px solid #f3f4f6;margin-top:8px;padding-top:8px;font-size:13px}.m-ab-row{gap:8px;margin-bottom:4px;display:flex}.m-ab-row .k{color:#6b7280;flex-shrink:0;width:72px}.m-link{color:#2563eb;cursor:pointer;text-decoration:underline}.m-card-actions{gap:8px;margin-top:8px;display:flex}.m-btn{cursor:pointer;color:#fff;background:#2563eb;border:none;border-radius:8px;flex:1;padding:8px 12px;font-size:14px;font-weight:500}.m-btn:disabled{opacity:.5}.m-btn-green{background:#16a34a}.m-btn-red{background:#dc2626}.m-btn-ghost{color:#374151;background:#f3f4f6}.m-abnormal-form{background:#f9fafb;border-radius:8px;margin-top:10px;padding:10px}.m-form-row{margin-bottom:10px}.m-form-row label{color:#374151;margin-bottom:4px;font-size:13px;font-weight:500;display:block}.m-form-row textarea{box-sizing:border-box;resize:vertical;border:1px solid #d1d5db;border-radius:6px;width:100%;min-height:60px;padding:8px;font-size:14px}.m-radio-row{gap:16px;display:flex}.m-radio-row label{align-items:center;gap:4px;font-weight:400;display:flex}.m-hint{color:#d97706;background:#fffbeb;border-radius:6px;margin-bottom:8px;padding:8px;font-size:12px;line-height:1.5}.m-form-actions{gap:8px;display:flex}.m-modal-backdrop{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.m-modal{background:#fff;border-radius:12px;width:100%;max-width:340px;padding:16px}.m-modal-title{margin-bottom:12px;font-size:16px;font-weight:600}.mine-card{text-align:center;background:#fff;border-radius:10px;padding:24px 20px;box-shadow:0 1px 2px #0000000d}.mine-identity{color:#1f2937;margin-bottom:16px;font-size:16px;font-weight:600}.mine-logout-error{color:#dc2626;margin-bottom:12px;font-size:13px}.mine-card .btn-block{width:100%;padding:10px;font-size:15px}.m-modal-body{color:#374151;margin-bottom:16px;font-size:14px;line-height:1.6}.m-modal-footer{gap:8px;display:flex}.m-photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.m-photo-item{background:#fff;border-radius:8px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 1px 2px #0000000d}.m-photo-thumb{aspect-ratio:1;cursor:pointer;background:#f3f4f6;width:100%;overflow:hidden}.m-photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.m-photo-name{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;padding:4px 6px 0;font-size:11px;overflow:hidden}.m-photo-time{color:#9ca3af;padding:0 6px 4px;font-size:10px}.m-photo-del{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:6px;margin:4px 6px 6px;padding:4px 0;font-size:12px}.m-photo-del:active{background:#fef2f2}.m-photo-del:disabled{opacity:.5}.m-photo-upload{margin-top:10px}.m-photo-upload .m-btn-primary{border-radius:8px;width:100%;padding:10px;font-size:14px;font-weight:500}.m-photo-upload .m-btn-primary:disabled{background:#9ca3af}.m-deliver-summary{background:#f9fafb;border-radius:8px;margin-top:10px;padding:8px 10px}.m-deliver-summary .m-detail-row{padding:3px 0;font-size:13px}.m-warranty-preview{background:#ecfdf5;border:1px solid #d1fae5;border-radius:8px;margin-top:10px;padding:8px 10px}.m-warranty-preview .m-detail-row{padding:3px 0;font-size:13px}.m-warranty-preview .m-detail-k{width:84px}.m-search-bar{padding:0 0 10px}.m-search-bar input{background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:8px 12px;font-size:14px}.m-back-bar{padding-bottom:4px}.m-detail-grid{flex-direction:column;gap:0;display:flex}.m-detail-grid .m-detail-k{width:84px;padding:6px 0;font-size:13px}.m-detail-v{color:#1f2937;word-break:break-all;flex:1;padding:6px 0;font-size:13px}.m-detail-v .tag{margin:0}.mobile-shell .status-tag{color:#6b7280;background:#f3f4f6;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.mobile-shell .status-tag.s-after-pending{color:#92400e;background:#fef3c7}.mobile-shell .status-tag.s-after-progress{color:#1e40af;background:#dbeafe}.mobile-shell .status-tag.s-after-done{color:#166534;background:#dcfce7}.m-receivable-card{cursor:pointer;background:#fff;border-radius:10px;padding:12px 14px;box-shadow:0 1px 2px #0000000d}.m-receivable-card:active{background:#f9fafb}.m-receivable-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.m-receivable-customer{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:600;overflow:hidden}.m-receivable-overdue{color:#dc2626;background:#fee2e2;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:500;display:inline-block}.m-receivable-project{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;font-size:13px;overflow:hidden}.m-receivable-amounts{gap:8px;margin-bottom:8px;display:flex}.m-receivable-amt{background:#f9fafb;border-radius:6px;flex-direction:column;flex:1;align-items:center;padding:6px 8px;display:flex}.m-receivable-amt .mra-lbl{color:#9ca3af;margin-bottom:2px;font-size:11px}.m-receivable-amt .mra-val{color:#1f2937;font-size:14px;font-weight:600}.m-receivable-amt .mra-paid{color:#16a34a}.m-receivable-amt .mra-unpaid{color:#dc2626}.m-receivable-foot{color:#9ca3af;justify-content:space-between;align-items:center;font-size:12px;display:flex}.m-payment-list{flex-direction:column;gap:8px;display:flex}.m-payment-item{background:#f9fafb;border-radius:8px;padding:10px 12px}.m-payment-item-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;display:flex}.m-payment-date{color:#6b7280;font-size:13px;font-weight:500}.m-payment-amount{color:#16a34a;margin-left:auto;font-size:15px;font-weight:600}.m-payment-method{color:#6b7280;background:#e5e7eb;border-radius:4px;padding:2px 6px;font-size:12px}.m-payment-remark{color:#6b7280;margin-bottom:6px;font-size:12px;line-height:1.4}.m-payment-creator{color:#9ca3af;margin-bottom:6px;font-size:12px}.m-payment-files{margin-top:6px}.mobile-shell .mc-files{flex-direction:column;gap:8px;display:flex}.mobile-shell .mc-files-toolbar{align-items:center;gap:8px;display:flex}.mobile-shell .mc-files-list{flex-wrap:wrap;gap:6px;display:flex}.mobile-shell .mc-file-item{width:72px}.mobile-shell .mc-file-thumb{width:72px;height:72px}.mobile-shell .mc-file-info{padding:2px 0}.mobile-shell .mc-file-name{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.mobile-shell .mc-file-meta{font-size:10px}.m-required{color:#dc2626;margin-left:2px;font-size:13px}.m-optional{color:#9ca3af;font-size:12px;font-weight:400}.m-input-lg{color:#111827;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:12px 14px;font-size:16px}.m-input-lg:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.m-textarea-lg{color:#111827;resize:vertical;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:12px 14px;font-size:16px;line-height:1.5}.m-textarea-lg:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.m-signature-pad{background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;width:100%;position:relative;overflow:hidden}.m-signature-canvas{cursor:crosshair;background:#fff;width:100%;height:200px;display:block}.m-signature-placeholder{color:#9ca3af;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.m-signature-actions{justify-content:flex-end;margin-top:8px;display:flex}.m-choice-bar{gap:10px;margin-top:4px;display:flex}.m-choice-btn{color:#374151;cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:10px;flex:1;padding:14px 8px;font-size:16px;font-weight:500;transition:all .15s}.m-choice-btn:active{transform:scale(.98)}.m-choice-active.m-choice-done{color:#166534;background:#dcfce7;border-color:#16a34a}.m-choice-active.m-choice-objection{color:#92400e;background:#fef3c7;border-color:#d97706}.m-objection-wrap{margin-top:12px}.m-result-banner{text-align:center;border-radius:10px;margin-bottom:10px;padding:16px;font-size:17px;font-weight:600}.m-result-done{color:#166534;background:#dcfce7;border:1px solid #86efac}.m-result-objection{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.mobile-shell .status-tag.s-confirm-pending{color:#92400e;background:#fef3c7}.mobile-shell .status-tag.s-confirm-done{color:#166534;background:#dcfce7}.mobile-shell .status-tag.s-confirm-objection{color:#991b1b;background:#fee2e2}.m-chip-row{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.m-chip{color:#374151;cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:999px;padding:10px 14px;font-size:15px;line-height:1.4}.m-chip:active{transform:scale(.98)}.m-chip-active{color:#92400e;background:#fef3c7;border-color:#d97706;font-weight:600}.m-chip-hint{color:#6b7280;margin-bottom:6px;font-size:13px;line-height:1.5}.m-star-list{flex-direction:column;gap:8px;display:flex}.m-star-option{cursor:pointer;text-align:left;background:#fff;border:1.5px solid #d1d5db;border-radius:10px;align-items:center;gap:12px;padding:13px 14px;display:flex}.m-star-option:active{transform:scale(.99)}.m-star-string{letter-spacing:4px;color:#d1d5db;font-size:22px;line-height:1}.m-star-active{background:#fffbeb;border-color:#f59e0b}.m-star-active .m-star-string{color:#f59e0b}.m-star-label{color:#374151;font-size:16px;font-weight:600}.m-tag-block{margin-top:10px}.m-expired-page{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.m-expired-icon{font-size:48px;line-height:1}.m-expired-title{color:#1f2937;font-size:18px;font-weight:600}.m-expired-desc{color:#6b7280;font-size:14px;line-height:1.6}.m-expired-page .btn{margin-top:12px;padding:10px 24px;font-size:15px}.m-confirm-empty{color:#9ca3af;text-align:center;padding:16px;font-size:13px}.m-signature-readonly{box-sizing:border-box;cursor:pointer;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:8px;overflow:hidden}.m-signature-readonly img{object-fit:contain;background:#fff;border-radius:4px;width:100%;height:auto;min-height:80px;max-height:240px;display:block}.m-confirm-page .m-action-bar{box-sizing:border-box;width:100%;max-width:480px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));z-index:50;background:#f5f6f8;border-top:1px solid #eef0f3;margin:0;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.m-confirm-page .mobile-content{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.mobile-header{justify-content:space-between;align-items:center;display:flex}.mobile-header>span:first-child{text-align:left;flex:1}.mh-actions{justify-content:flex-end;align-items:center;gap:6px;min-width:32px;display:flex}.mh-bell{color:#4b5563;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.mh-bell:active{color:var(--c-primary);background:#f3f4f6}.m-stat-card{border-left:3px solid #0000}.msc-orange{border-left-color:var(--c-orange)}.msc-orange .msc-num{color:var(--c-orange)}.msc-blue{border-left-color:var(--c-primary)}.msc-blue .msc-num{color:var(--c-primary)}.msc-green{border-left-color:var(--c-green)}.msc-green .msc-num{color:var(--c-green)}.msc-red{border-left-color:var(--c-red)}.msc-red .msc-num{color:var(--c-red)}.m-quick-grid{grid-template-columns:repeat(4,1fr)}.m-quick-item{padding:12px 6px 10px}.m-quick-item .mqi-icon{width:40px;height:40px;color:var(--c-primary);background:#eef4ff;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.m-quick-item .mqi-icon.mqi-secondary{color:#4b5563;background:#f3f4f6}.m-quick-item:active .mqi-icon{background:#dbeafe}.mobile-nav-item .nav-icon{display:inline-flex}.mobile-nav-item.active .nav-icon{color:var(--c-primary)}.m-quick-item{justify-content:center;min-height:96px}.m-quick-item>span:last-child{color:var(--c-tx);font-size:13px;line-height:1.2}.mh-bell{position:relative}.mh-bell-badge{background:var(--c-red);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-2px;right:-4px}.m2-greet{background:linear-gradient(135deg,#2563eb12,#7c3aed0d);border-radius:12px;margin-bottom:4px;padding:16px 14px 18px}.m2-greet-line1{color:var(--c-tx);font-size:20px;font-weight:700}.m2-greet-line2{color:var(--c-tx2);flex-wrap:wrap;gap:6px;margin-top:6px;font-size:12px;display:flex}.m2-dot{color:#c7ccd4}.m2-todo-panel{box-shadow:var(--shadow-card);background:#fff;border-radius:12px;grid-template-columns:repeat(2,1fr);gap:10px;padding:12px;display:grid}.m2-todo-cell{cursor:pointer;background:#f7f8fa;border-radius:10px;flex-direction:column;gap:8px;padding:14px 12px;display:flex}.m2-todo-cell:active{background:#eef0f3}.m2-todo-cell-top{align-items:center;gap:6px;display:flex}.m2-todo-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.m2-todo-name{color:var(--c-tx2);font-size:12.5px}.m2-todo-num{font-size:22px;font-weight:700;line-height:1.1}.m2-biz-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.m2-biz-card{box-shadow:var(--shadow-card);background:#fff;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.m2-biz-icon{color:var(--c-primary);flex-shrink:0}.m2-biz-num{color:var(--c-tx);font-size:18px;font-weight:700;line-height:1.1}.m2-biz-lbl{color:var(--c-tx2);margin-top:1px;font-size:11px}.m2-all-link{color:var(--c-primary);cursor:pointer;font-size:12px;font-weight:400}.m2-alert-list{flex-direction:column;gap:8px;display:flex}.m2-alert-row{box-shadow:var(--shadow-card);cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:10px;padding:11px 12px;display:flex}.m2-alert-row:active{background:#f9fafb}.m2-alert-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.m2-alert-dot.unread{background:var(--c-red)}.m2-alert-dot.read{background:#d1d5db}.m2-alert-body{flex:1;min-width:0}.m2-alert-title{color:var(--c-tx);font-size:13.5px;font-weight:600}.m2-alert-row.read .m2-alert-title{color:var(--c-tx2);font-weight:400}.m2-alert-content{color:var(--c-tx2);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;overflow:hidden}.m2-alert-date{color:#9ca3af;flex-shrink:0;margin-top:2px;font-size:11px}.m2-alert-empty{box-shadow:var(--shadow-card);color:#9ca3af;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:13px;display:flex}.m2-ai{background:#7c3aed0f;border:1px solid #7c3aed2e;border-radius:10px;align-items:center;gap:10px;margin:4px 0 8px;padding:9px 12px;display:flex}.m2-ai .m2-ai-icon{color:var(--c-purple);flex-shrink:0}.m2-ai-text{flex:1;align-items:baseline;gap:8px;display:flex}.m2-ai-title{color:#6d28d9;font-size:13px;font-weight:600}.m2-ai-sub{color:#a78bfa;font-size:11px}.m2-ai-arrow{color:#c4b5fd;flex-shrink:0}.m2-opp-title{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.m2-opp-name{color:var(--c-tx);font-size:17px;font-weight:700}.m2-opp-meta{grid-template-columns:1fr 1fr;gap:4px 12px;margin-bottom:10px;display:grid}.m2-opp-kv{gap:8px;padding:3px 0;font-size:13px;display:flex}.m2-opp-kv .k{color:var(--c-tx2);flex-shrink:0;width:52px}.m2-opp-amount{color:var(--c-primary);font-size:26px;font-weight:700;line-height:1.1}.m2-opp-amount-lbl{color:var(--c-tx2);margin-top:2px;font-size:11.5px}.m2-opp-kv-block{box-shadow:var(--shadow-card);background:#fff;border-radius:10px;padding:8px 14px}@media (width<=767px){.ai-card{padding:11px 12px}.ai-fact-time,.ai-feedback{width:100%;margin-left:0}.ai-feedback .btn{flex:1}.ai-confidence{margin-left:0}}*{box-sizing:border-box;margin:0;padding:0}:root{--c-brand:#10233f;--c-brand-soft:#1b3a66;--c-primary:#2563eb;--c-primary-dark:#1d4ed8;--c-green:#16a34a;--c-green-bg:#dcfce7;--c-green-tx:#166534;--c-blue-bg:#dbeafe;--c-blue-tx:#1e40af;--c-orange:#ea580c;--c-orange-bg:#ffedd5;--c-orange-tx:#9a3412;--c-red:#dc2626;--c-red-bg:#fee2e2;--c-red-tx:#991b1b;--c-purple:#7c3aed;--c-purple-2:#8b5cf6;--c-bg:#f5f6f8;--c-card:#fff;--c-tx:#1f2329;--c-tx2:#6b7280;--c-line:#eef0f3;--radius:12px;--radius-s:8px;--shadow-card:0 1px 3px #10233f14;--h-btn:34px;--h-input:34px;--row-h:42px;--gap-page:24px}body{background:var(--c-bg);color:var(--c-tx);font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}.app{min-height:100vh;display:flex}.sidebar{color:#fff;background:linear-gradient(#10233f 0%,#0c1b32 100%);flex-direction:column;flex-shrink:0;width:224px;display:flex}.sidebar .logo{letter-spacing:.5px;border-bottom:1px solid #ffffff14;padding:18px 20px 14px;font-size:16px;font-weight:700}.sidebar .logo .logo-sub{color:#8fa3c4;letter-spacing:0;margin-top:3px;font-size:11px;font-weight:400;display:block}.sidebar nav{flex:1;padding:10px 0 14px;overflow-y:auto}.nav-group-label{color:#64789c;letter-spacing:2px;padding:14px 20px 6px;font-size:11px}.sidebar nav a{border-radius:var(--radius-s);color:#b8c7de;align-items:center;gap:10px;margin:1px 10px;padding:9px 12px;font-size:14px;display:flex}.sidebar nav a .icon{opacity:.85;flex-shrink:0}.sidebar nav a:hover{color:#fff;background:#ffffff0f}.sidebar nav a.active{background:var(--c-primary);color:#fff;box-shadow:0 2px 6px #2563eb59}.sidebar nav a.active .icon{opacity:1}.sidebar-footer{border-top:1px solid #ffffff14;padding:14px 16px}.sidebar-identity{color:#dbe4f0;word-break:break-all;margin-bottom:4px;font-size:13px;font-weight:600}.sidebar-identity .identity-job{color:#8fa3c4;margin-top:2px;font-size:12px;font-weight:400;display:block}.sidebar-logout-error{color:#fca5a5;margin-bottom:8px;font-size:12px}.sidebar-footer .btn-ghost{color:#c8d4e6;background:#ffffff0f;border:1px solid #ffffff24;width:100%}.sidebar-footer .btn-ghost:hover{color:#fff;background:#ffffff1f}.topbar{background:var(--c-card);border-bottom:1px solid var(--c-line);align-items:center;gap:14px;margin:-20px -28px 18px;padding:12px 28px;display:flex}.topbar .spacer{flex:1}.topbar-search{color:#9ca3af;border:1px solid var(--c-line);-webkit-user-select:none;user-select:none;background:#f3f4f6;border-radius:17px;align-items:center;gap:8px;height:34px;padding:0 14px;font-size:13px;display:inline-flex}.topbar-bell{color:#4b5563;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;position:relative}.topbar-bell:hover{color:var(--c-primary);background:#f3f4f6}.topbar-user{align-items:center;gap:10px;padding:4px 6px;display:flex}.topbar-user .tu-avatar{background:linear-gradient(135deg, var(--c-primary), #6478f0);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:600;display:flex}.topbar-user .tu-name{color:var(--c-tx);font-size:13px;font-weight:600;line-height:1.2}.topbar-user .tu-job{color:var(--c-tx2);font-size:11px}.login-page{background:var(--c-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:12px;width:360px;max-width:92vw;padding:40px;box-shadow:0 4px 16px #00000014}.login-logo{color:#1f2937;margin-bottom:12px;font-size:22px;font-weight:700}.login-tip{color:#6b7280;margin-bottom:24px}.login-btn{width:100%;padding:10px;font-size:15px}.auth-error-page{background:#f5f6f8;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.main{flex:1;padding:20px 28px;overflow-x:auto}.page-title{margin-bottom:16px;font-size:20px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar input,.toolbar select{background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:7px 10px}.toolbar .spacer{flex:1}.btn{color:#fff;background:#2563eb;border:none;border-radius:6px;padding:7px 14px}.btn:hover{background:#1d4ed8}.btn:disabled{cursor:not-allowed;background:#9ca3af}.btn-ghost{color:#374151;background:#fff;border:1px solid #d1d5db}.btn-ghost:hover{background:#f3f4f6}.btn-danger{background:#dc2626}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:4px 10px;font-size:13px}table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;overflow:hidden;box-shadow:0 1px 2px #0000000d}th,td{text-align:left;border-bottom:1px solid #eef0f3;padding:10px 12px}th{color:#4b5563;background:#f9fafb;font-size:13px;font-weight:600}tr:last-child td{border-bottom:none}.row-actions{gap:6px;display:flex}.tag{color:#374151;background:#e5e7eb;border-radius:10px;padding:2px 8px;font-size:12px;display:inline-block}.tag-green{color:#166534;background:#dcfce7}.tag-red{color:#991b1b;background:#fee2e2}.tag-yellow{color:#854d0e;background:#fef9c3}.tag-gray{color:#6b7280;background:#f3f4f6}.empty{text-align:center;color:#9ca3af;background:#fff;border-radius:8px;padding:48px}.loading{text-align:center;color:#9ca3af;padding:40px}.error-box{color:#991b1b;background:#fef2f2;border-radius:6px;margin-bottom:12px;padding:10px 14px}.modal-mask{z-index:50;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;width:560px;max-width:92vw;max-height:88vh;overflow:auto}.modal-header{border-bottom:1px solid #eef0f3;justify-content:space-between;align-items:center;padding:14px 18px;font-weight:600;display:flex}.modal-body{padding:18px}.modal-footer{border-top:1px solid #eef0f3;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.close-x{color:#9ca3af;background:0 0;border:none;font-size:20px}.form-row{margin-bottom:14px}.form-row label{color:#4b5563;margin-bottom:5px;font-size:13px;display:block}.form-row label .req{color:#dc2626}.form-row input,.form-row select,.form-row textarea{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:8px 10px}.form-row textarea{resize:vertical;min-height:70px}.form-check{align-items:center;gap:8px;display:flex}.form-check input{width:auto}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.detail-grid{grid-template-columns:140px 1fr;gap:8px 16px;display:grid}.detail-grid .k{color:#6b7280}.section-title{border-bottom:1px solid #eef0f3;margin:18px 0 10px;padding-bottom:6px;font-weight:600}.toast{z-index:100;color:#fff;border-radius:6px;padding:10px 20px;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast-success{background:#16a34a}.toast-error{background:#dc2626}.stat-cards{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stat-card{background:#fff;border-radius:10px;padding:22px;box-shadow:0 1px 2px #0000000d}.stat-card .num{color:#1f2937;font-size:32px;font-weight:700}.stat-card .lbl{color:#6b7280;margin-top:6px}.selectable-row{cursor:pointer}.selectable-row:hover{background:#f0f7ff}.row-selected{background:#eff6ff}.row-selected:hover{background:#e0edff}.inline-create{padding:8px 0}.inline-create input{border:1px solid #d1d5db;border-radius:6px;width:100%;margin-bottom:8px;padding:7px 10px}.inline-create-actions{gap:6px;display:flex}.inline-create-error{color:#dc2626;margin-top:4px;font-size:13px}.field-with-inline{align-items:flex-start;gap:6px;display:flex}.field-with-inline select{flex:1}.field-with-inline .inline-trigger{flex-shrink:0;margin-top:2px}.status-tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.status-tab{color:#4b5563;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:6px 14px;font-size:13px}.status-tab.active{color:#fff;background:#2563eb;border-color:#2563eb}.status-tag{border-radius:10px;padding:2px 10px;font-size:12px;display:inline-block}.status-tag.s-pending{color:#6b7280;background:#f3f4f6}.status-tag.s-construction{color:#854d0e;background:#fef9c3}.status-tag.s-acceptance{color:#1e40af;background:#dbeafe}.status-tag.s-delivered{color:#166534;background:#dcfce7}.inst-card{cursor:pointer;background:#fff;border-radius:10px;margin-bottom:10px;padding:14px 16px;box-shadow:0 1px 2px #0000000d}.inst-card:hover{box-shadow:0 2px 8px #0000001a}.inst-card .ic-project{margin-bottom:4px;font-size:15px;font-weight:600}.inst-card .ic-customer{color:#6b7280;margin-bottom:6px;font-size:13px}.inst-card .ic-meta{color:#6b7280;gap:12px;font-size:12px;display:flex}.detail-back{margin-bottom:12px}.detail-back button{color:#2563eb;background:0 0;border:none;font-size:14px}.detail-section{background:#fff;border-radius:10px;margin-bottom:12px;padding:16px 18px;box-shadow:0 1px 2px #0000000d}.detail-section h3{color:#1f2937;margin-bottom:12px;font-size:15px;font-weight:600}.detail-section .ds-row{gap:8px;padding:4px 0;display:flex}.detail-section .ds-k{color:#6b7280;flex-shrink:0;width:120px;font-size:13px}.detail-section .ds-v{color:#1f2329;word-break:break-all;flex:1;font-size:13px}.warranty-result{flex-wrap:wrap;gap:16px;display:flex}.warranty-item{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;flex:1;min-width:120px;padding:10px 14px}.warranty-item .wi-label{color:#6b7280;font-size:12px}.warranty-item .wi-value{color:#166534;margin-top:2px;font-size:16px;font-weight:700}.action-bar{z-index:10;background:#fff;border-top:1px solid #eef0f3;justify-content:flex-end;gap:8px;padding:12px 0;display:flex;position:sticky;bottom:0;left:0;right:0}.engineer-list{border:1px solid #eef0f3;border-radius:6px;flex-direction:column;gap:4px;max-height:160px;padding:6px;display:flex;overflow-y:auto}.engineer-list label{align-items:center;gap:8px;padding:4px 6px;font-size:13px;display:flex}.engineer-list label:hover{background:#f9fafb}.file-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin-bottom:8px;display:grid}.file-thumb{aspect-ratio:1;cursor:pointer;border:1px solid #eef0f3;border-radius:6px;width:100%;position:relative;overflow:hidden}.file-thumb img{object-fit:cover;width:100%;height:100%}.file-thumb-pdf{background:#f3f4f6;justify-content:center;align-items:center;display:flex}.file-thumb-pdf .pdf-icon{font-size:28px}.file-thumb .file-del,.insp-photo-thumb .file-del{color:#fff;z-index:1;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;display:flex;position:absolute;top:2px;right:2px}.upload-btn{color:#6b7280;background:#fff;border:1px dashed #d1d5db;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;display:inline-flex}.upload-btn:hover{color:#2563eb;background:#f9fafb;border-color:#2563eb}.upload-hint{color:#9ca3af;margin-top:4px;font-size:12px}.form-radio-group{flex-direction:column;gap:8px;padding:4px 0;display:flex}.form-radio{color:#1f2937;cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.form-radio input[type=radio]{cursor:pointer}.lightbox-mask{z-index:200;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;max-width:92vw;max-height:92vh}.lightbox-close{color:#fff;background:#fff3;border:none;border-radius:50%;width:36px;height:36px;font-size:20px;position:fixed;top:16px;right:16px}.status-tag.s-inspect-pending{color:#6b7280;background:#f3f4f6}.status-tag.s-inspect-progress{color:#854d0e;background:#fef9c3}.status-tag.s-inspect-done{color:#166534;background:#dcfce7}.insp-cards{grid-template-columns:1fr;gap:10px;display:grid}.insp-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.insp-card-header{background:#f9fafb;border-bottom:1px solid #eef0f3;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.insp-card-header .ich-pos{color:#1f2937;font-size:15px;font-weight:600}.insp-card-header .ich-cat{color:#6b7280;font-size:13px}.insp-card-body{padding:12px 16px}.insp-card-body .icb-row{gap:8px;padding:3px 0;font-size:13px;display:flex}.insp-card-body .icb-row .k{color:#6b7280;flex-shrink:0;width:70px}.insp-result{font-weight:600}.insp-result-normal{color:#166534}.insp-result-abnormal{color:#dc2626}.insp-result-pending{color:#9ca3af;font-weight:400}.insp-actions{gap:8px;margin-top:10px;display:flex}.insp-actions .btn{min-width:72px}.insp-abnormal-detail{background:#fef2f2;border-radius:6px;margin-top:10px;padding:8px 10px}.insp-abnormal-detail>div{gap:8px;padding:2px 0;font-size:13px;display:flex}.insp-abnormal-detail .k{color:#6b7280;flex-shrink:0;width:70px}.insp-abnormal-form{background:#fff7f7;border:1px solid #fecaca;border-radius:8px;margin-top:10px;padding:12px}.insp-abnormal-form .radio-row{gap:16px;display:flex}.insp-abnormal-form .radio-row label{align-items:center;gap:4px;font-size:14px;display:flex}.insp-abnormal-form .radio-row input{width:auto}.insp-form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.insp-photos-wrap{border-top:1px dashed #eef0f3;margin-top:12px;padding-top:10px}.insp-photos-title{color:#4b5563;margin-bottom:6px;font-size:13px;font-weight:600}.insp-photo-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-bottom:8px;display:grid}.insp-photo-thumb{aspect-ratio:1;cursor:pointer;border:1px solid #eef0f3;border-radius:6px;width:100%;position:relative;overflow:hidden}.insp-photo-thumb img{object-fit:cover;width:100%;height:100%}.confirm-modal-text{color:#374151;font-size:14px;line-height:1.6}@media (width<=767px){.main{padding:12px 14px;overflow-x:hidden}.page-title{margin-bottom:10px;font-size:18px}.toolbar{flex-direction:column;align-items:stretch}.toolbar .spacer{display:none}.toolbar input,.toolbar select{width:100%}.form-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:100px 1fr}.detail-section .ds-k{width:90px}.stat-cards{grid-template-columns:repeat(2,1fr)}.action-bar{padding:10px 0}.modal{border-radius:0;width:100%;max-width:100vw}.table-desktop{display:none}.cards-mobile{display:block}.insp-actions .btn{padding:8px 16px;font-size:14px}.insp-card-header,.insp-card-body{padding:10px 14px}}@media (width>=769px){.cards-mobile{display:none}.insp-cards{grid-template-columns:repeat(2,1fr);align-items:start}}.s-after-pending{color:#92400e;background:#fef3c7}.s-after-accepted{color:#1e40af;background:#dbeafe}.s-after-progress{color:#4338ca;background:#e0e7ff}.s-after-done{color:#065f46;background:#d1fae5}.as-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:10px;padding:12px}.as-card:hover{box-shadow:0 2px 8px #00000014}.as-project{margin-bottom:4px;font-size:15px;font-weight:600}.as-meta{color:#6b7280;flex-wrap:wrap;gap:8px;margin-bottom:4px;font-size:13px;display:flex}.as-desc{color:#374151;margin-top:4px;font-size:13px}.as-complete-form{margin-top:12px}.as-fee-row{align-items:center;gap:12px;display:flex}.as-fee-row input{width:100px}.as-fee-total{font-weight:600}.as-inspection-source{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;margin:8px 0;padding:8px 12px;font-size:13px}@media (width<=640px){.as-card{padding:10px}.as-meta{font-size:12px}}.drawer-mask{z-index:999;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#fff;flex-direction:column;width:480px;max-width:100vw;height:100%;animation:.2s ease-out drawer-slide;display:flex}@keyframes drawer-slide{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:16px 20px;font-weight:600;display:flex}.drawer-body{flex:1;padding:16px 20px;overflow-y:auto}.drawer-footer{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}@media (width<=640px){.drawer{width:100%}}.mc-detail-row{border-bottom:1px solid #f3f4f6;gap:12px;padding:6px 0;font-size:14px;display:flex}.mc-detail-label{color:#6b7280;flex-shrink:0;min-width:80px}.mc-detail-section{margin-top:16px}.mc-files-toolbar{margin-bottom:10px}.mc-files-list{flex-direction:column;gap:8px;display:flex}.mc-file-item{border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:10px;padding:8px;display:flex}.mc-file-thumb{object-fit:cover;cursor:pointer;border-radius:4px;flex-shrink:0;width:40px;height:40px}.mc-file-pdf{color:#dc2626;background:#fef2f2;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.mc-file-info{flex:1;min-width:0}.mc-file-name{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.mc-file-meta{color:#9ca3af;font-size:12px}.page-header{margin-bottom:16px}.page-header h2{font-size:20px;font-weight:600}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.filter-tabs{flex-wrap:wrap;gap:6px;display:flex}.filter-tab{color:#4b5563;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:6px 14px;font-size:13px}.filter-tab.active{color:#fff;background:#2563eb;border-color:#2563eb}.filter-bar .search-input{background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:7px 10px}.data-table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;overflow:hidden;box-shadow:0 1px 2px #0000000d}.data-table th{color:#4b5563;text-align:left;background:#f9fafb;border-bottom:1px solid #eef0f3;padding:10px 12px;font-size:13px;font-weight:600}.data-table td{border-bottom:1px solid #eef0f3;padding:10px 12px}.data-table tr:last-child td{border-bottom:none}.data-table tr.clickable{cursor:pointer}.data-table tr.clickable:hover{background:#f0f7ff}.tag-overdue{color:#991b1b;background:#fee2e2;border-radius:10px;padding:2px 8px;font-size:12px;display:inline-block}.detail-row{border-bottom:1px solid #f3f4f6;gap:8px;padding:5px 0;font-size:14px;display:flex}.detail-label{color:#6b7280;flex-shrink:0;min-width:80px}.detail-val{color:#1f2329;word-break:break-all;flex:1}.payment-list{flex-direction:column;gap:10px;display:flex}.payment-item{border:1px solid #e5e7eb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.payment-item-main{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.payment-item-date{color:#6b7280;min-width:100px;font-size:13px}.payment-item-amount{color:#1f2937;font-weight:600}.payment-item-method{color:#4b5563;background:#f3f4f6;border-radius:4px;padding:2px 8px;font-size:13px}.payment-item-remark{color:#6b7280;font-size:13px}.payment-item-actions{gap:6px;display:flex}.form-group{margin-bottom:14px}.form-group label{color:#4b5563;margin-bottom:5px;font-size:13px;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:8px 10px}.form-group textarea{resize:vertical;min-height:60px}.analytics-page{max-width:1200px}.analytics-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px;margin-bottom:18px;display:flex}.analytics-header .page-title{margin-bottom:0}.analytics-meta{color:#6b7280;align-items:center;gap:16px;font-size:13px;display:flex}.analytics-section{background:#fff;border-radius:10px;margin-bottom:18px;padding:20px 22px;box-shadow:0 1px 2px #0000000d}.analytics-section-title{color:#1f2937;border-bottom:1px solid #eef0f3;margin-bottom:16px;padding-bottom:10px;font-size:16px;font-weight:600}.analytics-sub-row{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.analytics-sub-row-3{grid-template-columns:repeat(3,1fr)}.analytics-sub-card{background:#f9fafb;border:1px solid #eef0f3;border-radius:8px;padding:14px 16px}.analytics-sub-num{color:#1f2937;font-size:22px;font-weight:700}.analytics-sub-lbl{color:#6b7280;margin-top:4px;font-size:13px}.analytics-info-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.analytics-info-card{background:#fff;border:1px solid #eef0f3;border-radius:8px;padding:14px 16px}.analytics-info-title{color:#374151;margin-bottom:10px;font-size:14px;font-weight:600}.analytics-info-row{color:#4b5563;justify-content:space-between;padding:5px 0;font-size:14px;display:flex}.analytics-info-val{color:#1f2937;font-weight:600}.analytics-bar-list{flex-direction:column;gap:10px;display:flex}.analytics-bar-row{align-items:center;gap:10px;display:flex}.analytics-bar-label{color:#4b5563;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:80px;font-size:13px;overflow:hidden}.analytics-bar-track{background:#f3f4f6;border-radius:8px;flex:1;height:16px;overflow:hidden}.analytics-bar-fill{background:#2563eb;border-radius:8px;min-width:0;height:100%}.analytics-bar-count{text-align:right;color:#1f2937;flex-shrink:0;width:56px;font-size:13px;font-weight:600}.analytics-table{border-collapse:collapse;width:100%}.analytics-table th,.analytics-table td{border-bottom:1px solid #eef0f3;padding:8px 10px;font-size:13px}.analytics-table th{color:#4b5563;text-align:left;background:#f9fafb;font-weight:600}.analytics-table tr:last-child td{border-bottom:none}.analytics-empty{text-align:center;color:#9ca3af;padding:20px;font-size:13px}.analytics-money-paid{color:#166534}.analytics-money-unpaid{color:#1f2937}.analytics-money-overdue{color:#dc2626}.aging-bucket-list{flex-direction:column;gap:10px;margin-top:4px;display:flex}.aging-bucket-row{border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.aging-bucket-row.clickable{cursor:pointer}.aging-bucket-row.clickable:hover{background:#f3f4f6}.aging-bucket-label{color:#4b5563;flex-shrink:0;width:110px;font-size:13px}.aging-bucket-fill{border-radius:8px;min-width:0;height:100%}.aging-bucket-fill.tone-green{background:#16a34a}.aging-bucket-fill.tone-amber{background:#d97706}.aging-bucket-fill.tone-orange{background:#ea580c}.aging-bucket-fill.tone-red{background:#dc2626}.aging-bucket-fill.tone-darkred{background:#991b1b}.aging-bucket-fill.tone-gray{background:#9ca3af}.aging-bucket-amount{text-align:right;color:#1f2937;flex-shrink:0;width:120px;font-size:13px;font-weight:600}.aging-bucket-count{text-align:right;color:#6b7280;flex-shrink:0;width:56px;font-size:13px}.aging-bucket-arrow{color:#9ca3af;flex-shrink:0;width:16px;font-size:16px;line-height:1}.analytics-trends-grid{grid-template-columns:repeat(3,1fr)}.analytics-bar-fill.tone-green{background:#16a34a}.analytics-bar-fill.tone-purple{background:#7c3aed}.analytics-ai-list{flex-direction:column;gap:12px;display:flex}.proj-ops-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.proj-ops-card{background:#f9fafb;border:1px solid #eef0f3;border-radius:8px;padding:12px 14px}.proj-ops-title{color:#374151;margin-bottom:8px;font-size:13px;font-weight:600}.proj-ops-row{color:#4b5563;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;font-size:13px;display:flex}.proj-ops-row b{color:#1f2937;text-align:right;font-weight:600}.proj-ops-row.muted{color:#9ca3af}.proj-ops-row.muted b{color:#6b7280;font-weight:500}.proj-ops-danger{color:#dc2626}.proj-ops-note{color:#9ca3af;margin-top:10px;font-size:12px}.device-risk-summary{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.device-risk-note{color:#9ca3af;flex-basis:100%;font-size:12px}.page-header{justify-content:space-between;align-items:center;display:flex}.page-header-actions{gap:8px;display:flex}.notif-list{flex-direction:column;gap:10px;display:flex}.notif-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;gap:12px;padding:14px 16px;transition:box-shadow .15s,border-color .15s;display:flex}.notif-card:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #0000000f}.notif-card.is-read{opacity:.65}.notif-dot-wrap{align-items:flex-start;padding-top:6px;display:flex}.notif-dot{background:#d1d5db;border-radius:50%;flex-shrink:0;width:10px;height:10px}.notif-dot.unread{background:#dc2626}.notif-body{flex:1;min-width:0}.notif-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.notif-title{color:#1f2329;font-size:14px;font-weight:600}.notif-content{color:#4b5563;word-break:break-all;margin-top:4px;font-size:13px}.notif-meta{color:#9ca3af;justify-content:space-between;gap:8px;margin-top:6px;font-size:12px;display:flex}.notif-read-state{font-size:12px}.wb{max-width:1280px}.wb-greeting{margin-bottom:18px}.wb-greeting h1{color:var(--c-tx);font-size:22px;font-weight:700}.wb-greeting .wb-sub{color:var(--c-tx2);margin-top:4px;font-size:13px}.wb-section-title{color:var(--c-tx);align-items:center;gap:8px;margin:22px 0 12px;font-size:15px;font-weight:600;display:flex}.wb-section-title .icon{color:var(--c-primary)}.wb-overview{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.wb-ov-card{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);align-items:center;gap:14px;padding:16px 18px;display:flex}.wb-ov-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.wb-ov-icon.blue{background:var(--c-blue-bg);color:var(--c-blue-tx)}.wb-ov-icon.green{background:var(--c-green-bg);color:var(--c-green-tx)}.wb-ov-icon.orange{background:var(--c-orange-bg);color:var(--c-orange-tx)}.wb-ov-icon.purple{color:var(--c-purple);background:#ede9fe}.wb-ov-num{font-size:26px;font-weight:700;line-height:1.1}.wb-ov-lbl{color:var(--c-tx2);margin-top:2px;font-size:12px}.wb-pair{grid-template-columns:1fr 1fr;gap:14px;display:grid}.wb-panel{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px 18px}.wb-panel h3{align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:600;display:flex}.wb-panel h3 .icon{color:var(--c-primary)}.wb-panel.alert h3 .icon{color:var(--c-red)}.wb-todo-row{border-radius:var(--radius-s);cursor:pointer;align-items:center;gap:12px;padding:9px 10px;display:flex}.wb-todo-row:hover{background:#f6f8fb}.wb-todo-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.wb-todo-name{color:var(--c-tx);flex:1;font-size:13px}.wb-todo-num{font-size:18px;font-weight:700}.wb-empty{color:#9ca3af;align-items:center;gap:8px;padding:18px 0 10px;font-size:13px;display:flex}.wb-biz{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.wb-biz-card{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;border:1px solid #0000;padding:16px 18px}.wb-biz-card:hover{border-color:#c7d2fe;box-shadow:0 3px 10px #10233f1a}.wb-biz-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.wb-biz-head .icon{color:var(--c-primary)}.wb-biz-name{font-size:14px;font-weight:600}.wb-biz-nums{gap:18px;display:flex}.wb-biz-num .n{font-size:18px;font-weight:700}.wb-biz-num .l{color:var(--c-tx2);margin-top:1px;font-size:12px}.wb-biz-enter{color:var(--c-primary);align-items:center;gap:4px;margin-top:12px;font-size:12.5px;display:inline-flex}.wb-ai-status{border-radius:var(--radius);background:linear-gradient(135deg,#7c3aed14,#8b5cf624);border:1px solid #7c3aed33;align-items:center;gap:14px;padding:16px 20px;display:flex}.wb-ai-status-icon{background:linear-gradient(135deg, var(--c-purple), var(--c-purple-2));color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.wb-ai-status-ok{color:#4c1d95;font-size:14px}.wb-ai-status-ok b{color:var(--c-purple);font-size:16px}.wb-ai-status-err{color:var(--c-red);align-items:center;gap:6px;font-size:14px;display:flex}.wb-focus{flex-direction:column;gap:12px;display:flex}.wb-focus-empty{text-align:center;color:var(--c-tx2);background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:28px}.wb-focus-card{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);border-left:4px solid var(--c-orange);padding:16px 18px}.wb-focus-card.wb-p-red{border-left-color:var(--c-red)}.wb-focus-card.wb-p-blue{border-left-color:var(--c-primary)}.wb-focus-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.wb-prio{color:var(--c-orange);background:#ea580c1f;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.wb-prio b{margin-right:2px}.wb-prio-red{color:var(--c-red);background:#dc26261f}.wb-prio-blue{color:var(--c-primary);background:#2563eb1f}.wb-focus-title{color:var(--c-tx);font-size:14px;font-weight:600}.wb-focus-subject{color:var(--c-tx2);font-size:13px}.wb-focus-status{border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500}.wb-focus-status.is-pending{color:var(--c-orange-tx);background:var(--c-orange-bg)}.wb-focus-status.is-processing{color:var(--c-blue-tx);background:var(--c-blue-bg)}.wb-focus-status.is-recheck{color:var(--c-purple);background:#7c3aed1a}.wb-focus-body{color:var(--c-tx);flex-direction:column;gap:5px;font-size:13px;line-height:1.6;display:flex}.wb-focus-row{gap:6px;display:flex}.wb-focus-lbl{color:var(--c-tx2);flex-shrink:0;min-width:56px}.wb-focus-kref{color:var(--c-purple);margin-top:4px;font-size:12px}.wb-focus-ai-pending{color:var(--c-tx2);align-items:center;gap:5px;font-size:12.5px;display:flex}.wb-focus-foot{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.wb-focus-meta{color:var(--c-tx2);font-size:11.5px}.wb-quick{grid-template-columns:repeat(7,1fr);gap:12px;display:grid}.wb-quick-item{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;border:1px solid #0000;flex-direction:column;align-items:center;gap:8px;padding:14px 8px 12px;display:flex}.wb-quick-item:hover{border-color:#c7d2fe;box-shadow:0 3px 10px #10233f1a}.wb-quick-icon{width:40px;height:40px;color:var(--c-primary);background:#eef4ff;border-radius:10px;justify-content:center;align-items:center;display:flex}.wb-quick-item span.wbq-lbl{color:var(--c-tx);font-size:12px}@media (width<=1100px){.wb-overview,.wb-biz{grid-template-columns:repeat(2,1fr)}.wb-quick{grid-template-columns:repeat(4,1fr)}.wb-pair{grid-template-columns:1fr}}@media (width<=640px){.wb-overview{grid-template-columns:repeat(2,1fr)}.wb-quick{grid-template-columns:repeat(3,1fr)}}.sal-page{max-width:1280px}.sal-head{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.sal-sub{color:var(--c-tx2);font-size:13px}.sal-overview{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px;display:grid}.sal-ov-card{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;border:1px solid #0000;padding:14px 16px}.sal-ov-card:hover,.sal-ov-card.active{border-color:#c7d2fe}.sal-ov-num{font-size:24px;font-weight:700}.sal-ov-lbl{color:var(--c-tx2);margin-top:2px;font-size:12px}.sal-num-red{color:var(--c-red)}.sal-list{flex-direction:column;gap:10px;display:flex}.sal-row{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;border:1px solid #0000;align-items:center;gap:16px;padding:14px 18px;display:flex}.sal-row:hover{border-color:#c7d2fe;box-shadow:0 3px 10px #10233f1a}.sal-row-main{flex:1;min-width:0}.sal-row-title{align-items:center;gap:8px;margin-bottom:6px;display:flex}.sal-title-text{color:var(--c-tx);font-size:14.5px;font-weight:600}.sal-row-meta{color:var(--c-tx2);flex-wrap:wrap;align-items:center;gap:14px;font-size:12.5px;display:flex}.sal-row-meta .icon{vertical-align:-2px;margin-right:2px}.sal-row-right{text-align:right;flex-shrink:0}.sal-amount{color:var(--c-tx);font-size:15px;font-weight:700}.sal-close-date{color:var(--c-tx2);margin-top:2px;font-size:12px}.sal-overdue{color:var(--c-red)}.sal-row-actions{flex-shrink:0}.sal-stage-pill{border-radius:10px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.sal-stage-lead{color:#6b7280;background:#f3f4f6}.sal-stage-follow{background:var(--c-orange-bg);color:var(--c-orange-tx)}.sal-stage-quote{background:var(--c-blue-bg);color:var(--c-blue-tx)}.sal-stage-won{background:var(--c-green-bg);color:var(--c-green-tx)}.sal-stage-lost{background:var(--c-red-bg);color:var(--c-red-tx)}.sal-pri{border-radius:4px;padding:1px 6px;font-size:11px}.sal-pri-高{background:var(--c-red-bg);color:var(--c-red-tx)}.sal-pri-中{background:var(--c-orange-bg);color:var(--c-orange-tx)}.sal-pri-低{color:#6b7280;background:#f3f4f6}.sal-detail-head{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;padding:18px 20px;display:flex}.sal-head-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sal-head-title h1{font-size:19px;font-weight:700}.sal-head-meta{color:var(--c-tx2);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:13px;display:flex}.sal-head-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.sal-need{color:var(--c-tx2);border-radius:var(--radius-s);background:#f9fafb;margin-top:8px;padding:8px 12px;font-size:13px}.sal-won{color:var(--c-green)}.sal-steps{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);align-items:center;gap:10px;margin-bottom:12px;padding:14px 20px;display:flex}.sal-step{color:#9ca3af;cursor:pointer;border-radius:14px;padding:4px 12px;font-size:13px}.sal-step:hover{color:var(--c-primary)}.sal-step.done{color:var(--c-primary);background:var(--c-blue-bg)}.sal-step.current{background:var(--c-primary);color:#fff;font-weight:600}.sal-step-line{background:var(--c-line);flex:0 0 40px;height:1px}.sal-stage-strip{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);color:var(--c-red-tx);background:var(--c-red-bg);margin-bottom:12px;padding:14px 20px;font-weight:600}.sal-card{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-bottom:12px;padding:16px 20px}.sal-card h3{align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:600;display:flex}.sal-card h3 .icon{color:var(--c-primary)}.sal-card-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sal-card-head h3{margin-bottom:0}.sal-kv-grid{grid-template-columns:110px 1fr 110px 1fr;gap:8px 14px;font-size:13.5px;display:grid}.sal-kv-grid .k{color:var(--c-tx2)}.sal-timeline{flex-direction:column;display:flex}.sal-tl-row{border-bottom:1px solid var(--c-line);gap:12px;padding:10px 0;display:flex}.sal-tl-row:last-child{border-bottom:none}.sal-tl-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:5px}.sal-tl-body{flex:1;min-width:0}.sal-tl-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sal-tl-type{color:#4b5563;background:#f3f4f6;border-radius:4px;padding:1px 8px;font-size:12px}.sal-tl-result{font-size:12.5px;font-weight:600}.sal-tl-who{color:var(--c-tx2);font-size:12.5px}.sal-tl-date{color:#9ca3af;margin-left:auto;font-size:12px}.sal-tl-content{color:var(--c-tx);white-space:pre-wrap;margin-top:5px;font-size:13.5px}.sal-tl-next{color:var(--c-tx2);margin-top:4px;font-size:12.5px}.sal-fu-form{border-radius:var(--radius-s);background:#f8faff;border:1px solid #dbe6ff;margin-bottom:12px;padding:12px 14px}.sal-fu-form textarea{border:1px solid #d1d5db;border-radius:6px;width:100%;min-height:64px;margin:8px 0}.sal-fu-row{align-items:center;gap:8px;display:flex}.sal-fu-row input{border:1px solid #d1d5db;border-radius:6px;padding:7px 10px}.sal-fu-row input:first-child{flex:1}.sal-fu-chips{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.sal-fu-chips-label{color:var(--c-tx2);flex-shrink:0;width:32px;font-size:12px}.sal-chip{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:14px;padding:4px 12px;font-size:12.5px}.sal-chip.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}.sal-quote-list{flex-direction:column;gap:8px;display:flex}.sal-quote-row{border:1px solid var(--c-line);border-radius:var(--radius-s);cursor:pointer;align-items:center;gap:14px;padding:10px 14px;display:flex}.sal-quote-row:hover{background:#fafbff;border-color:#c7d2fe}.sal-quote-ver{color:var(--c-primary);font-weight:700}.sal-quote-status{border-radius:10px;padding:1px 8px;font-size:12px}.sal-qs-草稿{color:#6b7280;background:#f3f4f6}.sal-qs-已发送{background:var(--c-blue-bg);color:var(--c-blue-tx)}.sal-qs-已确认{background:var(--c-green-bg);color:var(--c-green-tx)}.sal-qs-已失效{background:var(--c-red-bg);color:var(--c-red-tx)}.sal-quote-amount{font-weight:700}.sal-quote-meta{color:var(--c-tx2);font-size:12px}.sal-quote-arrow{color:#c7ccd4;margin-left:auto}.sal-win-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.sal-win-block{border:1px solid var(--c-line);border-radius:var(--radius-s);background:#f9fafb;padding:12px 14px}.sal-win-title{color:#4b5563;margin-bottom:8px;font-size:13px;font-weight:600}.sal-cs-row{border-bottom:1px dashed var(--c-line);padding:6px 0;font-size:13px}.sal-cs-row:last-child{border-bottom:none}.sal-cs-pay{color:var(--c-tx2);margin-top:2px;font-size:12px}.sal-win-hint{color:var(--c-tx2);font-size:13px}.sal-ai{border-radius:var(--radius);color:var(--c-purple);background:#7c3aed0d;border:1px dashed #7c3aed38;align-items:center;gap:8px;margin-bottom:12px;padding:10px 16px;font-size:12.5px;display:flex}.ai-panel .ai-card{margin-bottom:12px}.ai-panel .ai-card:last-child{margin-bottom:0}.ai-card{border:1px solid #7c3aed29;border-left:3px solid var(--c-purple);border-radius:var(--radius);background:#fdfcff;padding:12px 14px}.ai-card-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ai-card-icon{color:var(--c-purple);display:inline-flex}.ai-card-title{font-size:13.5px;font-weight:600}.ai-engine-badge{color:var(--c-purple);background:#7c3aed14;border:1px solid #7c3aed33;border-radius:10px;padding:1px 8px;font-size:11px}.ai-engine-badge-llm{color:var(--c-blue-tx);background:var(--c-blue-bg);border:1px solid #2563eb40;border-radius:10px;padding:1px 8px;font-size:11px}.ai-confidence{border-radius:10px;margin-left:auto;padding:1px 8px;font-size:11px}.ai-conf-high{color:var(--c-green-tx);background:var(--c-green-bg)}.ai-conf-medium{color:var(--c-blue-tx);background:var(--c-blue-bg)}.ai-conf-low{color:var(--c-orange-tx);background:var(--c-orange-bg)}.ai-section{margin-top:8px}.ai-sec-label{color:var(--c-tx2);letter-spacing:.5px;margin-bottom:4px;font-size:11.5px;font-weight:600}.ai-facts{flex-direction:column;gap:4px;display:flex}.ai-fact{cursor:default;background:#f8f7fc;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:4px 8px;font-size:12.5px;display:flex}.ai-fact-label{color:var(--c-tx2);flex-shrink:0}.ai-fact-label:after{content:"："}.ai-fact-value{color:var(--c-tx);word-break:break-all;font-weight:500}.ai-fact-cnt{color:var(--c-tx2);font-size:11.5px;font-style:normal;font-weight:400}.ai-fact-time{color:#9ca3af;flex-shrink:0;margin-left:auto;font-size:11px}.ai-reasoning{color:var(--c-tx);margin:0 0 6px;font-size:13px;line-height:1.7}.ai-reasoning-infer{color:var(--c-purple);background:#7c3aed0d;border-radius:6px;margin-bottom:0;padding:8px 10px}.ai-infer-tag{color:#fff;background:var(--c-purple);vertical-align:1px;border-radius:4px;margin-right:6px;padding:1px 6px;font-size:10.5px;display:inline-block}.ai-action{color:var(--c-tx);border-left:3px solid var(--c-primary);background:#2563eb0f;border-radius:0 6px 6px 0;padding:8px 10px;font-size:13px;font-weight:500;line-height:1.6}.ai-uncertainty{color:var(--c-tx2);margin-top:6px;font-size:12px;line-height:1.6}.ai-card-foot{border-top:1px dashed var(--c-line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:8px;display:flex}.ai-meta{color:#9ca3af;font-size:11px}.ai-feedback{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.ai-status-badge{border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500}.ai-status-active{color:var(--c-orange-tx);background:var(--c-orange-bg)}.ai-status-adopted{color:var(--c-blue-tx);background:var(--c-blue-bg)}.ai-status-resolved{color:var(--c-green-tx);background:var(--c-green-bg)}.ai-status-dismissed{color:var(--c-tx2);background:#6b72801f}.ai-status-inaccurate{color:var(--c-red);background:#dc26261a}.ai-status-expired{color:var(--c-tx2);background:#6b72801f}.ai-status-pending_recheck{color:var(--c-purple);background:#7c3aed1a}.ai-history{flex-direction:column;gap:6px;display:flex}.ai-history-item{background:#f8f7fc;border-radius:6px;padding:6px 8px;font-size:12.5px}.ai-history-who{color:var(--c-tx);margin-right:8px;font-weight:600}.ai-history-act{color:var(--c-purple);margin-right:8px}.ai-history-time{color:#9ca3af;font-size:11px}.ai-history-note{color:var(--c-tx2);margin-top:3px;line-height:1.6}.ai-fb-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.ai-fb-label{color:var(--c-tx2);margin-bottom:5px;font-size:12.5px;display:block}.ai-fb-note{box-sizing:border-box;border:1px solid var(--c-line);resize:vertical;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.ai-fb-note:focus{border-color:var(--c-purple);outline:none}.ai-fb-err{color:var(--c-red);margin-top:6px;font-size:12.5px}.ai-fb-input{box-sizing:border-box;border:1px solid var(--c-line);background:#fff;border-radius:6px;width:100%;margin-bottom:10px;padding:7px 10px;font-family:inherit;font-size:13px}.ai-fb-input:focus{border-color:var(--c-purple);outline:none}.ai-task{background:#f8f7fc;border-radius:6px;padding:8px 10px}.ai-task-title{color:var(--c-tx);margin-bottom:4px;font-size:13px;font-weight:600}.ai-task-meta{color:var(--c-tx2);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.ai-recheck-note{color:var(--c-purple);background:#7c3aed12;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding:7px 10px;font-size:12.5px;display:flex}.ai-expand-btn{color:var(--c-purple);cursor:pointer;background:0 0;border:1px solid #7c3aed4d;border-radius:4px;margin-left:auto;padding:2px 10px;font-size:12px}.ai-expand-btn:hover{background:#7c3aed14}.ai-collapsed{color:var(--c-tx);flex-direction:column;gap:4px;margin-top:8px;font-size:13px;display:flex}.ai-collapsed-row{gap:8px;line-height:1.5;display:flex}.ai-collapsed-lbl{color:var(--c-tx2);flex-shrink:0;min-width:52px}.sal-items-table{border-collapse:collapse;width:100%;font-size:13px}.sal-items-table th{color:#4b5563;text-align:left;border-bottom:1px solid var(--c-line);background:#f9fafb;padding:8px;font-weight:600}.sal-items-table td{border-bottom:1px solid var(--c-line);vertical-align:middle;padding:7px 8px}.sal-items-table input,.sal-items-table select{border:1px solid #d1d5db;border-radius:5px;width:100%;padding:5px 7px}.sal-item-subtotal{color:var(--c-primary);font-weight:600}.sal-item-cost{color:var(--c-tx2)}.sal-item-remark{color:#9ca3af;font-size:12px}.sal-quote-head{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.sal-quote-head-title{align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.sal-quote-head-meta{color:var(--c-tx2);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12.5px;display:flex}.sal-quote-total{text-align:right}.sal-quote-total-num{color:var(--c-primary);font-size:26px;font-weight:700}.sal-quote-total-lbl{color:var(--c-tx2);margin-top:2px;font-size:11.5px}.sal-quote-status-row{align-items:center;gap:6px;margin-top:12px;display:flex}.sal-empty-s{color:#9ca3af;padding:4px 0;font-size:13px}@media (width<=900px){.sal-overview{grid-template-columns:repeat(3,1fr)}.sal-kv-grid{grid-template-columns:90px 1fr}.sal-win-grid{grid-template-columns:1fr}.sal-row-actions{display:none}}.c360-facts{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;display:grid}.c360-fact-card{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;border:1px solid #0000;align-items:center;gap:12px;padding:12px 14px;display:flex}.c360-fact-card:hover{border-color:#c7d2fe}.c360-fact-icon{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.c360-blue{background:var(--c-blue-bg);color:var(--c-blue-tx)}.c360-green{background:var(--c-green-bg);color:var(--c-green-tx)}.c360-orange{background:var(--c-orange-bg);color:var(--c-orange-tx)}.c360-red{background:var(--c-red-bg);color:var(--c-red-tx)}.c360-fact-num{font-size:20px;font-weight:700;line-height:1.15}.c360-fact-sub{color:var(--c-tx2);margin-left:4px;font-size:12px;font-weight:400}.c360-fact-lbl{color:var(--c-tx2);margin-top:1px;font-size:11.5px}.c360-next{background:var(--c-card);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:12px 16px;display:flex}.c360-next-tag{border-radius:10px;padding:2px 10px;font-size:12px;font-weight:600}.c360-next-tag.overdue{background:var(--c-red);color:#fff}.c360-next-tag:not(.overdue){background:var(--c-blue-bg);color:var(--c-blue-tx)}.c360-next-text{color:var(--c-tx);font-weight:600}.c360-next-date{color:var(--c-tx2);font-size:13px}.c360-summary{border-radius:var(--radius);background:linear-gradient(135deg,#7c3aed12,#8b5cf61f);border:1px solid #7c3aed2e;margin-bottom:12px;padding:14px 18px}.c360-summary-head{color:#4c1d95;align-items:center;gap:6px;margin-bottom:10px;font-weight:600;display:flex}.c360-summary-body{color:var(--c-tx);flex-direction:column;gap:6px;font-size:13px;display:flex}.c360-summary-row{gap:10px;line-height:1.6;display:flex}.c360-summary-lbl{color:var(--c-tx2);flex-shrink:0;min-width:64px}.c360-summary-actions{gap:8px;margin-top:10px;display:flex}.c360-filter-row{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.c360-timeline .sal-tl-head{gap:8px}.c360-ev-title{color:var(--c-tx);font-size:13.5px;font-weight:600}.c360-ev-high{background:var(--c-blue-bg);color:var(--c-blue-tx);border-radius:4px;padding:1px 6px;font-size:10.5px}.c360-ev-detail{color:var(--c-tx2);margin-top:3px;font-size:12.5px}.c360-ev-date{color:#9ca3af;flex-shrink:0;font-size:12px}@media (width<=900px){.c360-facts{grid-template-columns:repeat(2,1fr)}}.kn-chunk{border:1px solid var(--c-line);background:#fafbfc;border-radius:8px;margin-bottom:8px;padding:8px 10px}.kn-chunk-head{color:var(--c-primary);margin-bottom:4px;font-size:12px;font-weight:600}.kn-chunk-body{color:var(--c-tx);white-space:pre-wrap;word-break:break-all;font-size:12.5px;line-height:1.7}.kn-file-row{border-bottom:1px dashed var(--c-line);justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:12.5px;display:flex}.kn-preview-tag{color:var(--c-tx2);background:#f3f4f6;border-radius:10px;margin:4px 6px 0 0;padding:1px 8px;font-size:11px;display:inline-block}.kn-warning-box{background:var(--c-orange-bg);color:var(--c-orange-tx);border:1px solid #ea580c59;border-radius:8px;margin-top:10px;padding:10px 12px;font-size:12.5px}.kn-page-head{margin-bottom:12px}.kn-page-title{color:var(--c-tx);margin:0;font-size:18px;font-weight:700}.kn-page-sub{color:var(--c-tx2);margin-top:3px;font-size:12.5px}.kn-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.kn-filter-group{flex-wrap:wrap;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.kn-search{border:1px solid var(--c-line);border-radius:6px;flex:1;min-width:220px;max-width:360px;padding:6px 12px;font-size:13px}.kn-action-group{flex-shrink:0;align-items:center;gap:8px;display:flex}@media (width<=768px){.kn-toolbar{flex-direction:column;align-items:stretch}.kn-search{max-width:none}.kn-action-group{justify-content:flex-end}}.form-row.two-col{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.form-row.two-col>div{flex-direction:column;display:flex}.form-row.two-col label{margin-bottom:4px}.ai-krefs{flex-direction:column;gap:4px;display:flex}.ai-kref{background:#7c3aed0a;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.ai-kref-title{color:var(--c-purple);font-weight:500}.ai-kref-sec{color:var(--c-tx2);font-size:11.5px}.ai-kref-history{color:var(--c-orange-tx);background:var(--c-orange-bg);border-radius:8px;padding:0 6px;font-size:10.5px}
