*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f4f6fa;--card:#fff;--line:#e7ebf2;--line-strong:#d8deeb;--text:#1b2434;--muted:#76809a;--primary:#1769e0;--primary-deep:#1256b8;--primary-soft:#eaf2ff;--grad:linear-gradient(135deg, #1769e0, #38bdf8);--green:#10b981;--amber:#e8a13c;--red:#e15a4e;--shadow:0 1px 2px #1720400d, 0 10px 30px #17204012;--shadow-pop:0 12px 44px #17204029;--r:16px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--duration-press:.16s;--duration-toast:.32s;--duration-modal:.36s;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}.mobile-only,.mobile-only-cell{display:none}.content:has(.opportunity-workbench){max-width:1600px;padding:18px 18px 44px}body:has(.opportunity-workbench) .topnav-in{max-width:1600px}.opportunity-workbench{color:#263142}.wb-titlebar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.wb-titlebar h1{font-size:18px;font-weight:700;line-height:1.3}.wb-titlebar p{color:#8a94a5;margin-top:3px;font-size:11.5px}.wb-actions{align-items:center;gap:8px;display:flex}.wb-actions .btn{min-width:78px;height:32px;box-shadow:none;border-radius:4px;padding:0 14px;font-size:12.5px}.wb-actions .btn.primary{background:var(--primary);border-color:var(--primary)}.wb-actions .btn.primary.btn-dirty{animation:dirtyGlow 1.1s var(--ease-out) 1;box-shadow:0 0 #1769e059}.wb-actions .btn.primary.btn-success{background:var(--green);border-color:var(--green);color:#fff;animation:savePop .55s var(--ease-out)}.wb-actions .btn:active{transform:scale(.94)}.ledger-editor.save-flash{animation:editorFlash .75s var(--ease-out)}.ledger-editor.row-switch{animation:editorSwitch .3s var(--ease-out)}.unsaved-dot{color:#e8871e;white-space:nowrap;align-items:center;margin-right:4px;font-size:12px;display:inline-flex}.unsaved-enter-active,.unsaved-leave-active{transition:opacity .18s var(--ease-out), transform .18s var(--ease-out)}.unsaved-enter-from,.unsaved-leave-to{opacity:0;transform:translateY(-4px)}.unsaved-dot{animation:unsavedPulse 1.4s var(--ease-out) 1}.ledger-editor{background:#fff;border:1px solid #dce2ea;box-shadow:0 1px 2px #18274008}.editor-section{border-bottom:1px solid #dce2ea;padding:11px 14px 8px;position:relative}.editor-section:last-child{border-bottom:none}.section-title{color:#1769e0;border-left:4px solid #1769e0;margin-bottom:8px;padding-left:9px;font-size:13px;font-weight:700;line-height:18px}.ledger-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 14px;display:grid}.ledger-grid label,.execution-grid label{grid-template-columns:94px minmax(0,1fr);align-items:center;gap:7px;min-width:0;display:grid}.ledger-grid label>span,.execution-grid label>span{text-align:right;color:#4f5968;white-space:nowrap;font-size:12px}.ledger-grid label>span i,.execution-grid label>span i{color:#e5484d;margin-left:3px;font-style:normal}.ledger-grid .span-2{grid-column:span 2}.ledger-grid .span-3{grid-column:span 3}.ledger-grid .span-4{grid-column:1/-1}.multiline-label{align-items:start!important}.project-content-input{resize:none;height:52px;padding:6px 8px;line-height:1.45}.cell-input{color:#263142;background:#fff;border:1px solid #cdd5df;border-radius:3px;outline:none;width:100%;min-width:0;height:29px;padding:0 8px;font-size:12.5px;transition:border-color .15s,box-shadow .15s}select.cell-input{cursor:pointer;padding-right:26px}.cell-input:hover{border-color:#aebaca}.cell-input:focus{border-color:#1769e0;box-shadow:0 0 0 2px #1769e01a}.cell-input.code{font-variant-numeric:tabular-nums;letter-spacing:.2px}.cell-input.accent-value{color:#175fc9;background:#f4f8ff}.num-input{text-align:right;font-variant-numeric:tabular-nums}.strong-number{color:#174e98;font-weight:700}.compact-section{padding-top:9px;padding-bottom:9px}.execution-grid{grid-template-columns:minmax(0,3fr) minmax(330px,1.35fr);gap:6px 16px;display:grid}.progress-field{position:relative;grid-template-columns:94px minmax(0,1fr)!important;align-items:start!important}.ledger-textarea{resize:none;height:72px;padding:6px 74px 6px 8px;line-height:1.45}.history-link{color:#1769e0;transition:opacity .14s ease, transform .14s var(--ease-out);background:0 0;border:none;font-size:12px;position:absolute;bottom:7px;right:8px}.history-link:hover{opacity:.85}.history-link:active{transform:scale(.96)}.revenue-grid{grid-template-columns:1fr 1fr;align-content:start;gap:6px 10px;display:grid}.revenue-grid label{grid-template-columns:78px minmax(0,1fr)}.wide-line{grid-column:1/-1}.one-line-textarea{resize:none;height:31px;padding:5px 8px;line-height:1.4}.ledger-list{background:#fff;border:1px solid #dce2ea;margin-top:10px}.list-toolbar{border-bottom:1px solid #dce2ea;justify-content:space-between;align-items:center;gap:12px;min-height:43px;padding:6px 10px;display:flex}.list-name{color:#1769e0;white-space:nowrap;font-size:13.5px;font-weight:700}.list-name span{color:#6f7886;margin-left:14px;font-size:11.5px;font-weight:500}.list-filters{flex-wrap:wrap;flex:1;justify-content:flex-end;gap:7px;min-width:0;display:flex}.sheet-grabber{display:none}.list-filters select,.toolbar-btn{color:#445064;background:#fff;border:1px solid #d1d8e1;border-radius:3px;height:29px;padding:0 26px 0 9px;font-size:11.5px}.toolbar-btn{cursor:pointer;transition:color var(--duration-press) ease, border-color var(--duration-press) ease, transform var(--duration-press) var(--ease-out);padding:0 10px}.toolbar-btn:hover{color:var(--primary);border-color:#93b7ea}.toolbar-btn:active{transform:scale(.92)}.ledger-search{background:#fff;border:1px solid #d1d8e1;border-radius:3px;align-items:center;gap:6px;width:275px;height:29px;padding:0 9px;display:flex}.ledger-search span{color:#758195;font-size:17px;transform:rotate(-15deg)}.ledger-search input{border:none;outline:none;flex:1;min-width:0;font-size:11.5px}.ledger-table-wrap{min-height:216px;max-height:330px;overflow:auto}.opportunity-workbench .ledger-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1180px;font-size:11.5px}.opportunity-workbench .ledger-table th{z-index:2;color:#5f6978;text-align:left;white-space:nowrap;background:#f4f6f8;border-bottom:1px solid #d8dee6;border-right:1px solid #e1e5ea;height:30px;padding:0 8px;font-weight:600;position:sticky;top:0}.opportunity-workbench .ledger-table td{color:#344054;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #e7ebf0;border-right:1px solid #e7ebf0;height:29px;padding:4px 8px;overflow:hidden}.opportunity-workbench .ledger-table tbody tr{cursor:pointer}.opportunity-workbench .ledger-table tbody tr td{transition:background-color .14s ease, border-bottom-color .14s ease, box-shadow .16s var(--ease-out)}.opportunity-workbench .ledger-table tbody tr:hover td{background:#f5f9ff}.opportunity-workbench .ledger-table tbody tr.selected td{background:#ddf3ff;border-bottom-color:#9cd8f5}.opportunity-workbench .ledger-table tbody tr.selected td:first-child{box-shadow:inset 3px 0 #1769e0}.ledger-pager button{transition:transform var(--duration-press) var(--ease-out), background-color var(--duration-press) ease, border-color var(--duration-press) ease}.ledger-pager button:active:not(:disabled){transform:scale(.92)}.opportunity-workbench .ledger-table th:first-child,.opportunity-workbench .ledger-table td:first-child{text-align:center;font-variant-numeric:tabular-nums;width:78px}.opportunity-workbench .ledger-table th:nth-child(2),.opportunity-workbench .ledger-table td:nth-child(2){width:86px}.opportunity-workbench .ledger-table th:nth-child(3),.opportunity-workbench .ledger-table td:nth-child(3){width:110px}.opportunity-workbench .ledger-table th:nth-child(4),.opportunity-workbench .ledger-table td:nth-child(4){width:82px}.opportunity-workbench .ledger-table th:nth-child(5),.opportunity-workbench .ledger-table td:nth-child(5){width:130px}.opportunity-workbench .ledger-table th:nth-child(6),.opportunity-workbench .ledger-table td:nth-child(6){width:100px}.opportunity-workbench .ledger-table .name-col{width:290px}.opportunity-workbench .ledger-table th:nth-child(8),.opportunity-workbench .ledger-table td:nth-child(8){width:170px}.opportunity-workbench .ledger-table th:nth-child(9),.opportunity-workbench .ledger-table td:nth-child(9){width:90px}.opportunity-workbench .ledger-table th:nth-child(10),.opportunity-workbench .ledger-table td:nth-child(10){text-align:right;width:110px}.project-name-cell strong{font-weight:550}.project-stage{color:#185fbd}.category-tag{color:#d26a10}.category-tag.stock{color:#526173}.amount-cell{font-variant-numeric:tabular-nums;font-weight:650;color:#174e98!important}.ledger-pager{color:#6f7886;justify-content:space-between;align-items:center;min-height:40px;padding:5px 10px;font-size:11.5px;display:flex}.ledger-pager>div{align-items:center;gap:5px;display:flex}.ledger-pager button,.ledger-pager b{color:#566175;background:#fff;border:1px solid #dce2ea;border-radius:3px;place-items:center;width:27px;height:27px;font-weight:500;display:grid}.ledger-pager b{color:#fff;background:#1769e0;border-color:#1769e0}.ledger-pager select{color:#566175;border:1px solid #dce2ea;border-radius:3px;height:28px;font-size:11.5px}.empty-ledger{text-align:center;color:#8a94a5;padding:50px 20px;font-size:13px}.selected-project{background:#f7f9fc;border:1px solid #e2e7ee;margin-bottom:16px;padding:10px 12px}.selected-project span{color:#8a94a5;margin-bottom:3px;font-size:11px;display:block}.selected-project strong{font-size:13px}.detail-text-block{border-top:1px dashed #dce2ea;margin-top:14px;padding-top:12px;font-size:13px;line-height:1.7}.detail-text-block .k{color:#7b8597;margin-bottom:5px;font-size:11.5px}.detail-text-block .preline{white-space:pre-line}.detail-text-block.warning{color:#b75b10}@media (width<=900px){.desktop-only{display:none!important}.mobile-only{display:block}.mobile-only-cell{display:flex!important}.content:has(.opportunity-workbench){padding:12px 14px 100px}.mobile-page-head{margin:4px 0 12px}.mobile-page-head h1{letter-spacing:-.02em;color:#172033;font-size:26px;font-weight:750}.mobile-page-head p{color:#8a94a5;margin-top:4px;font-size:13px}.ledger-list{background:0 0;border:none;margin-top:0}.list-toolbar{background:#fff;border:none;border-radius:14px;padding:10px;display:block;box-shadow:0 1px 2px #1720400a,0 8px 24px #1720400a}.list-filters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ledger-search{background:#f7f9fc;border-color:#e4e9f0;border-radius:12px;grid-column:1/-1;width:100%;height:42px;padding:0 12px}.ledger-search span{color:#9aa3b2}.ledger-search input{background:0 0;font-size:16px}.list-filters select{color:#445064;background:#f7f9fc;border-color:#e4e9f0;border-radius:12px;width:100%;height:40px;padding-left:12px;font-size:14px}.mobile-card-meta .m-stale{color:#c56a12;background:#fff4e8;border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:11.5px;font-weight:650;display:inline-flex}.ledger-table-wrap{max-height:none;margin-top:12px;overflow:visible}.opportunity-workbench .ledger-table{min-width:0;display:block}.opportunity-workbench .ledger-table thead{display:none}.opportunity-workbench .ledger-table tbody{flex-direction:column;gap:10px;display:flex}.opportunity-workbench .ledger-table tbody tr{transition:transform var(--duration-press) var(--ease-out), box-shadow var(--duration-press) ease;background:#fff;border:1px solid #dce2eae6;border-radius:16px;margin-bottom:0;padding:16px;display:block;box-shadow:0 1px 2px #17204008}.opportunity-workbench .ledger-table tbody tr:active{transform:scale(.985);box-shadow:0 1px 2px #17204005}.opportunity-workbench .ledger-table tbody tr.selected td{background:0 0}.opportunity-workbench .ledger-table tbody tr.selected td:first-child{box-shadow:none}.opportunity-workbench .ledger-table td{white-space:normal;border:none;height:auto;min-height:0;padding:0;display:none!important}.opportunity-workbench .ledger-table td:before{display:none!important}.opportunity-workbench .ledger-table td.project-name-cell,.opportunity-workbench .ledger-table td.mobile-row-action{text-align:left;width:auto;display:block!important}.project-name-cell strong{color:#152033;letter-spacing:-.01em;font-size:16px;font-weight:700;line-height:1.35;display:block}.mobile-card-meta{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:8px;display:flex}.mobile-card-meta .m-stage{color:#1769e0;background:#eaf2ff;border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:11.5px;font-weight:650;display:inline-flex}.mobile-card-meta .m-sep,.mobile-card-meta .m-muted{color:#7b8698;font-size:12px}.mobile-card-meta .m-muted{color:#9aa3b2}.mobile-card-customer{color:#5b6678;margin-top:6px;font-size:13px;line-height:1.4}.mobile-last-follow{text-align:left;background:0 0;border:none;border-radius:0;margin-top:12px;padding:0}.mobile-last-follow .mlf-head{color:#8a94a5;letter-spacing:.02em;margin-bottom:4px;font-size:11px;font-weight:600}.mobile-last-follow p{color:#3a4556;-webkit-line-clamp:2;white-space:pre-wrap;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.mobile-last-follow .mlf-empty{color:#b0b7c4;font-size:12.5px}.mobile-row-action{margin-top:14px;border-top:1px solid #eef1f5!important;justify-content:stretch!important;padding-top:12px!important;display:flex!important}.mobile-row-action .follow-action{color:#fff;width:100%;height:40px;transition:transform var(--duration-press) var(--ease-out), filter var(--duration-press) ease;background:#1769e0;border:none;border-radius:12px;font-size:14px;font-weight:650;box-shadow:0 6px 16px #1769e038}.mobile-row-action .follow-action:active{filter:brightness(.96);transform:scale(.97)}.ledger-pager{color:#8a94a5;margin-top:14px;padding:10px 4px}.ledger-pager button,.ledger-pager b{border-radius:10px;width:32px;height:32px}.ledger-pager select{border-radius:10px;height:32px;padding:0 8px}.follow-modal{color:#2a3444;-webkit-font-smoothing:antialiased;background:#fffefe;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:100%;max-height:min(92dvh,720px);font-family:inherit;display:flex;transform:translateY(0)}.sheet-grabber{justify-content:center;padding:10px 0 2px;display:flex}.sheet-grabber i{background:#d8dee8;border-radius:999px;width:36px;height:4px}.follow-modal .modal-head{flex-shrink:0;align-items:center;padding:8px 18px 10px}.follow-modal .modal-head h3{letter-spacing:.01em;color:#1c2433;font-size:17px;font-weight:600}.follow-modal .modal-close{color:#8b95a6;background:#f5f7fa}.follow-modal .modal-body{flex:auto;min-height:120px;padding:4px 18px 10px;overflow-y:auto}.follow-modal .modal-foot{padding:12px 18px calc(14px + env(safe-area-inset-bottom));background:#fffefe;border-top:1px solid #f0f2f5;flex-shrink:0;gap:10px}.follow-modal .modal-foot .btn{letter-spacing:.02em;border-radius:12px;flex:1;height:46px;font-size:15px;font-weight:600}.follow-modal .modal-foot .btn.ghost{color:#5b6678;background:#f3f5f8;border-color:#0000}.follow-modal .modal-foot .btn.primary{flex:1.35}.follow-modal .selected-project{background:#f7f8fa;border:none;border-radius:12px;margin-bottom:14px;padding:10px 12px}.follow-modal .selected-project span,.follow-modal .follow-progress-box .k,.follow-modal .form-item>label{color:#8b95a6;letter-spacing:.04em;margin:0 0 6px;font-size:12px;font-weight:500;line-height:1.3;display:block}.follow-modal .selected-project strong{color:#1c2433;letter-spacing:.01em;font-size:14px;font-weight:600;line-height:1.45;display:block}.follow-progress-box{background:#f7f8fa;border:none;border-radius:12px;margin:0 0 14px;padding:10px 12px}.follow-progress-box .preline{white-space:pre-line;color:#3a4556;letter-spacing:.01em;font-size:14px;font-weight:400;line-height:1.55}.follow-history-box{margin-bottom:14px}.follow-history-box .fh-title{letter-spacing:.04em;color:#8b95a6;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:500;display:flex}.follow-history-box .fh-title span{letter-spacing:0;color:#a0a8b6;font-size:12px;font-weight:500}.follow-history-box .fh-list{background:#f7f8fa;border:none;border-radius:12px;max-height:220px;padding:2px 12px 8px;overflow-y:auto}.follow-history-box .fh-item{border-bottom:1px solid #eef0f3;padding:10px 0}.follow-history-box .fh-item:last-child{border-bottom:none}.follow-history-box .fh-meta{color:#9aa3b2;letter-spacing:.01em;font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:12px;font-weight:400}.follow-history-box .fh-content{color:#3a4556;letter-spacing:.01em;white-space:pre-wrap;font-size:14px;font-weight:400;line-height:1.55}.follow-history-box .fh-more{color:#1769e0;background:0 0;border:none;width:100%;margin-top:4px;padding:8px 0 4px;font-size:13px;font-weight:550}.follow-history-box .fh-loading,.follow-history-box .fh-empty{color:#a0a8b6;padding:10px 2px;font-size:13px;font-weight:400}.follow-modal .textarea{letter-spacing:.01em;color:#1c2433;background:#f7f8fa;border-color:#e6e9ef;border-radius:12px;min-height:110px;font-size:16px;font-weight:400;line-height:1.55}.follow-modal .textarea::placeholder{color:#b0b7c4;letter-spacing:.01em;font-weight:400}.follow-modal .textarea:focus{background:#fff;border-color:#a8c4ee;box-shadow:0 0 0 3px #1769e014}.mask.sheet-mask{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#17204047;align-items:flex-end;padding:0}.mask-enter-active.sheet-mask .follow-modal,.mask-leave-active.sheet-mask .follow-modal{transition:transform .36s var(--ease-drawer)}.mask-enter-from.sheet-mask .follow-modal,.mask-leave-to.sheet-mask .follow-modal{opacity:1;transform:translateY(100%)}.mask-enter-to.sheet-mask .follow-modal,.mask-leave-from.sheet-mask .follow-modal{opacity:1;transform:translateY(0)}}html{-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}a{color:inherit;text-decoration:none}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.btn{border:1px solid var(--line);height:38px;color:var(--text);transition:background-color var(--duration-press) ease, border-color var(--duration-press) ease, color var(--duration-press) ease, box-shadow var(--duration-press) ease, transform var(--duration-press) var(--ease-out), opacity var(--duration-press) ease, filter var(--duration-press) ease;background:#fff;border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:13.5px;font-weight:550;display:inline-flex}.btn:hover{background:#f7faff;border-color:#b7c9e8}.btn:active{filter:brightness(.96);transform:scale(.92)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 6px 16px #1769e042}.btn.primary:hover{background:var(--primary-deep)}.btn.primary.btn-success{background:var(--green);border-color:var(--green);animation:savePop .55s var(--ease-out);box-shadow:0 8px 22px #10b98159}.btn.danger{color:var(--red);border-color:#e15a4e66}.btn.danger:hover{background:#fef3f2}.btn.ghost{color:var(--muted);background:0 0;border:none}.btn.ghost:hover{color:var(--primary);background:var(--primary-soft)}.btn.block{width:100%}.btn[disabled]{opacity:.55;pointer-events:none}.btn.sm{border-radius:9px;height:30px;padding:0 12px;font-size:12.5px}.input,.select,.textarea{border:1.5px solid var(--line);width:100%;transition:border-color var(--duration-press) ease, box-shadow var(--duration-press) ease;background:#fff;border-radius:11px;outline:none;padding:0 13px;font-size:14px}.input,.select{height:42px}.textarea{resize:vertical;min-height:84px;padding:10px 13px;line-height:1.7}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3.5px #1769e01f}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2376809A' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.form-item{margin-bottom:16px}.form-item>label{color:var(--muted);margin-bottom:7px;font-size:12.5px;font-weight:550;display:block}.form-item .req:before{content:"*";color:var(--red);margin-right:3px}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.toast{z-index:999;color:#fff;letter-spacing:.02em;will-change:transform, opacity;background:#1b2434;border-radius:14px;padding:14px 26px;font-size:14.5px;font-weight:600;position:fixed;top:22px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #17204047}.toast.err{background:var(--red)}.toast-enter-active,.toast-leave-active{transition:opacity var(--duration-toast) var(--ease-out), transform var(--duration-toast) var(--ease-out)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,-28px)scale(.94)}.mask{z-index:300;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#17204080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.mask-enter-active,.mask-leave-active{transition:opacity var(--duration-modal) var(--ease-out)}.mask-enter-active .modal,.mask-leave-active .modal{transition:opacity var(--duration-modal) var(--ease-out), transform var(--duration-modal) var(--ease-out)}.mask-enter-from,.mask-leave-to{opacity:0}.mask-enter-from .modal,.mask-leave-to .modal{opacity:0;transform:translateY(36px)scale(.9)}.mask-enter-to .modal,.mask-leave-from .modal{opacity:1;transform:translateY(0)scale(1)}.modal{width:520px;max-width:100%;max-height:calc(100dvh - 40px);box-shadow:var(--shadow-pop);background:#fff;border-radius:18px;overflow-y:auto;transform:translateY(0)scale(1)}.modal-head{justify-content:space-between;align-items:center;padding:18px 22px 0;display:flex}.modal-head h3{font-size:16.5px;font-weight:700}.modal-close{background:var(--bg);width:30px;height:30px;color:var(--muted);transition:background-color var(--duration-press) ease, color var(--duration-press) ease, transform var(--duration-press) var(--ease-out);border:none;border-radius:9px;font-size:15px}.modal-close:hover{background:var(--primary-soft);color:var(--primary)}.modal-close:active{transform:scale(.9)}.modal-body{padding:18px 22px 22px}.modal-foot{justify-content:flex-end;gap:10px;padding:0 22px 20px;display:flex}@keyframes savePop{0%{filter:brightness();transform:scale(1)}35%{filter:brightness(1.08);transform:scale(1.08)}to{filter:brightness();transform:scale(1)}}@keyframes editorFlash{0%{border-color:#dce2ea;box-shadow:0 1px 2px #18274008}30%{border-color:#10b981;box-shadow:0 0 0 4px #10b98147}to{border-color:#dce2ea;box-shadow:0 1px 2px #18274008}}@keyframes editorSwitch{0%{opacity:.78}to{opacity:1}}@keyframes dirtyGlow{0%{box-shadow:0 0 #1769e066}55%{box-shadow:0 0 0 6px #1769e000}to{box-shadow:0 0 #1769e000}}@keyframes unsavedPulse{0%,to{opacity:1}35%{opacity:.45}65%{opacity:1}}.login-wrap{min-height:100dvh;display:flex}.login-left{background:var(--grad);color:#fff;flex-direction:column;flex:1.1;justify-content:space-between;padding:56px 60px;display:flex;position:relative;overflow:hidden}.login-left:after{content:"";background:#ffffff1f;border-radius:50%;width:520px;height:520px;position:absolute;top:-160px;right:-180px}.login-left:before{content:"";background:#ffffff1a;border-radius:50%;width:380px;height:380px;position:absolute;bottom:-150px;left:-140px}.left-brand{z-index:2;align-items:center;gap:12px;display:flex;position:relative}.logo-mark{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff2e;border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.logo-mark svg{width:22px;height:22px}.left-brand .n{font-size:17px;font-weight:700}.left-hero{z-index:2;position:relative}.left-hero h1{letter-spacing:1px;font-size:clamp(28px,3vw,40px);font-weight:750;line-height:1.35}.left-hero p{opacity:.85;max-width:420px;margin-top:18px;font-size:14.5px;line-height:1.9}.left-feats{z-index:2;flex-wrap:wrap;gap:26px;display:flex;position:relative}.left-feats div{opacity:.9;align-items:center;gap:8px;font-size:12.5px;display:flex}.left-feats i{background:#fff;border-radius:50%;width:6px;height:6px}.login-right{flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-form{width:380px;max-width:100%}.login-form h2{font-size:27px;font-weight:750}.login-form .tip{color:var(--muted);margin:10px 0 30px;font-size:13.5px}.login-form .field{margin-bottom:18px}.login-form .field label{color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.login-form .field input{border:1.5px solid var(--line);background:#fff;border-radius:13px;outline:none;width:100%;height:48px;padding:0 15px;font-size:14.5px;transition:all .2s}.login-form .field input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #1769e01f}.login-btn{background:var(--primary);color:#fff;letter-spacing:1px;width:100%;height:50px;transition:background-color var(--duration-press) ease, box-shadow var(--duration-press) ease, transform var(--duration-press) var(--ease-out);border:none;border-radius:999px;margin-top:10px;font-size:15.5px;font-weight:650;box-shadow:0 8px 22px #1769e047}.login-btn:hover{background:var(--primary-deep)}.login-btn:active{transform:scale(.97)}.login-btn[disabled]{opacity:.6;pointer-events:none}.login-err{color:var(--red);background:#fef3f2;border-radius:11px;margin-top:14px;padding:10px 14px;font-size:13px}.login-foot{text-align:center;color:var(--muted);margin-top:24px;font-size:12.5px}.topnav{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#ffffffe0;position:sticky;top:0}.topnav-in{align-items:center;gap:30px;max-width:1280px;height:60px;margin:0 auto;padding:0 24px;display:flex}.tn-brand{cursor:pointer;align-items:center;gap:10px;font-size:16px;font-weight:750;display:flex}.tn-brand .logo-mark{background:var(--grad);border-radius:10px;width:34px;height:34px}.tn-brand .logo-mark svg{width:18px;height:18px}.tn-links{gap:4px;height:60px;display:flex}.tn-links a{color:var(--muted);cursor:pointer;align-items:center;padding:0 15px;font-size:14px;display:flex;position:relative}.tn-links a.on{color:var(--text);font-weight:650}.tn-links a.on:after{content:"";background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:15px;right:15px}.tn-right{align-items:center;gap:12px;margin-left:auto;display:flex}.tn-user{cursor:pointer;border-radius:10px;align-items:center;gap:9px;padding:6px 8px;font-size:13.5px;font-weight:600;display:flex;position:relative}.tn-user:hover{background:var(--bg)}.avatar{background:var(--grad);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:31px;height:31px;font-size:12.5px;font-weight:700;display:grid}.user-menu{width:168px;box-shadow:var(--shadow-pop);border:1px solid var(--line);z-index:50;background:#fff;border-radius:13px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.user-menu .um-item{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.user-menu .um-item:hover{background:var(--primary-soft);color:var(--primary)}.user-menu .um-item.danger:hover{color:var(--red);background:#fef3f2}.user-menu .um-head{border-bottom:1px solid var(--line);margin-bottom:4px;padding:10px 12px}.user-menu .um-head .n{font-size:13.5px;font-weight:700}.user-menu .um-head .r{color:var(--muted);margin-top:2px;font-size:11px}.content{max-width:1280px;margin:0 auto;padding:24px 24px 60px}.page-head{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:20px;display:flex}.page-title{font-size:22px;font-weight:750}.page-sub{color:var(--muted);margin-top:5px;font-size:13px}.actions{flex-wrap:wrap;gap:10px;display:flex}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.stat{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.stat .ic{border-radius:13px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.stat .ic svg{width:20px;height:20px}.ic-1{background:var(--primary-soft);color:var(--primary)}.ic-2{color:#0e9fd8;background:#e8f7ff}.ic-3{color:#d97706;background:#fff4e5}.ic-4{color:#0e9f6e;background:#e9fbf3}.stat .k{color:var(--muted);font-size:12.5px}.stat .v{margin-top:5px;font-size:23px;font-weight:750}.stat .v em{color:var(--muted);font-size:13px;font-style:normal;font-weight:500}.stat .d{color:#0e9f6e;margin-top:5px;font-size:11.5px}.stat .d.warn{color:#d97706}.filters{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);flex-direction:column;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.filters-line{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filters-label{color:var(--muted);flex-shrink:0;width:52px;font-size:12px}.seg{background:#f1f3f9;border-radius:11px;padding:3px;display:flex}.seg span{color:var(--muted);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-press) ease, color var(--duration-press) ease, box-shadow var(--duration-press) ease;border-radius:8px;padding:7px 15px;font-size:13px}.seg span.on{color:var(--primary);background:#fff;font-weight:650;box-shadow:0 1px 4px #1720401a}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--muted);cursor:pointer;transition:background-color var(--duration-press) ease, color var(--duration-press) ease, border-color var(--duration-press) ease;background:#f1f3f9;border:1px solid #0000;border-radius:999px;padding:6px 13px;font-size:12.5px}.chip:hover{color:var(--primary)}.chip.on{color:var(--primary);background:var(--primary-soft);border-color:#1769e040;font-weight:600}.filters .search{border:1.5px solid var(--line);background:#fff;border-radius:11px;outline:none;width:210px;height:38px;margin-left:auto;padding:0 14px;font-size:13px}.filters .search:focus{border-color:var(--primary)}.filters .select{width:130px;height:38px;font-size:13px}.date-range{align-items:center;gap:6px;display:flex}.date-range input{border:1.5px solid var(--line);background:#fff;border-radius:11px;outline:none;width:132px;height:38px;padding:0 10px;font-size:12.5px}.date-range input:focus{border-color:var(--primary)}.table-card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1060px;font-size:13.5px}thead th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbfd;padding:10px 12px;font-size:12px;font-weight:600}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{color:var(--primary)}tbody td{vertical-align:middle;border-bottom:1px solid #f1f4f9;padding:10px 12px;font-size:13px}tbody tr{transition:background-color .12s}tbody tr:hover{background:#f8f9ff}tbody tr:last-child td{border-bottom:none}tbody tr.clickable{cursor:pointer}.checkbox{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.opp-name{font-size:13px;font-weight:650}.opp-name a:hover{color:var(--primary)}.opp-sub{color:var(--muted);margin-top:2px;font-size:11.5px}.status-dot{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.status-dot i{background:var(--primary);border-radius:50%;width:7px;height:7px}.status-dot.win i{background:var(--green)}.status-dot.lose i{background:#c0c4d0}.status-dot.hold i{background:var(--amber)}.stage-pill{white-space:nowrap;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:550;display:inline-block}.stage-text{color:var(--text);white-space:nowrap;font-size:13px}.st-1{color:#0891b2;background:#e0f7fc}.st-2{color:#2563eb;background:#e4edff}.st-3{color:#7c3aed;background:#f0e8ff}.st-4{color:#d97706;background:#fff1db}.st-5{color:#059669;background:#dcf7ec}.st-6{color:#8a8fa3;background:#eff1f6}.amount{text-align:right;white-space:nowrap;color:#c76a15;font-size:13px;font-weight:700}.win-rate{font-variant-numeric:tabular-nums;font-weight:600}.rate{align-items:center;gap:8px;min-width:104px;display:flex}.rate .bar{background:#eef1f7;border-radius:99px;flex:1;height:5px;overflow:hidden}.rate .bar i{background:var(--grad);border-radius:99px;height:100%;display:block}.rate b{font-size:12.5px;font-weight:600}.days{text-align:center;min-width:42px;color:var(--muted);white-space:nowrap;background:#f1f3f9;border-radius:8px;padding:3px 9px;font-size:12px;display:inline-block}.days.hot{color:#d97706;background:#fff1db;font-weight:650}.days-num{font-variant-numeric:tabular-nums;color:var(--text);font-weight:550}.days-num.hot{color:#d97706;font-weight:700}.follow-cell{color:var(--muted);max-width:190px;font-size:12.5px}.follow-cell .fc-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.follow-cell .fc-time{color:#a6adc2;margin-top:3px;font-size:11px}.no-follow{color:#c3c8d8;font-size:12.5px}.time-cell{color:var(--muted);white-space:nowrap;font-size:12.5px}.row-ops{white-space:nowrap;gap:12px;display:flex}.row-ops span{color:var(--primary);cursor:pointer;font-size:12.5px;font-weight:550}.row-ops span:hover{text-decoration:underline}.row-ops span.danger{color:var(--red)}.pager{color:var(--muted);border-top:1px solid #f1f4f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:12.5px;display:flex}.pager .pages{align-items:center;gap:6px;display:flex}.pager .pages i{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;place-items:center;min-width:30px;height:30px;padding:0 6px;font-size:12.5px;font-style:normal;display:grid}.pager .pages i.on{background:var(--primary);color:#fff;border-color:var(--primary)}.pager .pages i.dis{opacity:.4;pointer-events:none}.pager .size-sel{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;height:30px;padding:0 6px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:70px 20px}.empty .ic{background:var(--primary-soft);width:64px;height:64px;color:var(--primary);border-radius:20px;place-items:center;margin:0 auto 14px;display:grid}.empty .t{color:var(--text);font-size:15px;font-weight:650}.empty .d{margin-top:6px;font-size:12.5px}.loading-row{text-align:center;color:var(--muted);padding:46px;font-size:13px}.back{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-bottom:16px;font-size:13px;display:inline-flex}.back:hover{color:var(--primary)}.detail-grid{grid-template-columns:1.5fr 1fr;align-items:start;gap:16px;display:grid}.panel{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:22px}.panel+.panel{margin-top:16px}.panel-title{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:15px;font-weight:700;display:flex}.info-grid{grid-template-columns:repeat(3,1fr);gap:18px 14px;display:grid}.info-item .k{color:var(--muted);margin-bottom:6px;font-size:12px}.info-item .val{font-size:14.5px;font-weight:600}.info-item .val.big{font-size:20px}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.detail-name{font-size:20px;font-weight:750}.detail-sub{color:var(--muted);margin-top:6px;font-size:13px}.timeline{padding-left:22px;position:relative}.timeline:before{content:"";background:#eef1f7;border-radius:2px;width:2px;position:absolute;top:8px;bottom:8px;left:6px}.tl-item{padding-bottom:20px;position:relative}.tl-item:last-child{padding-bottom:2px}.tl-item:before{content:"";background:var(--primary);width:9px;height:9px;box-shadow:0 0 0 3px var(--primary-soft);border-radius:50%;position:absolute;top:5px;left:-19.5px}.tl-item:first-child:before{background:var(--green);box-shadow:0 0 0 3px #dcf7ec}.tl-time{color:#a6adc2;font-size:11.5px}.tl-content{margin-top:5px;font-size:13.5px;line-height:1.75}.tl-by{color:var(--muted);margin-top:4px;font-size:12px}.admin-tabs{background:#f1f3f9;border-radius:11px;gap:4px;width:fit-content;margin-bottom:18px;padding:3px;display:flex}.admin-tabs span{color:var(--muted);cursor:pointer;border-radius:8px;padding:8px 18px;font-size:13px}.admin-tabs span.on{color:var(--primary);background:#fff;font-weight:650;box-shadow:0 1px 4px #1720401a}.role-tag{border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-block}.role-ADMIN{color:#7c3aed;background:#f0e8ff}.role-MANAGER{color:#2563eb;background:#e4edff}.role-SALES{color:var(--muted);background:#f1f3f9}.state-tag{font-size:12px}.state-tag.on{color:var(--green)}.state-tag.off{color:var(--red)}.stage-row{border-bottom:1px solid #f1f4f9;align-items:center;gap:10px;padding:12px 4px;display:flex}.stage-row:last-child{border-bottom:none}.stage-row .order{background:var(--primary-soft);width:26px;height:26px;color:var(--primary);border-radius:8px;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.stage-row .nm{flex:1;font-size:14px;font-weight:600}.icon-btn{background:var(--bg);width:30px;height:30px;color:var(--muted);border:none;border-radius:8px;font-size:13px}.icon-btn:hover{background:var(--primary-soft);color:var(--primary)}.icon-btn.danger:hover{color:var(--red);background:#fef3f2}.setting-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.setting-row .input{width:110px}.help-text{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.8}.option-config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.option-panel{min-width:0}.option-panel .panel-title{align-items:flex-start;gap:12px}.option-panel .panel-title>div:first-child{min-width:0}.option-description{color:var(--muted);margin-top:4px;font-size:11.5px;font-weight:500;line-height:1.5}.option-empty{color:var(--muted);padding:16px 4px 4px;font-size:13px}.audit-toolbar{border-bottom:1px solid #f1f4f9;flex-wrap:wrap;align-items:center;gap:8px;padding:16px 18px;display:flex}.audit-toolbar .select{width:142px;height:38px;font-size:12.5px}.audit-toolbar .input{height:38px;font-size:12.5px}.audit-keyword{width:260px}.audit-date{width:142px}.audit-date-sep{color:var(--muted);font-size:12px}.audit-table td{vertical-align:middle}.audit-action{color:var(--primary);background:var(--primary-soft);white-space:nowrap;border-radius:7px;padding:4px 9px;font-size:12px;display:inline-block}.audit-summary{color:var(--text);max-width:460px}.system-log-toolbar{border-bottom:1px solid #f1f4f9;flex-wrap:wrap;align-items:center;gap:8px;padding:16px 18px;display:flex}.system-log-toolbar .select,.system-log-toolbar .input{height:38px;font-size:12.5px}.system-log-keyword{width:280px}.system-log-date{width:142px}.system-log-date-sep{color:var(--muted);font-size:12px}.system-log-table td{vertical-align:middle}.system-log-level{white-space:nowrap;border-radius:7px;padding:4px 9px;font-size:12px;display:inline-block}.system-log-level.error{color:#b42318;background:#fef3f2}.system-log-level.warn{color:#b54708;background:#fff4e5}.system-log-level.info{color:#175cd3;background:#eff8ff}.system-log-message{max-width:520px;color:var(--text)}.page-tabs{border-bottom:1px solid var(--line);gap:26px;padding:0 18px;display:flex;overflow-x:auto}.page-tabs span{color:var(--muted);cursor:pointer;white-space:nowrap;padding:13px 2px 11px;font-size:14px;position:relative}.page-tabs span:hover{color:var(--primary)}.page-tabs span.on{color:var(--primary);font-weight:650}.page-tabs span.on:after{content:"";background:var(--primary);border-radius:2px;height:2.5px;position:absolute;bottom:-1px;left:0;right:0}.f-rows{padding:4px 18px 10px}.f-row{flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0 0;display:flex}.f-right{align-items:center;gap:14px;margin-left:auto;display:flex}.link{color:var(--muted);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:12.5px}.link:hover{color:var(--primary)}.chip.warn{color:#d97706;background:#fff4e5}.chip.warn.on{color:#b45309;background:#ffe9c7;border-color:#d9770659;font-weight:650}.more-panel{border:1px dashed var(--line-strong);background:#f8fafd;border-radius:12px;flex-wrap:wrap;gap:14px;margin-top:4px;padding:14px;display:flex}.mp-item{align-items:center;gap:8px;display:flex}.mp-item label{color:var(--muted);white-space:nowrap;font-size:12.5px}.mp-item .select{width:140px;height:36px;font-size:12.5px}.search2{border:1.5px solid var(--line);background:#fff;border-radius:11px;outline:none;width:240px;height:38px;padding:0 14px;font-size:13px}.search2:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1769e01a}.sort-sel{width:168px;height:38px;font-size:12.5px}.dd{display:inline-block;position:relative}.dd-menu{border:1px solid var(--line);min-width:158px;box-shadow:var(--shadow-pop);z-index:60;transform-origin:100% 0;animation:menuIn .16s var(--ease-out);background:#fff;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.dd-menu .it{cursor:pointer;white-space:nowrap;border-radius:8px;padding:9px 12px;font-size:13px;font-weight:500}.dd-menu .it:hover{background:var(--primary-soft);color:var(--primary)}.dd-menu .it.dis{color:#c3c8d8;pointer-events:none}.amount{color:#c76a15}.pager-right{align-items:center;gap:10px;display:flex}.jumper{font-size:12.5px}.jumper-input{border:1px solid var(--line);text-align:center;border-radius:8px;outline:none;width:44px;height:28px;font-size:12.5px}.jumper-input:focus{border-color:var(--primary)}.crm-list{--crm:#2f6bff;--crm-deep:#1f54db;--crm-soft:#eef3ff;--crm-line:#e5eaf2;--crm-muted:#8b93a7;--crm-text:#1f2a37}.crm-list .page-head{margin-bottom:14px}.crm-list .page-title{color:var(--crm-text);letter-spacing:0;font-size:20px;font-weight:700}.crm-list .btn{height:34px;box-shadow:none;border-color:var(--crm-line);border-radius:4px;padding:0 14px;font-size:13px;font-weight:500}.crm-list .btn:hover{background:#f7f9fc;border-color:#c8d2e3}.crm-list .btn.primary{background:var(--crm);border-color:var(--crm);color:#fff;box-shadow:none}.crm-list .btn.primary:hover{background:var(--crm-deep)}.crm-list .btn.sm{border-radius:4px;height:28px}.crm-list .table-card{box-shadow:none;border:1px solid var(--crm-line);background:#fff;border-radius:4px}.crm-list .page-tabs{border-bottom:1px solid var(--crm-line);background:#fff;gap:28px;padding:0 16px}.crm-list .page-tabs span{color:var(--crm-muted);padding:12px 2px 10px;font-size:13.5px;font-weight:500}.crm-list .page-tabs span:hover{color:var(--crm)}.crm-list .page-tabs span.on{color:var(--crm);font-weight:600}.crm-list .page-tabs span.on:after{background:var(--crm);border-radius:0;height:2px}.crm-list .f-rows{border-bottom:1px solid var(--crm-line);background:#fafbfc;padding:6px 16px 12px}.crm-list .f-row{gap:8px;padding-top:8px}.crm-list .chips{gap:6px}.crm-list .chip{border:1px solid var(--crm-line);color:#5b6577;background:#fff;border-radius:3px;padding:4px 10px;font-size:12px;font-weight:450}.crm-list .chip:hover{color:var(--crm);background:var(--crm-soft);border-color:#b8cbff}.crm-list .chip.on{color:var(--crm);background:var(--crm-soft);border-color:#b8cbff;font-weight:600}.crm-list .chip.warn{color:#d97706;background:#fff8ed;border-color:#f5d9a8}.crm-list .chip.warn.on{color:#b45309;background:#fff1db;border-color:#e8b86d}.crm-list .link{color:var(--crm);font-size:12px}.crm-list .link:hover{color:var(--crm-deep);text-decoration:underline}.crm-list .more-panel{border:1px solid var(--crm-line);background:#fff;border-style:solid;border-radius:4px;padding:12px}.crm-list .mp-item label{color:var(--crm-muted);font-size:12px}.crm-list .select,.crm-list .search2,.crm-list .date-range input,.crm-list .jumper-input,.crm-list .size-sel{border:1px solid var(--crm-line);box-shadow:none;border-radius:4px}.crm-list .search2{height:32px;font-size:12.5px}.crm-list .search2:focus,.crm-list .select:focus,.crm-list .date-range input:focus,.crm-list .jumper-input:focus{border-color:var(--crm);box-shadow:0 0 0 2px #2f6bff1f}.crm-list .sort-sel{height:32px;font-size:12px}.crm-list .mp-item .select{height:32px}.crm-list table{min-width:1100px;font-size:12.5px}.crm-list thead th{color:#6b7385;border-bottom:1px solid var(--crm-line);background:#f7f8fa;padding:9px 10px;font-size:12px;font-weight:500}.crm-list tbody td{color:var(--crm-text);border-bottom:1px solid #eef1f6;padding:9px 10px;font-size:12.5px}.crm-list tbody tr:hover{background:#f5f8ff}.crm-list tbody tr:last-child td{border-bottom:1px solid #eef1f6}.crm-list .opp-name{color:var(--crm-text);font-size:12.5px;font-weight:600}.crm-list .opp-name a:hover{color:var(--crm)}.crm-list .opp-sub{color:var(--crm-muted);margin-top:1px;font-size:11px}.crm-list .status-dot{color:var(--crm-text);font-size:12px}.crm-list .status-dot i{background:var(--crm);width:6px;height:6px}.crm-list .stage-text{color:var(--crm-text);font-size:12.5px}.crm-list .amount{color:#e8871e;font-size:12.5px;font-weight:700}.crm-list .win-rate{font-weight:500}.crm-list .days-num{color:var(--crm-text);font-weight:500}.crm-list .days-num.hot{color:#e8871e;font-weight:700}.crm-list .follow-cell{color:#6b7385;max-width:200px;font-size:12px}.crm-list .follow-cell .fc-time{color:#a0a7b8;margin-top:2px;font-size:11px}.crm-list .time-cell{color:#6b7385;font-size:12px}.crm-list .row-ops{gap:10px}.crm-list .row-ops span{color:var(--crm);font-size:12px;font-weight:500}.crm-list .checkbox{accent-color:var(--crm)}.crm-list .pager{border-top:1px solid var(--crm-line);color:var(--crm-muted);background:#fafbfc;padding:10px 14px;font-size:12px}.crm-list .pager .pages i{border-color:var(--crm-line);border-radius:3px;min-width:28px;height:28px;font-size:12px}.crm-list .pager .pages i.on{background:var(--crm);border-color:var(--crm)}.crm-list .size-sel,.crm-list .jumper-input{border-radius:3px;height:28px}.crm-list .dd-menu{border-color:var(--crm-line);border-radius:4px;padding:4px;box-shadow:0 6px 20px #1f2a371f}.crm-list .dd-menu .it{border-radius:3px;padding:8px 10px;font-size:12.5px}.crm-list .dd-menu .it:hover{background:var(--crm-soft);color:var(--crm)}.crm-list .modal{border-radius:6px}.crm-list .modal-close,.crm-list .input,.crm-list .textarea,.crm-list .modal .select{border-radius:4px}.crm-list .input:focus,.crm-list .textarea:focus,.crm-list .modal .select:focus{border-color:var(--crm);box-shadow:0 0 0 2px #2f6bff1f}@media (width<=900px){.crm-list .table-card{background:0 0;border:none}.crm-list .table-card>.page-tabs,.crm-list .table-card>.f-rows,.crm-list .table-card>.pager{border:1px solid var(--crm-line);box-shadow:none;background:#fff;border-radius:4px}.crm-list .table-card>.page-tabs{border-bottom:none;border-radius:4px 4px 0 0}.crm-list .table-card>.f-rows{border-top:none;border-bottom:none;border-radius:0}.crm-list .table-card>.pager{border-top:1px solid var(--crm-line);border-radius:0 0 4px 4px;margin-top:0}.crm-list tbody tr{box-shadow:none;border:1px solid var(--crm-line);border-radius:4px;margin-bottom:10px}.crm-list tbody tr:hover{background:#fff}}.tabbar{display:none}@media (width<=900px){.login-wrap{flex-direction:column}.login-left{min-height:240px;padding:36px 26px}.left-hero p{font-size:13px}.left-feats,.tn-links{display:none}.content{padding:16px 14px 92px}.page-head{flex-direction:column;align-items:stretch}.page-head .actions{grid-template-columns:1fr 1fr;display:grid}.page-head .actions .btn.primary{order:-1;grid-column:span 2}.page-head .actions .dd{display:contents}.page-head .actions .dd>.btn{width:100%}.page-tabs{gap:20px;padding:0 14px}.f-rows{padding:4px 14px 10px}.search2,.sort-sel{width:100%}.f-row .f-right{width:100%;margin-left:0}.f-row:has(.search2){flex-direction:column;align-items:stretch}.dd-menu{left:auto;right:0}.more-panel{flex-direction:column;align-items:stretch}.mp-item .select{flex:1;width:auto}.table-scroll{overflow:visible}table{min-width:0}table,tbody,tr,td{display:block}thead{display:none}.table-card{box-shadow:none;background:0 0}.table-card>.page-tabs,.table-card>.f-rows,.table-card>.pager{background:var(--card);box-shadow:var(--shadow)}.table-card>.page-tabs{border-radius:14px 14px 0 0}.table-card>.f-rows{border-bottom:none;border-radius:0;margin-bottom:0;padding-bottom:14px}.table-card>.pager{border-radius:0 0 14px 14px;margin-top:0}tbody tr{background:var(--card);box-shadow:var(--shadow);border-radius:14px;margin-bottom:12px;padding:8px 16px;display:block;position:relative}tbody td{border-bottom:1px solid #f1f4f9;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}tbody td:last-child{border-bottom:none}tbody td:before{content:attr(data-label);color:var(--muted);flex-shrink:0;font-size:12px}tbody td.no-label:before{display:none}tbody td.cell-check{border:none;width:auto;padding:0;position:absolute;top:12px;right:14px}tbody td.cell-check:before{display:none}tbody td.cell-name{padding-right:28px;display:block}tbody td.cell-name .opp-name{margin-bottom:2px}tbody td.cell-ops{justify-content:flex-end}tbody td.cell-ops:before{display:none}.amount{text-align:right}.follow-cell{text-align:right;max-width:58%}.follow-cell .fc-text{white-space:normal}.detail-grid,.option-config-grid{grid-template-columns:1fr}.audit-toolbar{align-items:stretch}.audit-keyword,.audit-toolbar .select,.audit-date{width:100%}.audit-date-sep{display:none}.system-log-toolbar{align-items:stretch}.system-log-keyword,.system-log-toolbar .select,.system-log-date{width:100%}.system-log-date-sep{display:none}.info-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.mask{align-items:flex-end;padding:0}.modal{border-radius:20px 20px 0 0;width:100%;max-height:92dvh;transform:translateY(0)}.mask-enter-active .modal,.mask-leave-active .modal{transition:transform .36s var(--ease-drawer)}.mask-enter-from .modal,.mask-leave-to .modal{opacity:1;transform:translateY(100%)}.mask-enter-to .modal,.mask-leave-from .modal{opacity:1;transform:translateY(0)}.pager{justify-content:center}.tabbar{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:60;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border-radius:18px;padding:6px;display:flex;position:fixed;box-shadow:0 8px 30px #17204029}.tabbar a{text-align:center;color:var(--muted);border-radius:13px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 0;font-size:11.5px;display:flex}.tabbar a svg{width:19px;height:19px}.tabbar a.on{background:var(--primary-soft);color:var(--primary);font-weight:650}}@keyframes menuIn{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn:active,.toolbar-btn:active,.modal-close:active,.login-btn:active,.mobile-row-action button:active{filter:none;transform:none}.btn.primary.btn-success,.btn.primary.btn-dirty,.ledger-editor.save-flash,.ledger-editor.row-switch,.unsaved-dot{animation:none!important}.wb-actions .btn:active,.ledger-pager button:active:not(:disabled){transform:none}}
