html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#7ba6ff3d,#0000 28%),radial-gradient(circle at right 20%,#4ac4ff29,#0000 30%),linear-gradient(#f7faff 0%,#edf3ff 48%,#eef4fb 100%)}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{font-family:Avenir Next,PingFang SC,Noto Sans SC,sans-serif}.auth-loading-shell,.login-shell{min-height:100vh}.login-shell{z-index:1;place-items:center;padding:28px;display:grid;position:relative}.login-stage{z-index:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 16% 18%,#7ba6ff2e,#0000 22%),radial-gradient(circle at 70% 24%,#57c9ff1f,#0000 20%),linear-gradient(#fffffff0,#f2f7fffa);border:1px solid #d8e4ffe0;border-radius:36px;grid-template-columns:minmax(0,1.1fr) minmax(360px,430px);gap:18px;width:min(1160px,100%);padding:18px;display:grid;position:relative;box-shadow:0 28px 70px #1930661a}.login-company-bar{justify-content:center;align-items:center;display:flex}.login-company-logo{width:min(210px,46%);height:auto;display:block}.login-panel{border-radius:28px;min-height:540px;position:relative}.login-panel-brand{background:radial-gradient(circle at 24% 24%,#6b9eff29,#0000 20%),linear-gradient(160deg,#f8fbffd6,#f0f6ff9e);flex-direction:column;justify-content:center;gap:30px;padding:42px 40px;display:flex}.login-brand-eyebrow{color:#245bdb;background:#3370ff1a;border-radius:999px;padding:9px 14px;font-size:15px;font-weight:600;display:inline-flex}.login-copy{max-width:560px}.login-copy h1.ant-typography,.login-copy h2.ant-typography{color:#12284f;letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(30px,3.2vw,44px);line-height:1.14}.login-copy .ant-typography-paragraph{color:#64748b;max-width:480px;margin:0;font-size:16px;line-height:1.75}.login-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:500px;display:grid}.login-feature-item{color:#17305d;background:#ffffffc7;border:1px solid #d6e2ffe6;border-radius:20px;align-items:center;gap:12px;min-height:76px;padding:0 18px;font-size:17px;font-weight:700;display:flex;box-shadow:0 12px 28px #2140800d}.login-feature-dot{background:linear-gradient(135deg,#2d6dff 0%,#54b7ff 100%);border-radius:50%;flex:none;width:10px;height:10px;box-shadow:0 0 0 6px #3370ff14}.login-panel-note{color:#7a8ba8;letter-spacing:.02em;font-size:14px}.login-card.ant-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 100% 0,#6ea3ff24,#0000 24%),linear-gradient(#fffffff5,#f4f8fffa);border:1px solid #d8e4ffeb;border-radius:28px;align-self:stretch;box-shadow:0 22px 48px #19306614}.login-card .ant-card-body{flex-direction:column;justify-content:center;height:100%;padding:34px 32px;display:flex}.login-card-head{justify-content:center;margin-bottom:24px;display:flex}.login-card-kicker{color:#245bdb;background:#3370ff1a;border-radius:999px;padding:7px 12px;font-weight:600;display:inline-flex}.login-card h3.ant-typography{color:#12284f;margin:0 0 8px}.login-card .ant-typography-paragraph{color:#64748b;margin-bottom:0}.login-card .ant-form-item{margin-bottom:18px}.login-card .ant-input-affix-wrapper-lg,.login-card .ant-btn-lg{border-radius:16px}.login-card .ant-btn-lg{height:52px;font-size:16px;font-weight:600}.shell-layout{background:0 0;min-height:100vh}.shell-layout:before,.shell-layout:after{content:"";filter:blur(12px);pointer-events:none;z-index:0;border-radius:999px;position:fixed;inset:auto}.shell-layout:before{background:#5d93ff29;width:340px;height:340px;top:76px;right:9%}.shell-layout:after{background:#58cfff29;width:300px;height:300px;bottom:4%;left:8%}.shell-sider,.shell-main,.app-header,.content-area{z-index:1;position:relative}.shell-sider.ant-layout-sider{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #d9e4ffc7;border-radius:28px;margin:20px 0 20px 20px;box-shadow:0 24px 60px #19306614}.brand-panel{justify-content:center;align-items:center;padding:22px 18px 14px;display:flex}.brand-panel .ant-typography{color:#1e3a8a}.brand-title.ant-typography{text-align:center;width:100%;margin:0;font-size:17px;line-height:1.1}.brand-panel.collapsed{justify-content:center;padding-inline:12px}.brand-panel.collapsed .brand-title.ant-typography{text-align:center;white-space:normal;max-width:56px;font-size:15px;line-height:1.18}.side-menu{padding:6px 12px 18px;background:0 0!important;border-inline-end:none!important}.shell-main{background:0 0}.app-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid #d7e3ffe6;border-radius:24px;justify-content:space-between;align-items:center;height:auto;margin:20px 20px 0;padding:14px 20px;display:flex;box-shadow:0 18px 50px #13275314}.header-user-meta{align-items:center;gap:10px;display:flex}.header-user-meta .ant-typography{color:#334155;font-weight:600}.status-pill,.header-tag{color:#245bdb;background:#3370ff1a;border:none;border-radius:999px;padding-inline:12px}.page-loading{place-items:center;min-height:220px;display:grid}.page-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.page-toolbar-actions{align-items:center;gap:10px;display:flex}.hero-card,.surface-card,.kpi-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #d8e4ffeb;box-shadow:0 18px 54px #19306614}.hero-card.ant-card{background:radial-gradient(circle at 85% 16%,#81adff3d,#0000 20%),linear-gradient(135deg,#fffffff0,#f5f9fffa)}.hero-card .ant-card-body{justify-content:space-between;align-items:center;gap:24px;display:flex}.hero-copy{max-width:720px}.hero-badge{color:#245bdb;background:#3370ff1a;border-radius:999px;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;display:inline-flex}.hero-copy h2.ant-typography{color:#10264d;margin-bottom:12px}.hero-copy .ant-typography-paragraph,.hero-metric .ant-typography-paragraph{color:#5b6b83;margin-bottom:0}.hero-metric{background:#ffffffd6;border:1px solid #dae5ffe0;border-radius:20px;min-width:280px;padding:18px 20px}.kpi-card .ant-card-body{flex-direction:column;gap:12px;display:flex}.kpi-card-head{align-items:center;gap:12px;display:flex}.kpi-icon{border-radius:14px;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.kpi-card-blue .kpi-icon{color:#245bdb;background:#3370ff1f}.kpi-card-cyan .kpi-icon{color:#0f8aa5;background:#3ab7d324}.kpi-card-green .kpi-icon{color:#1c8f4a;background:#2ecc7124}.kpi-card-gold .kpi-icon{color:#c17a00;background:#ffaa2b24}.kpi-label{color:#64748b;font-size:14px}.kpi-card h3.ant-typography{color:#10264d;margin:0}.kpi-card .ant-typography-paragraph{color:#61738d;margin:0}.content-grid{margin-top:0!important}.dashboard-card-fill{height:100%}.dashboard-card-fill .ant-card-body{height:calc(100% - 57px)}.dashboard-page .page-toolbar{min-height:24px;margin-bottom:10px}.dashboard-summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;padding:12px 14px;display:grid}.dashboard-summary-item{background:#ffffffd6;border:1px solid #d8e4ffeb;border-radius:20px;flex-direction:column;gap:4px;min-height:92px;padding:14px 16px;display:flex;position:relative;box-shadow:0 10px 24px #1930660d}.dashboard-summary-item:before{content:"";background:linear-gradient(90deg,#3370ffcc,#5cb8ff99);width:100%;height:4px;position:absolute;inset:0 auto auto 0}.dashboard-summary-item.tone-cyan:before{background:linear-gradient(90deg,#36b3d6d9,#69deffa3)}.dashboard-summary-item.tone-green:before{background:linear-gradient(90deg,#27ae60d9,#47d68c9e)}.dashboard-summary-item.tone-gold:before{background:linear-gradient(90deg,#f59e0be0,#ffcf5ca3)}.dashboard-summary-head{color:#63748e;align-items:center;gap:10px;font-size:13px;display:flex}.dashboard-summary-icon{color:#245bdb;background:#3370ff1a;border-radius:12px;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:inline-flex}.dashboard-summary-item.tone-cyan .dashboard-summary-icon{color:#1697b7;background:#36b3d61f}.dashboard-summary-item.tone-green .dashboard-summary-icon{color:#1c8f4a;background:#27ae601f}.dashboard-summary-item.tone-gold .dashboard-summary-icon{color:#c78103;background:#f59e0b24}.dashboard-summary-item strong{color:#10264d;font-size:26px;font-weight:700;line-height:1.05}.dashboard-summary-item small{color:#7a889e;line-height:1.45}.dashboard-page .dashboard-main-grid{margin-bottom:0}.dashboard-side-stack{flex-direction:column;gap:14px;height:100%;display:flex}.dashboard-page .dashboard-kpi-card.ant-card .ant-card-body{gap:8px;padding:16px 18px}.dashboard-page .dashboard-kpi-card .kpi-card-head{gap:10px}.dashboard-page .dashboard-kpi-card .kpi-icon{border-radius:12px;width:34px;height:34px;font-size:16px}.dashboard-page .dashboard-kpi-card .kpi-label{font-size:13px}.dashboard-page .dashboard-kpi-card h3.ant-typography{font-size:26px;line-height:1.05}.dashboard-page .dashboard-kpi-card .ant-typography-paragraph{font-size:13px;line-height:1.4}.dashboard-page .dashboard-card.ant-card .ant-card-head{min-height:50px;padding:0 18px}.dashboard-page .dashboard-card.ant-card .ant-card-head-title,.dashboard-page .dashboard-card.ant-card .ant-card-extra{padding:12px 0}.dashboard-upcoming-list .ant-list-item,.dashboard-reminder-list .ant-list-item,.dashboard-expiry-list .ant-list-item{padding-inline:0}.dashboard-upcoming-item,.dashboard-expiry-item{flex-direction:column;gap:6px;width:100%;display:flex}.dashboard-upcoming-head,.dashboard-upcoming-meta,.dashboard-expiry-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-upcoming-subtext{color:#4e6383}.dashboard-expiry-icon{color:#d97706}.dashboard-expiry-title{color:#10264d}.dashboard-expiry-subtext{color:#8a5a1f}.table-toolbar{grid-template-columns:minmax(220px,1fr) 180px;gap:14px;margin-bottom:16px;display:grid}.contract-search,.list-search{width:100%;max-width:380px}.contract-month-filter{width:156px}.contract-status-filter{justify-self:end;width:180px}.compact-toolbar{grid-template-columns:minmax(240px,380px) 168px;justify-content:space-between;align-items:center}.compact-filter-select .ant-select-arrow{color:#8ea0c4}.compact-filter-select{justify-self:end;width:168px}.compact-filter-select.ant-select .ant-select-selector{box-shadow:inset 0 1px #ffffffe6;background:#ffffffe0!important;border-color:#ccdaf8f5!important;border-radius:16px!important}.contract-performance-panel,.ledger-performance-panel{background:radial-gradient(circle at 100% 0,#76abff24,#0000 22%),radial-gradient(circle at 0 100%,#54cbff1a,#0000 24%),linear-gradient(135deg,#fffffff5,#f5f9fffa);border:1px solid #d8e4ffeb;border-radius:26px;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px 20px;display:flex;box-shadow:inset 0 1px #ffffffc7}.contract-performance-panel{gap:14px;padding:16px 18px}.contract-performance-head,.ledger-performance-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.ledger-performance-head-compact{justify-content:flex-end}.contract-performance-eyebrow,.ledger-performance-eyebrow{color:#245bdb;background:#3370ff1a;border-radius:999px;align-items:center;margin-bottom:12px;padding:6px 10px;display:inline-flex}.contract-performance-head h4.ant-typography,.ledger-performance-head h4.ant-typography{color:#10264d;margin-bottom:6px}.contract-performance-head .ant-typography-paragraph,.ledger-performance-head .ant-typography-paragraph{color:#64748b;margin-bottom:0}.contract-performance-badge,.ledger-performance-badge{background:#ffffffd1;border:1px solid #d6e2ffe6;border-radius:20px;min-width:168px;padding:14px 16px;box-shadow:0 12px 30px #1930660f}.contract-performance-badge span,.ledger-performance-badge span{color:#7a889e;margin-bottom:4px;font-size:12px;display:block}.contract-performance-badge strong,.ledger-performance-badge strong{color:#10264d;font-size:17px;font-weight:700}.contract-summary-strip,.ledger-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.contract-summary-item,.ledger-summary-item{background:#ffffffdb;border:1px solid #d8e4ffeb;border-radius:22px;flex-direction:column;gap:6px;min-height:104px;padding:18px 18px 16px;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 34px #1930660f}.contract-summary-item:before,.ledger-summary-item:before{content:"";background:linear-gradient(90deg,#3370ffcc,#5cb8ff99);width:100%;height:4px;position:absolute;inset:0 auto auto 0}.contract-summary-item span,.ledger-summary-item span{color:#64748b;font-size:13px}.contract-summary-item strong,.ledger-summary-item strong{color:#10264d;white-space:nowrap;font-size:28px;font-weight:700;line-height:1.1}.contract-summary-item small,.ledger-summary-item small{color:#7a889e;line-height:1.5}.contract-summary-item.tone-received:before{background:linear-gradient(90deg,#27ae60d9,#47d68c99)}.contract-summary-item.tone-pending:before{background:linear-gradient(90deg,#ff9f43d9,#ffc457a6)}.ledger-summary-item.tone-income:before{background:linear-gradient(90deg,#27ae60d9,#47d68c9e)}.ledger-summary-item.tone-expense:before{background:linear-gradient(90deg,#e74c3cd9,#ff9980ad)}.ledger-summary-item.tone-profit-positive:before{background:linear-gradient(90deg,#3370ffdb,#5cb8ffa8)}.ledger-summary-item.tone-profit-negative:before{background:linear-gradient(90deg,#e67e22e0,#ffbf69b3)}.ledger-summary-item.tone-profit-negative strong{color:#c25c11}.contract-filter-row,.ledger-filter-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.ledger-filter-row-compact{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.ledger-filter-row-compact .list-search{flex:0 0 380px;max-width:380px}.contract-filter-group,.ledger-filter-group{align-items:center;gap:12px;margin-left:auto;display:flex}.contract-search.ant-input-affix-wrapper,.list-search.ant-input-affix-wrapper,.contract-month-filter.ant-picker,.ledger-month-filter.ant-picker,.contract-status-filter.ant-select .ant-select-selector{box-shadow:inset 0 1px #ffffffe6;background:#ffffffe0!important;border-color:#ccdaf8f5!important;border-radius:16px!important}.contract-search .ant-input-prefix,.list-search .ant-input-prefix,.contract-month-filter .ant-picker-suffix,.ledger-month-filter .ant-picker-suffix,.contract-status-filter .ant-select-arrow{color:#8ea0c4}.ledger-month-filter{width:156px}.ledger-summary-inline{justify-content:flex-start;align-items:center;gap:10px;min-width:0;display:flex}.ledger-summary-pill{white-space:nowrap;background:#ffffffd1;border:1px solid #d8e4ffeb;border-radius:18px;align-items:baseline;gap:10px;min-height:48px;padding:12px 16px;display:flex;box-shadow:0 10px 24px #1930660a}.ledger-summary-pill span{color:#6a7a92;font-size:13px}.ledger-summary-pill strong{color:#10264d;font-size:16px;line-height:1}.ledger-summary-pill.tone-income{background:#f5fffae0}.ledger-summary-pill.tone-income strong{color:#1c8f4a}.ledger-summary-pill.tone-expense{background:#fff8f7e6}.ledger-summary-pill.tone-expense strong{color:#d94841}.ledger-summary-pill.tone-profit-positive{background:#f6faffeb}.ledger-summary-pill.tone-profit-positive strong{color:#245bdb}.ledger-summary-pill.tone-profit-negative{background:#fffaf3eb}.ledger-summary-pill.tone-profit-negative strong{color:#c25c11}.primary-cell{flex-direction:column;gap:4px;display:flex}.primary-cell span{color:#10264d;font-weight:600}.primary-cell small,.progress-cell small{color:#7a889e}.primary-cell small.contract-meta-warning{color:#d97706}.primary-cell small.contract-meta-alert{color:#dc2626;font-weight:600}.ant-table-tbody>tr.contract-row-expiring>td{background:#fff8edb8!important}.ant-table-tbody>tr.contract-row-expiring:hover>td{background:#fff4e3eb!important}.ant-table-tbody>tr.contract-row-expired>td{background:#fff0f0c2!important}.ant-table-tbody>tr.contract-row-expired:hover>td{background:#ffe8e8f0!important}.customer-note-cell.ant-typography{color:#314560;margin-bottom:0;line-height:1.6}.empty-note-cell{color:#9aa8bd}.progress-cell{min-width:180px}.customer-rank-item,.ledger-feed-item{flex-direction:column;gap:10px;width:100%;display:flex}.customer-rank-copy{justify-content:space-between;gap:16px;display:flex}.ledger-feed-item{flex-direction:row;justify-content:space-between;align-items:center}.dashboard-reminder-item{flex-direction:column;gap:6px;width:100%;display:flex}.dashboard-reminder-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-reminder-icon{color:#245bdb}.dashboard-reminder-subtext{color:#4e6383}.reminder-overview-panel{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.reminder-summary-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.reminder-stat-card{background:#ffffffd6;border:1px solid #d6e2ffe6;border-radius:20px;flex-direction:column;gap:6px;min-height:84px;padding:16px 18px;display:flex;box-shadow:0 12px 28px #1930660d}.reminder-stat-card span{color:#64748b;font-size:13px}.reminder-stat-card strong{color:#10264d;font-size:28px;line-height:1}.reminder-stat-card.tone-overdue{background:#fff7f6eb}.reminder-stat-card.tone-overdue strong{color:#d94841}.reminder-stat-card.tone-today{background:#f6faffeb}.reminder-stat-card.tone-today strong{color:#245bdb}.reminder-stat-card.tone-upcoming{background:#fffaf3eb}.reminder-stat-card.tone-upcoming strong{color:#c25c11}.reminder-stat-card.tone-all{background:#f8fbfff0}.reminder-filter-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.reminder-filter-copy{flex-direction:column;gap:4px;display:flex}.reminder-filter-group{align-items:center;gap:12px;margin-left:auto;display:flex}.reminder-primary-cell small{line-height:1.65}.trend-card .ant-card-body,.recent-ledger-card .ant-card-body{flex-direction:column;display:flex}.trend-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.dashboard-page .trend-meta{gap:10px;margin-bottom:10px}.trend-meta-item{background:#ffffffd6;border:1px solid #d8e4ffeb;border-radius:18px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.dashboard-page .trend-meta-item{border-radius:16px;gap:3px;padding:12px 14px}.trend-meta-item span,.trend-meta-item small{color:#64748b}.trend-meta-item strong{color:#10264d;font-size:18px;font-weight:700}.trend-meta-item.is-positive strong{color:#1c8f4a}.trend-meta-item.is-negative strong{color:#d94841}.trend-chart-wrap{align-items:stretch;gap:12px;min-height:248px;display:flex}.dashboard-page .trend-chart-wrap{gap:10px;min-height:194px}.trend-y-axis{color:#8a98af;flex-direction:column;justify-content:space-between;width:68px;padding:8px 0 28px;font-size:12px;display:flex}.trend-chart-main{flex-direction:column;flex:1;min-width:0;display:flex}.trend-chart-svg{width:100%;height:220px}.dashboard-page .trend-chart-svg{height:176px}.trend-grid-line{stroke:#bacef6b8;stroke-dasharray:4 6;stroke-width:1px}.trend-area-path{fill:url(#trendGradient)}.trend-line-path{fill:none;stroke:#3370ff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.trend-point-shadow{fill:#3370ff2e}.trend-point-dot{fill:#3370ff;stroke:#fff;stroke-width:2px}.trend-x-axis{color:#7a889e;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:0 4px;font-size:12px;display:grid}.trend-x-axis span{text-align:center}.trend-empty{place-items:center;min-height:248px;display:grid}.dashboard-page .trend-empty{min-height:194px}.dashboard-ledger-list{flex:1}.dashboard-ledger-list .ant-list-items{flex-direction:column;gap:10px;display:flex}.dashboard-page .dashboard-ledger-list .ant-list-items{gap:4px}.dashboard-ledger-list .ant-list-item{padding:14px 0}.dashboard-page .dashboard-ledger-list .ant-list-item{padding:10px 0}.dashboard-page .customer-rank-item,.dashboard-page .ledger-feed-item{gap:6px}.dashboard-page .dashboard-card.customer-rank-card .ant-list-item,.dashboard-page .dashboard-card.dashboard-upcoming-card .ant-list-item{padding-top:10px;padding-bottom:10px}.dashboard-page .surface-card .ant-table-tbody>tr>td{padding-top:12px;padding-bottom:12px}.money-income{color:#1c8f4a;font-weight:700}.money-expense{color:#d94841;font-weight:700}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid.triple{grid-template-columns:repeat(3,minmax(0,1fr))}.customer-modal .ant-modal-content{border-radius:24px}.customer-modal .ant-modal-header{margin-bottom:10px}.customer-modal .ant-form-item{margin-bottom:14px}.customer-modal .ant-modal-body{padding-top:10px}.follow-drawer .ant-drawer-header{border-bottom:1px solid #dbe6ffe0;padding-bottom:14px}.follow-drawer .ant-drawer-body{background:radial-gradient(circle at 100% 0,#78adff1f,#0000 22%),linear-gradient(#f8fbfffa,#f1f6fff5);padding-top:18px}.follow-drawer-summary{background:#ffffffe0;border:1px solid #d8e4ffeb;border-radius:22px;justify-content:space-between;gap:16px;margin-bottom:18px;padding:18px 18px 16px;display:flex;box-shadow:0 14px 38px #1930660f}.follow-drawer-summary h5.ant-typography{color:#10264d;margin-bottom:6px}.follow-drawer-summary .ant-typography-paragraph{color:#64748b;margin-bottom:0}.contract-plan-drawer{flex-direction:column;gap:16px;display:flex}.contract-plan-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.contract-plan-summary-card{background:#ffffffe0;border:1px solid #d8e4ffeb;border-radius:18px;padding:16px;box-shadow:0 12px 28px #1930660d}.contract-plan-summary-card span{color:#6b7c95;margin-bottom:6px;font-size:13px;display:block}.contract-plan-summary-card strong{color:#10264d;font-size:20px;line-height:1.1}.contract-plan-progress{background:#ffffffd1;border:1px solid #d8e4ffeb;border-radius:20px;padding:16px 18px}.contract-plan-progress-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.contract-plan-list .ant-list-item{align-items:flex-start;padding:18px 0}.contract-plan-item{width:100%}.contract-plan-main{flex-direction:column;gap:8px;display:flex}.contract-plan-title-row,.contract-plan-amount-row,.contract-plan-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.contract-plan-amount-row .ant-typography{color:#17305d}.contract-plan-meta{color:#6b7c95;font-size:13px}.contract-plan-note.ant-typography{color:#4e6383;margin-bottom:0;line-height:1.7}.contract-plan-empty{padding:20px 0 4px}.follow-up-list .ant-list-items{flex-direction:column;gap:12px;display:flex}.follow-up-list-item.ant-list-item{background:#ffffffe0;border:1px solid #d8e4ffeb;border-radius:22px;align-items:flex-start;padding:18px;box-shadow:0 14px 34px #1930660f}.follow-up-item,.follow-up-item-head{flex-direction:column;gap:10px;width:100%;display:flex}.follow-up-item .ant-typography-paragraph{color:#334155;margin-bottom:0;line-height:1.75}.surface-card .ant-table-wrapper{overflow-x:auto}@media (width<=1200px){.login-shell{gap:20px;padding:20px}.dashboard-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.login-stage{grid-template-columns:1fr;padding:14px}.login-panel{min-height:0}.login-panel-brand{gap:28px}.hero-card .ant-card-body{flex-direction:column;align-items:flex-start}.hero-metric{width:100%}}@media (width<=992px){.shell-sider.ant-layout-sider{margin-right:0}.app-header{flex-direction:column;align-items:flex-start}.page-toolbar{flex-direction:column;align-items:stretch}}@media (width<=768px){.dashboard-summary-strip{grid-template-columns:1fr}.dashboard-upcoming-head,.dashboard-upcoming-meta,.ledger-feed-item{flex-direction:column;align-items:flex-start}.login-shell{padding:14px}.login-stage{border-radius:28px;gap:14px;padding:12px}.login-panel-brand{padding:28px 22px}.login-company-bar{flex-direction:column;align-items:flex-start}.login-company-logo{width:min(180px,100%)}.login-copy h1.ant-typography,.login-copy h2.ant-typography{font-size:32px}.login-feature-grid{grid-template-columns:1fr}.login-card .ant-card-body{padding:24px}.content-area{padding:16px}.shell-sider.ant-layout-sider{border-radius:24px;margin:12px 0 12px 12px}.app-header{border-radius:24px;margin:12px 12px 0;padding:16px 18px}.table-toolbar,.form-grid,.form-grid.triple,.trend-meta,.contract-summary-strip,.ledger-summary-strip,.reminder-summary-row,.contract-plan-summary{grid-template-columns:1fr}.contract-performance-head,.ledger-performance-head,.contract-filter-row,.ledger-filter-row,.reminder-filter-row,.contract-filter-group,.ledger-filter-group,.reminder-filter-group{flex-direction:column;align-items:stretch}.ledger-filter-row-compact{display:flex}.ledger-summary-inline{flex-wrap:wrap;justify-content:flex-start}.ledger-summary-pill{justify-content:space-between;width:100%}.contract-month-filter,.ledger-month-filter,.contract-search,.list-search,.contract-status-filter,.compact-filter-select{justify-self:stretch;width:100%}.compact-toolbar{justify-content:stretch}.dashboard-reminder-head{flex-direction:column;align-items:flex-start}.follow-drawer-summary{flex-direction:column}.contract-plan-progress-head,.ledger-feed-item{flex-direction:column;align-items:flex-start}.trend-chart-wrap{flex-direction:column;min-height:auto}.trend-y-axis{flex-direction:row;width:100%;padding:0}.trend-chart-svg{height:200px}}:root{--crm-bg:#eff4fb;--crm-surface:#fffffff0;--crm-surface-soft:#f7fafff0;--crm-border:#d7e3f3f5;--crm-border-strong:#cad9f0fa;--crm-shadow:0 12px 30px #0f172a12;--crm-shadow-soft:0 8px 20px #0f172a0a;--crm-text:#1e2b43;--crm-text-secondary:#607089;--crm-text-tertiary:#8a98ac;--crm-primary:#3370ff;--crm-primary-strong:#245bdb}body{background:radial-gradient(circle at top left, #5d91ff1f, transparent 20%), radial-gradient(circle at right 12%, #68c4ff14, transparent 24%), linear-gradient(180deg, #f6f9fd 0%, var(--crm-bg) 44%, #edf2f8 100%);color:var(--crm-text)}.shell-layout:before{filter:blur(32px);background:#5d93ff14;width:280px;height:280px;top:84px;right:8%}.shell-layout:after{filter:blur(30px);background:#58cfff14;width:220px;height:220px;bottom:8%;left:10%}.shell-sider.ant-layout-sider{border:1px solid var(--crm-border);box-shadow:var(--crm-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:24px;margin:16px 0 16px 16px;background:linear-gradient(#fffffff2,#f9fbffeb)!important}.shell-sider.ant-layout-sider .ant-layout-sider-children{flex-direction:column;display:flex}.brand-panel{border-bottom:1px solid #e2eaf6e6;min-height:88px;padding:24px 18px 18px}.brand-title.ant-typography{color:#1f4db7;letter-spacing:-.03em;font-size:24px;font-weight:700}.brand-panel.collapsed .brand-title.ant-typography{max-width:none;font-size:18px}.side-menu{flex:1;padding:14px 12px 18px}.side-menu.ant-menu-inline .ant-menu-item{color:#475569;align-items:center;height:46px;margin-block:4px;font-weight:600;display:flex}.side-menu.ant-menu-inline .ant-menu-item .anticon{font-size:17px}.side-menu.ant-menu-inline .ant-menu-item-selected{box-shadow:inset 0 0 0 1px #3370ff14}.app-header{border:1px solid var(--crm-border);height:auto;box-shadow:var(--crm-shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe0;border-radius:22px;justify-content:space-between;align-items:center;gap:16px;margin:16px 16px 0;padding:14px 18px;display:flex}.app-header-main{min-width:0}.app-header-actions{flex-wrap:wrap;justify-content:flex-end}.header-collapse-button.ant-btn{background:#f7faffeb;border:1px solid #d7e3f3f5;border-radius:14px;width:40px;height:40px}.status-pill,.header-tag{color:var(--crm-primary-strong);background:#f1f6ffeb;border:1px solid #ceddf8e6;border-radius:999px;font-weight:600}.content-area{padding:16px}.page-section{flex-direction:column;gap:18px;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:4px 2px 0;display:flex}.page-header-main{flex-direction:column;gap:6px;min-width:0;display:flex}.page-header-meta{margin-bottom:2px}.page-header-title.ant-typography{color:var(--crm-text);letter-spacing:-.03em;margin:0;font-size:28px;line-height:1.14}.page-header-subtitle.ant-typography{max-width:760px;color:var(--crm-text-secondary);margin:0;font-size:14px;line-height:1.7}.page-toolbar-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.surface-card.ant-card,.hero-card.ant-card,.kpi-card.ant-card{border:1px solid var(--crm-border);box-shadow:var(--crm-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#fffffff5,#f9fbfff0);border-radius:22px;overflow:hidden}.surface-card.ant-card .ant-card-head{border-bottom-color:#e1e9f6e0;min-height:56px;padding:0 18px}.surface-card.ant-card .ant-card-head-title,.surface-card.ant-card .ant-card-extra{padding:14px 0}.surface-card.ant-card .ant-card-head-title{color:var(--crm-text);font-weight:700}.surface-card.ant-card .ant-card-body{padding:18px}.dashboard-summary-strip.surface-card{gap:10px;padding:8px}.dashboard-summary-item{background:var(--crm-surface-soft);min-height:100px;box-shadow:none;border:1px solid #dbe5f3f0;border-radius:18px;padding:16px}.dashboard-summary-item:before,.contract-summary-item:before,.ledger-summary-item:before,.reminder-stat-card:before{height:3px}.dashboard-summary-head,.dashboard-summary-item span,.kpi-label,.trend-meta-item span,.contract-summary-item span,.ledger-summary-item span,.reminder-stat-card span{color:var(--crm-text-secondary)}.dashboard-summary-item strong,.contract-summary-item strong,.ledger-summary-item strong,.reminder-stat-card strong{color:var(--crm-text)}.dashboard-card.ant-card,.dashboard-card-fill.ant-card{height:100%}.dashboard-page .dashboard-card.ant-card .ant-card-body{padding:16px 18px 18px}.trend-meta-item{background:#f7fafe;border-color:#dfe7f4f5;border-radius:16px}.trend-grid-line{stroke:#d0dbeef2}.trend-line-path{stroke:#2d6cff}.table-toolbar,.contract-filter-row,.ledger-filter-row,.reminder-filter-row{background:#f7fafe;border:1px solid #dfe7f4f5;border-radius:18px;padding:12px}.table-toolbar{margin-bottom:16px}.contract-performance-panel,.ledger-performance-panel,.reminder-overview-panel{box-shadow:none;background:0 0;border:none;gap:14px;margin-bottom:16px;padding:0}.contract-summary-strip,.reminder-summary-row{gap:10px}.contract-summary-item,.reminder-stat-card{background:var(--crm-surface-soft);min-height:94px;box-shadow:none;border-radius:18px;padding:15px 16px}.ledger-summary-inline{flex-wrap:wrap;gap:8px}.ledger-summary-pill{min-height:42px;box-shadow:none;border:1px solid #dfe7f4f5;border-radius:14px;padding:10px 14px}.contract-search.ant-input-affix-wrapper,.list-search.ant-input-affix-wrapper,.contract-month-filter.ant-picker,.ledger-month-filter.ant-picker,.contract-status-filter.ant-select .ant-select-selector,.compact-filter-select.ant-select .ant-select-selector,.ant-picker,.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-input-number-affix-wrapper,.ant-select-selector{border-color:var(--crm-border-strong)!important;box-shadow:none!important;background:#fffffff5!important;border-radius:14px!important}.ant-input-affix-wrapper:hover,.ant-input:hover,.ant-picker:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector,.ant-input-number:hover{border-color:#bfcfe6!important}.ant-input-affix-wrapper-focused,.ant-input:focus,.ant-input-focused,.ant-picker-focused,.ant-select-focused .ant-select-selector,.ant-input-number-focused{border-color:#9bbcfb!important;box-shadow:0 0 0 3px #3370ff14!important}.surface-card .ant-table{color:#334155}.surface-card .ant-table-thead>tr>th{color:#53627b;padding-top:14px;padding-bottom:14px;font-size:13px;font-weight:700;background:#f7fafe!important}.surface-card .ant-table-tbody>tr>td{border-bottom-color:#e4ebf6eb;padding-top:16px;padding-bottom:16px}.surface-card .ant-table-pagination.ant-pagination{margin:18px 0 4px}.primary-cell span{color:var(--crm-text)}.primary-cell small,.progress-cell small,.empty-note-cell,.dashboard-upcoming-subtext,.dashboard-reminder-subtext,.dashboard-expiry-subtext,.contract-plan-meta,.contract-plan-note.ant-typography,.login-panel-note{color:var(--crm-text-secondary)}.follow-drawer .ant-drawer-content,.ant-modal .ant-modal-content{border:1px solid var(--crm-border);box-shadow:var(--crm-shadow);border-radius:24px}.follow-drawer .ant-drawer-header,.ant-modal .ant-modal-header{border-bottom-color:#e1e9f6e0}.follow-drawer .ant-drawer-body{background:linear-gradient(#f9fbfffa,#f4f8fff5)}.follow-up-list-item.ant-list-item,.contract-plan-summary-card,.contract-plan-progress,.contract-plan-list .ant-list-item{box-shadow:none;background:#fffffff0;border-color:#dfe7f4f5}.login-shell{padding:22px}.login-stage{border:1px solid var(--crm-border);width:min(1280px,100%);box-shadow:var(--crm-shadow);background:radial-gradient(circle at 12% 18%,#75a4ff24,#0000 18%),linear-gradient(#fffffff5,#f5f9fff0);border-radius:30px;grid-template-columns:minmax(0,1.3fr) minmax(380px,430px);gap:18px;padding:16px}.login-panel{border-radius:24px;min-height:560px}.login-panel-brand{background:radial-gradient(circle at 18% 18%,#78abff1f,#0000 18%),linear-gradient(#fafcfff5,#f4f8ffeb);gap:24px;padding:34px 32px}.login-panel-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.login-company-bar{justify-content:flex-start}.login-company-logo{width:180px}.login-panel-label{color:var(--crm-text-secondary);background:#f5f9fff0;border:1px solid #d6e2fff5;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:600}.login-workbench-head{max-width:620px}.login-brand-eyebrow{color:var(--crm-primary-strong);background:#3370ff14;margin-bottom:12px}.login-copy h1.ant-typography,.login-workbench-head h1.ant-typography{color:#172a4d;letter-spacing:-.04em;margin:0 0 12px;font-size:clamp(34px,4vw,48px);line-height:1.1}.login-workbench-head .ant-typography-paragraph{color:var(--crm-text-secondary);margin:0;font-size:15px;line-height:1.8}.login-feature-grid{gap:12px;max-width:720px}.login-feature-item{min-height:88px;box-shadow:none;background:#fffffff0;border:1px solid #dce6f4f5;border-radius:18px;align-items:flex-start;padding:16px}.login-feature-copy{flex-direction:column;gap:6px;display:flex}.login-feature-copy strong{color:var(--crm-text);font-size:16px;line-height:1.2}.login-feature-copy span{color:var(--crm-text-secondary);font-size:13px;line-height:1.6}.login-card.ant-card{border:1px solid var(--crm-border);box-shadow:var(--crm-shadow);background:#fffffff5;border-radius:24px}.login-card .ant-card-body{padding:32px 28px}.login-card-head{justify-content:flex-start;margin-bottom:22px}.login-card-kicker{color:var(--crm-primary-strong);background:#f1f6ffeb;border:1px solid #d6e2fff5;padding:7px 12px}.login-card-form .ant-form-item-label>label{color:#4f607a;font-weight:600}.login-card-form .ant-btn-primary{margin-top:8px}.ant-btn{font-weight:600}.ant-btn-default{background:#fffffff5}.ant-btn-primary{background:linear-gradient(#3b7cff,#2d6cff)}.ant-tag{font-weight:600}@media (width<=1200px){.login-stage{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:stretch}.page-toolbar-actions{justify-content:flex-start;margin-left:0}}@media (width<=992px){.shell-sider.ant-layout-sider{margin:12px 0 12px 12px}.app-header{flex-direction:column;align-items:stretch;margin:12px 12px 0;padding:14px 16px}.app-header-actions{justify-content:space-between}}@media (width<=768px){.login-shell,.content-area{padding:14px}.login-stage{border-radius:24px;padding:12px}.login-panel-brand,.login-card .ant-card-body{padding:24px 20px}.login-panel-header{flex-direction:column;align-items:flex-start}.login-feature-grid,.dashboard-summary-strip,.contract-summary-strip,.reminder-summary-row{grid-template-columns:1fr}.page-header-title.ant-typography{font-size:24px}.table-toolbar,.contract-filter-row,.ledger-filter-row,.reminder-filter-row{padding:10px}.app-header-actions{gap:10px}}
