body,html{overscroll-behavior-x:none}.crm-el-select-full{width:100%}.el-dialog__wrapper,.el-message,.el-message-box__wrapper,.el-notification{z-index:100000!important}.v-modal{z-index:99990!important}.project-table{padding:20px}.login-container[data-v-62c50a91]{width:100%;height:100vh;background:url(/img/login-bg.ff7ac807.jpg);background-size:cover;display:flex;justify-content:center;align-items:center}.login-box[data-v-62c50a91]{width:420px;padding:40px;background:hsla(0,0%,100%,.92);border-radius:8px;text-align:center;box-shadow:0 18px 48px rgba(15,23,42,.18)}.logo[data-v-62c50a91]{width:220px;margin-bottom:30px}.login-tabs[data-v-62c50a91]{display:flex;margin:-8px 0 24px;border-bottom:1px solid #e5e7eb}.login-tabs button[data-v-62c50a91]{flex:1;padding:10px;border:0;border-bottom:2px solid transparent;background:transparent;color:#64748b;cursor:pointer}.login-tabs button.active[data-v-62c50a91]{color:#2d6cdf;border-bottom-color:#2d6cdf;font-weight:600}.ding-login[data-v-62c50a91]{min-height:258px;display:flex;flex-direction:column;align-items:center;justify-content:center}.ding-qr[data-v-62c50a91]{width:220px;height:220px;border:1px solid #e5e7eb;border-radius:6px}.ding-state[data-v-62c50a91],.ding-tip[data-v-62c50a91]{color:#64748b;margin:14px 0}.refresh-btn[data-v-62c50a91]{border:0;background:transparent;color:#2d6cdf;cursor:pointer}.input-box[data-v-62c50a91]{display:flex;align-items:center;margin-bottom:18px;background:#f5f7fb;border:1px solid #e4e8f0;border-radius:6px;padding:10px 12px}.icon[data-v-62c50a91]{margin-right:10px;color:#64748b}input[data-v-62c50a91]{border:none;outline:none;background:none;flex:1;min-width:0;color:#1f2937}.login-btn[data-v-62c50a91]{width:100%;height:40px;background:#2d6cdf;color:#fff;border:none;border-radius:6px;font-size:16px;cursor:pointer}.login-btn[data-v-62c50a91]:hover{background:#1f57b3}.login-btn[data-v-62c50a91]:disabled{opacity:.7;cursor:not-allowed}.form-actions[data-v-62c50a91]{display:flex;justify-content:flex-end;margin-top:14px}.link-btn[data-v-62c50a91]{border:none;background:transparent;color:#2d6cdf;cursor:pointer;padding:0;font-size:14px}.portal[data-v-1d71de77]{min-height:100vh;background:radial-gradient(circle at top left,rgba(64,158,255,.12),transparent 28%),radial-gradient(circle at top right,rgba(0,220,180,.1),transparent 24%),linear-gradient(135deg,#08131f,#10293a 35%,#1d4253);color:#fff}.header[data-v-1d71de77]{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;background:rgba(5,15,24,.45);backdrop-filter:blur(10px);border-bottom:1px solid hsla(0,0%,100%,.08)}.header-left[data-v-1d71de77]{display:flex;align-items:center;gap:12px}.logo-mark[data-v-1d71de77]{width:54px;height:54px;flex:0 0 54px;overflow:hidden;position:relative;filter:drop-shadow(0 6px 14px rgba(47,122,255,.38))}.logo-mark img[data-v-1d71de77]{position:absolute;width:180px;height:90px;max-width:none;left:-1px;top:-14px;-o-object-fit:contain;object-fit:contain}.logo-title[data-v-1d71de77]{font-size:20px;font-weight:700;letter-spacing:.5px}.logo-subtitle[data-v-1d71de77]{font-size:12px;color:hsla(0,0%,100%,.62);margin-top:2px}.header-right[data-v-1d71de77]{display:flex;align-items:center;gap:18px}.header-time[data-v-1d71de77]{font-size:14px;color:hsla(0,0%,100%,.76)}.user-box[data-v-1d71de77]{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:hsla(0,0%,100%,.08);cursor:pointer;transition:background .2s ease,transform .2s ease}.user-box[data-v-1d71de77]:hover{background:hsla(0,0%,100%,.14);transform:translateY(-1px)}.user-avatar-wrap[data-v-1d71de77]{width:38px;height:38px;flex-shrink:0}.user-avatar-img[data-v-1d71de77]{width:38px;height:38px;border-radius:50%;-o-object-fit:cover;object-fit:cover;display:block;border:1px solid hsla(0,0%,100%,.2)}.user-avatar[data-v-1d71de77]{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#24c6dc,#514a9d);display:flex;align-items:center;justify-content:center;font-weight:700}.user-name[data-v-1d71de77]{font-size:14px;font-weight:600}.user-role[data-v-1d71de77]{font-size:12px;color:hsla(0,0%,100%,.65);margin-top:2px}.profile-panel[data-v-1d71de77]{color:#1f2d3d}.profile-avatar-section[data-v-1d71de77]{display:flex;align-items:center;gap:18px;padding:4px 0 22px;border-bottom:1px solid #edf1f7}.profile-avatar-large[data-v-1d71de77]{width:86px;height:86px;border-radius:50%;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,#24c6dc,#514a9d);display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:700;box-shadow:0 10px 24px rgba(31,45,61,.14)}.profile-avatar-large img[data-v-1d71de77]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.profile-avatar-actions[data-v-1d71de77]{min-width:0}.profile-display-name[data-v-1d71de77]{font-size:20px;line-height:1.4;font-weight:700;color:#1f2d3d}.profile-meta-line[data-v-1d71de77]{margin-top:4px;font-size:13px;color:#7b8794}.avatar-upload-btn[data-v-1d71de77]{margin-top:12px;height:34px;padding:0 14px;border:none;border-radius:8px;background:#409eff;color:#fff;font-weight:600;cursor:pointer}.avatar-upload-btn[data-v-1d71de77]:disabled{opacity:.65;cursor:not-allowed}.avatar-file-input[data-v-1d71de77]{display:none}.profile-info-grid[data-v-1d71de77]{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding-top:20px}.profile-info-item[data-v-1d71de77]{min-width:0}.profile-info-item--wide[data-v-1d71de77]{grid-column:1/-1}.profile-info-item label[data-v-1d71de77]{display:block;margin-bottom:6px;color:#8a97a8;font-size:12px}.profile-info-item span[data-v-1d71de77]{display:block;min-height:22px;color:#1f2d3d;font-size:14px;line-height:1.55;word-break:break-word}.logout-btn[data-v-1d71de77]{height:40px;padding:0 18px;border:none;border-radius:12px;background:linear-gradient(135deg,#ff7b7b,#f25f5f);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 20px rgba(242,95,95,.28);transition:all .25s ease}.logout-btn[data-v-1d71de77]:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(242,95,95,.36)}.content[data-v-1d71de77]{padding:28px 32px 36px}.hero[data-v-1d71de77]{display:grid;grid-template-columns:1.6fr .9fr;gap:22px;margin-bottom:22px}.hero-left[data-v-1d71de77],.hero-right .summary-card[data-v-1d71de77],.panel[data-v-1d71de77],.stat-card[data-v-1d71de77],.system-card[data-v-1d71de77]{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.08);box-shadow:0 14px 35px rgba(0,0,0,.18);backdrop-filter:blur(10px)}.hero-left[data-v-1d71de77]{border-radius:22px;padding:30px;position:relative;overflow:hidden}.hero-left[data-v-1d71de77]:after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;background:radial-gradient(circle,rgba(64,158,255,.28),transparent 70%)}.hero-badge[data-v-1d71de77]{display:inline-block;padding:6px 12px;border-radius:999px;background:rgba(64,158,255,.16);color:#8fd0ff;font-size:12px;margin-bottom:16px}.hero-title[data-v-1d71de77]{margin:0;font-size:34px;line-height:1.25;font-weight:700}.hero-desc[data-v-1d71de77]{margin-top:16px;max-width:680px;font-size:15px;line-height:1.9;color:hsla(0,0%,100%,.78)}.hero-actions[data-v-1d71de77]{display:flex;gap:12px;margin-top:24px}.ghost-btn[data-v-1d71de77],.primary-btn[data-v-1d71de77]{height:42px;border-radius:12px;padding:0 18px;border:none;cursor:pointer;font-size:14px;transition:all .25s ease}.primary-btn[data-v-1d71de77]{background:linear-gradient(135deg,#2f8cff,#5c7cff);color:#fff;box-shadow:0 10px 24px rgba(47,122,255,.3)}.primary-btn[data-v-1d71de77]:hover{transform:translateY(-2px)}.ghost-btn[data-v-1d71de77]{background:hsla(0,0%,100%,.08);color:#fff;border:1px solid hsla(0,0%,100%,.12)}.ghost-btn[data-v-1d71de77]:hover{background:hsla(0,0%,100%,.14)}.summary-card[data-v-1d71de77]{border-radius:22px;padding:24px;height:100%;box-sizing:border-box}.summary-title[data-v-1d71de77]{font-size:18px;font-weight:700;margin-bottom:18px}.summary-list[data-v-1d71de77]{display:flex;flex-direction:column;gap:14px}.summary-item[data-v-1d71de77]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;background:hsla(0,0%,100%,.06)}.summary-item span[data-v-1d71de77]{color:hsla(0,0%,100%,.72);font-size:14px}.summary-item strong[data-v-1d71de77]{font-size:22px;color:#fff}.stats-grid[data-v-1d71de77]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stat-card[data-v-1d71de77]{border-radius:18px;padding:20px;display:flex;align-items:center;gap:14px}.stat-icon[data-v-1d71de77]{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px}.stat-icon.blue[data-v-1d71de77]{background:rgba(64,158,255,.18)}.stat-icon.cyan[data-v-1d71de77]{background:rgba(0,214,201,.18)}.stat-icon.orange[data-v-1d71de77]{background:rgba(255,153,102,.18)}.stat-icon.green[data-v-1d71de77]{background:rgba(86,171,47,.18)}.stat-value[data-v-1d71de77]{font-size:28px;font-weight:700;line-height:1}.stat-label[data-v-1d71de77]{margin-top:6px;color:hsla(0,0%,100%,.7);font-size:13px}.section-header[data-v-1d71de77]{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.section-header h2[data-v-1d71de77]{margin:0;font-size:24px}.section-header p[data-v-1d71de77]{margin:6px 0 0;color:hsla(0,0%,100%,.66);font-size:13px}.card-grid[data-v-1d71de77]{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.system-card[data-v-1d71de77]{position:relative;padding:22px;border-radius:20px;cursor:pointer;overflow:hidden;transition:all .3s ease;min-height:158px;box-sizing:border-box}.system-card[data-v-1d71de77]:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(0,0,0,.24)}.system-card[data-v-1d71de77]:after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;background:hsla(0,0%,100%,.08);border-radius:50%}.card-top[data-v-1d71de77]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;position:relative;z-index:1}.card-icon[data-v-1d71de77]{width:44px;height:44px;border-radius:14px;background:hsla(0,0%,100%,.16);display:flex;align-items:center;justify-content:center;font-size:20px}.card-arrow[data-v-1d71de77]{font-size:20px;color:hsla(0,0%,100%,.88)}.system-card h3[data-v-1d71de77]{margin:0;font-size:24px;position:relative;z-index:1}.system-card p[data-v-1d71de77]{margin:10px 0 16px;line-height:1.75;color:hsla(0,0%,100%,.88);font-size:14px;position:relative;z-index:1}.card-tags[data-v-1d71de77]{display:flex;flex-wrap:wrap;gap:8px;position:relative;z-index:1}.card-tags span[data-v-1d71de77]{padding:5px 10px;border-radius:999px;font-size:12px;background:hsla(0,0%,100%,.15)}.crm[data-v-1d71de77]{background:linear-gradient(135deg,#25c6da,#5b7cff)}.finance[data-v-1d71de77]{background:linear-gradient(135deg,#f96,#ff5e62)}.asset[data-v-1d71de77]{background:linear-gradient(135deg,#56ab2f,#a8e063)}.book[data-v-1d71de77]{background:linear-gradient(135deg,#614385,#516395)}.expo[data-v-1d71de77]{background:linear-gradient(135deg,#11998e,#38ef7d)}.srm[data-v-1d71de77]{background:linear-gradient(135deg,#ea580c,#f59e0b)}.kms[data-v-1d71de77]{background:linear-gradient(135deg,#3156d9,#7c5ce5)}.more[data-v-1d71de77]{background:linear-gradient(135deg,#3a5060,#5c7a8a)}.bottom-grid[data-v-1d71de77],.middle-grid[data-v-1d71de77]{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.panel[data-v-1d71de77]{border-radius:18px;padding:20px;box-sizing:border-box}.panel-header[data-v-1d71de77]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-header h4[data-v-1d71de77]{margin:0;font-size:18px}.panel-header span[data-v-1d71de77]{font-size:12px;color:hsla(0,0%,100%,.62)}.quick-actions[data-v-1d71de77]{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.quick-item[data-v-1d71de77]{background:hsla(0,0%,100%,.06);border-radius:14px;padding:16px;cursor:pointer;transition:all .25s ease}.quick-item[data-v-1d71de77]:hover{background:hsla(0,0%,100%,.12);transform:translateY(-3px)}.quick-icon[data-v-1d71de77]{font-size:22px;margin-bottom:10px}.quick-text[data-v-1d71de77]{font-size:14px;font-weight:500}.notice-list[data-v-1d71de77],.schedule-list[data-v-1d71de77],.todo-list[data-v-1d71de77]{display:flex;flex-direction:column;gap:14px}.notice-more[data-v-1d71de77]{cursor:pointer;color:#7ec8ff;font-size:13px;transition:opacity .2s}.notice-more[data-v-1d71de77]:hover{opacity:.85}.notice-item[data-v-1d71de77]{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px dashed hsla(0,0%,100%,.1);cursor:pointer;transition:background .2s}.notice-item[data-v-1d71de77]:hover{background:hsla(0,0%,100%,.04);border-radius:8px}.notice-empty[data-v-1d71de77]{padding:12px 0;color:hsla(0,0%,100%,.45);font-size:13px}.todo-empty[data-v-1d71de77]{padding:14px 16px;border-radius:14px;background:hsla(0,0%,100%,.05);color:hsla(0,0%,100%,.55);font-size:14px}.todo-panel-header[data-v-1d71de77]{align-items:center}.todo-tabs[data-v-1d71de77]{display:flex;align-items:center;gap:18px}.todo-tab[data-v-1d71de77]{position:relative;padding:0;border:none;background:transparent;color:hsla(0,0%,100%,.55);font-size:16px;font-weight:700;cursor:pointer;transition:color .2s ease}.todo-count-badge[data-v-1d71de77]{position:absolute;top:-11px;right:-13px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border:2px solid #304457;border-radius:10px;background:#f56c6c;color:#fff;font-size:11px;font-weight:700;line-height:1;box-shadow:0 2px 6px hsla(0,87%,69%,.35);pointer-events:none}.todo-tab.active[data-v-1d71de77]{color:#fff}.todo-tab[data-v-1d71de77]:not(.active):hover{color:hsla(0,0%,100%,.85)}.notice-dot--top[data-v-1d71de77]{background:#e6a23c;box-shadow:0 0 8px rgba(230,162,60,.5)}.notice-item[data-v-1d71de77]:last-child{border-bottom:none}.notice-dot[data-v-1d71de77]{width:8px;height:8px;border-radius:50%;background:#4fc3ff;margin-top:7px;box-shadow:0 0 10px rgba(79,195,255,.8)}.notice-main[data-v-1d71de77]{flex:1}.notice-title[data-v-1d71de77]{font-size:14px;line-height:1.6}.notice-time[data-v-1d71de77]{margin-top:4px;font-size:12px;color:hsla(0,0%,100%,.55)}.schedule-item[data-v-1d71de77],.todo-item[data-v-1d71de77]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;background:hsla(0,0%,100%,.06)}.todo-item[data-v-1d71de77]{cursor:pointer;transition:transform .2s ease,background .2s ease}.todo-item[data-v-1d71de77]:hover{background:hsla(0,0%,100%,.11);transform:translateY(-2px)}.todo-left[data-v-1d71de77]{display:flex;align-items:center;gap:10px}.todo-badge[data-v-1d71de77]{width:10px;height:10px;border-radius:50%}.todo-badge.blue[data-v-1d71de77]{background:#4fc3ff}.todo-badge.orange[data-v-1d71de77]{background:#ff9f43}.todo-badge.green[data-v-1d71de77]{background:#34d399}.todo-badge.purple[data-v-1d71de77]{background:#a78bfa}.todo-right[data-v-1d71de77]{font-weight:700;color:#fff}.schedule-item[data-v-1d71de77]{align-items:flex-start;gap:14px}.schedule-time[data-v-1d71de77]{min-width:58px;font-size:14px;font-weight:700;color:#8fd0ff}.schedule-title[data-v-1d71de77]{font-size:14px;font-weight:600}.schedule-desc[data-v-1d71de77]{margin-top:4px;font-size:12px;color:hsla(0,0%,100%,.62);line-height:1.6}@media (max-width:1400px){.card-grid[data-v-1d71de77],.stats-grid[data-v-1d71de77]{grid-template-columns:repeat(2,1fr)}.hero[data-v-1d71de77]{grid-template-columns:1fr}}@media (max-width:992px){.bottom-grid[data-v-1d71de77],.card-grid[data-v-1d71de77],.middle-grid[data-v-1d71de77],.stats-grid[data-v-1d71de77]{grid-template-columns:1fr}.header[data-v-1d71de77]{padding:0 18px}.content[data-v-1d71de77]{padding:20px 18px 28px}}@media (max-width:768px){.header[data-v-1d71de77]{height:auto;padding-top:14px;padding-bottom:14px;flex-direction:column;gap:12px;align-items:flex-start}.header-right[data-v-1d71de77]{width:100%;justify-content:space-between;flex-wrap:wrap;gap:10px}.hero-title[data-v-1d71de77]{font-size:26px}.hero-actions[data-v-1d71de77]{flex-direction:column}.ghost-btn[data-v-1d71de77],.primary-btn[data-v-1d71de77]{width:100%}}.el-date-picker.el-popper,.el-picker-panel{z-index:100010!important}.portal-el-date.el-date-editor.el-input{width:100%}.portal-el-date.el-input .el-input__inner{border-radius:8px;height:40px;line-height:40px}.filter-item .portal-el-date.el-date-editor.el-input{width:100%}@media (max-width:768px){#app,body,html{width:100%;overflow-x:hidden}.asset-dashboard,.asset-page,.bid-page,.contract-page,.crm-home,.customer-page,.lead-page,.opportunity-page,.portal,.project-page,.quote-page,.srm-home{padding:12px!important}.filter-bar,.header,.page-header,.table-toolbar,.toolbar,.top-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.page-header h2,.page-title,.top-left .system-title{font-size:20px!important;line-height:1.3}.actions,.header-right,.hero-actions,.toolbar-actions,.top-right{display:flex;flex-wrap:wrap;gap:8px;width:100%}.actions>*,.header-right>*,.hero-actions>*,.toolbar-actions>*,.top-right>*{flex:1 1 auto;min-width:120px}.attachment-table-wrap,.contact-table-wrap,.inner-table-wrapper,.table-card,.table-wrapper{width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}.attachment-table,.bid-table,.contact-table,.crm-table,.custom-table,.customer-table,.detail-contact-table,.ob-attach-table,.opp-attach-table,.quote-table{min-width:900px!important}.el-dialog{width:calc(100vw - 24px)!important;margin-top:6vh!important}.el-dialog__body{max-height:72vh;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px!important}.el-form-item{margin-bottom:12px}.el-form-item__label{float:none!important;display:block!important;text-align:left!important;line-height:1.4!important;padding:0 0 4px!important}.el-form-item__content{margin-left:0!important}.el-cascader,.el-date-editor,.el-input,.el-select{width:100%!important}.pagination-wrap{max-width:100%;overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;justify-content:flex-start!important;box-sizing:border-box}.pagination-wrap .el-pagination{min-width:-moz-max-content;min-width:max-content;white-space:nowrap}.bottom-grid,.module-grid,.overview-grid,.stats-grid{grid-template-columns:1fr!important}.layout{flex-direction:column!important;height:auto!important;min-height:100vh;overflow:visible!important}.sidebar{max-height:42vh;overflow-y:auto!important}.sidebar,.sidebar.collapse{width:100%!important}.sidebar .menu,.sidebar.collapse .menu{display:flex!important;align-items:center!important;text-align:left!important;min-height:44px!important;height:auto!important;padding:10px 18px!important;font-size:16px!important;line-height:1.5!important;white-space:normal!important;overflow:visible!important;word-break:keep-all!important}.sidebar .menu span,.sidebar.collapse .menu span{display:block!important;line-height:1.5!important;white-space:normal!important;overflow:visible!important}.sidebar .menu.active,.sidebar.collapse .menu.active{min-height:46px!important;box-shadow:inset 4px 0 0 rgba(142,197,255,.95)!important}.content{padding:12px!important;overflow:visible!important}.inline-progress,.op-stage-flow{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}}.sticky-table-header{position:fixed;z-index:900;overflow:hidden;box-shadow:0 4px 12px rgba(15,23,42,.08);pointer-events:none}.sticky-table-header__scroll{transform:translateX(0);will-change:transform}.sticky-table-header__table{border-collapse:collapse}.sticky-table-header__table thead th{position:static!important;top:auto!important;box-sizing:border-box;background-clip:padding-box}.portal-date-picker-popper.el-picker-panel{z-index:100010!important}