.business-system { display: none; color: #1d2939; }
.business-system.active { display: block; }
.business-hero { display: flex; justify-content: space-between; gap: 28px; padding: 28px 30px; border-radius: 18px; color: #f8fffc; background: linear-gradient(118deg, #0f766e, #0e7490 56%, #155e75); box-shadow: 0 14px 32px rgba(15, 118, 110, .18); }
.business-kicker { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; color: #b7f3e4; }
.business-hero h2 { margin: 0; font-size: 30px; letter-spacing: .02em; }
.business-hero p { margin: 9px 0 0; color: #d6fbf1; }
.business-hero-summary { display: grid; align-content: center; gap: 7px; min-width: 240px; padding: 14px 17px; border: 1px solid rgba(255,255,255,.25); border-radius: 13px; background: rgba(255,255,255,.1); font-size: 12px; }
.business-hero-summary strong { color: #fff; font-size: 14px; }
.business-layout { margin-top: 18px; }
.business-panel, .business-subnav, .business-selected-tip, .business-flow-note, .business-project-intro { border: 1px solid #dcebe8; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(15, 67, 59, .05); }
.business-main { min-width: 0; }
.business-subnav { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px; }
.business-subnav button { padding: 6px 10px; border: 1px solid #d8e8e4; border-radius: 99px; color: #58706b; background: #f8fcfb; cursor: pointer; font-size: 12px; }
.business-subnav button.active, .business-subnav button:hover { border-color: #7bd7c2; color: #087160; background: #e5f8f1; }
.business-selected-tip, .business-flow-note { margin: 14px 0; padding: 11px 14px; color: #59706a; font-size: 13px; }
.business-selected-tip strong { color: #087160; }
.business-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin: 14px 0; }
.business-metric-grid article { min-height: 114px; padding: 17px; border: 1px solid #dcebe8; border-radius: 13px; background: linear-gradient(135deg, #fff, #f1fbf8); }
.business-metric-grid small, .business-metric-grid span, .business-table small, .business-stock-list small { display: block; color: #71827e; font-size: 12px; }
.business-metric-grid strong { display: block; margin: 7px 0; color: #115e59; font-size: 25px; }
.business-two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.business-panel { padding: 17px; }
.business-panel header { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 13px; border-bottom: 1px solid #edf3f1; }
.business-panel h3 { margin: 0; color: #1e3a35; font-size: 16px; }
.business-panel header span { color: #77908a; font-size: 12px; }
.business-timeline, .business-timeline li { margin: 0; padding: 0; list-style: none; }
.business-timeline li { display: grid; grid-template-columns: 54px 1fr auto; gap: 9px; align-items: center; padding: 13px 0; border-bottom: 1px dashed #e4eeeb; font-size: 13px; }
.business-timeline b { color: #0f9a86; }.business-timeline em, .business-table-row em, .business-stock-list em { font-style: normal; color: #137d68; font-size: 12px; }
.business-process, .business-crm-flow, .business-inventory-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 22px 0 15px; color: #0c7260; font-weight: 700; font-size: 13px; }.business-process span, .business-crm-flow span, .business-inventory-flow span { padding: 8px 11px; border-radius: 8px; background: #e9f8f3; }.business-process i, .business-crm-flow i, .business-inventory-flow i { color: #8eaaa3; font-style: normal; }
.business-todo-summary { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }.business-todo-summary span { padding: 7px 10px; border: 1px solid #d9e9e5; border-radius: 99px; color: #41746a; background: #fff; font-size: 12px; }
.business-todo-list { display: grid; }.business-todo-row { display: grid; grid-template-columns: 90px minmax(160px, 1fr) 84px 68px; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid #edf3f1; font-size: 13px; }.business-todo-row strong, .business-todo-row small { display: block; }.business-todo-row small { margin-top: 4px; color: #778984; font-size: 12px; }.business-todo-row time { color: #778984; font-size: 12px; }.business-todo-row em { color: #087160; font-style: normal; }.business-tag { width: fit-content; padding: 4px 7px; border-radius: 7px; color: #0f766e; background: #e8f8f2; font-size: 11px; }
.business-layout.todo-mode { margin-top: 0; }.todo-center-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); min-height: 720px; overflow: hidden; border: 1px solid #e1ebe9; border-radius: 12px; background: #fff; }.todo-category-panel { padding: 16px 10px; border-right: 1px solid #e5eceb; background: #fbfdfd; }.todo-category-panel h3 { margin: 0 8px 10px; color: #243a36; font-size: 14px; }.todo-category-panel button { display: grid; grid-template-columns: 18px 1fr auto; gap: 8px; align-items: center; width: 100%; min-height: 37px; padding: 0 10px; border: 0; border-radius: 7px; color: #405753; background: transparent; cursor: pointer; text-align: left; }.todo-category-panel button:hover, .todo-category-panel button.active { color: #1685ed; background: #eaf5ff; }.todo-category-panel button span { text-align: center; font-size: 13px; }.todo-category-panel button b { font-size: 12px; font-weight: 500; }.todo-category-panel button em { color: #81938f; font-size: 11px; font-style: normal; }.todo-content-panel { position: relative; min-width: 0; padding: 16px 14px 30px; }.todo-content-panel > header { padding: 0 10px 12px; border-bottom: 1px solid #eef3f2; }.todo-content-panel > header h3 { margin: 0; color: #253b37; font-size: 14px; }.todo-center-list { max-height: 640px; overflow-y: auto; }.todo-center-list article { padding: 12px 10px; border-bottom: 1px solid #e8efee; cursor: pointer; transition: background .15s ease; }.todo-center-list article:hover { background: #f4f7f9; }.todo-center-list strong, .todo-center-list small { display: block; }.todo-center-list strong { color: #203631; font-size: 12px; font-weight: 500; }.todo-center-list small { margin-top: 5px; color: #80918d; font-size: 10px; }.todo-center-list.completed { max-height: 190px; margin-top: 4px; border-top: 1px solid #e7efed; }.todo-center-list.completed strong { color: #7b8c88; text-decoration: line-through; }.todo-empty-state { display: grid; min-height: 210px; place-content: center; justify-items: center; color: #899894; }.todo-empty-state span { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #8cc9ff, #5aa7ef); font-size: 28px; }.todo-empty-state p { margin: 12px 0 0; font-size: 12px; }.todo-completed-toggle { display: block; width: 100%; padding: 13px; border: 0; border-top: 1px solid #e5eceb; color: #81918e; background: transparent; cursor: pointer; font-size: 11px; }.todo-completed-empty { margin: 12px; color: #96a4a1; text-align: center; font-size: 11px; }
.business-crm-flow, .business-inventory-flow { justify-content: center; margin: 14px 0; padding: 18px; border: 1px solid #dcebe8; border-radius: 13px; background: linear-gradient(90deg, #f5fffc, #edf8ff); }.business-metric-grid.compact article { min-height: 96px; }
.business-table { min-width: 630px; }.business-table-head, .business-table-row { display: grid; grid-template-columns: 1.5fr .8fr .7fr .75fr .75fr; gap: 10px; align-items: center; padding: 11px 9px; border-bottom: 1px solid #edf3f1; font-size: 13px; }.business-table-head { color: #71827e; background: #f6faf9; font-size: 12px; }.business-table-row strong { color: #23443e; }.business-table.projects, .business-table-row.projects { grid-template-columns: 1.5fr 1.1fr .65fr 1fr .55fr .55fr; }.business-table-row small { margin-top: 3px; }.business-progress { position: relative; display: block; height: 8px; overflow: hidden; border-radius: 99px; background: #dcebe8; }.business-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #14b8a6, #0ea5a5); }.business-progress b { position: absolute; top: -13px; right: 0; color: #49746b; font-size: 11px; }
.business-project-intro { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 14px 0; overflow: hidden; background: #dcebe8; }.business-project-intro div { min-height: 100px; padding: 16px; background: #fff; }.business-project-intro strong, .business-project-intro span { display: block; }.business-project-intro strong { color: #155e59; font-size: 14px; }.business-project-intro span { margin-top: 7px; color: #71827e; font-size: 12px; line-height: 1.55; }
.business-stock-list > div { display: grid; grid-template-columns: minmax(120px, 1fr) auto auto; gap: 10px; align-items: center; padding: 13px 0; border-bottom: 1px solid #edf3f1; font-size: 13px; }.business-stock-list strong { color: #27453f; }.business-stock-list span.warning { color: #bd6b11; font-weight: 700; }
.office-dashboard-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 14px 0; padding: 20px 24px; border: 1px solid #dcebe8; border-radius: 14px; background: linear-gradient(120deg, #fff, #eef8ff); }
.office-dashboard-head > div:first-child { display: grid; grid-template-columns: auto 1fr; column-gap: 13px; align-items: center; }.office-dashboard-head strong { color: #163d39; font-size: 17px; }.office-dashboard-head small { grid-column: 2; color: #7b8f8a; }.office-weather { grid-row: 1 / 3; font-size: 38px; }.office-head-stats { display: flex; gap: 34px; }.office-head-stats span { display: grid; gap: 4px; min-width: 82px; color: #70827e; text-align: center; font-size: 12px; }.office-head-stats b { color: #174e49; font-size: 25px; }
.office-performance-panel { margin-bottom: 14px; }.office-performance-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }.office-performance-grid div { min-height: 74px; padding: 14px 18px; border-right: 1px solid #edf3f1; border-bottom: 1px solid #edf3f1; }.office-performance-grid small { display: block; color: #748883; }.office-performance-grid b { display: block; margin-top: 7px; color: #164e49; font-size: 20px; }
.office-dashboard-columns { margin-bottom: 14px; }.office-quick-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; padding-top: 16px; }.office-quick-grid button { display: grid; justify-items: center; gap: 7px; border: 0; color: #506863; background: transparent; cursor: pointer; }.office-quick-grid button b { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; color: #fff; background: linear-gradient(145deg, #16b981, #0ea5a5); }.office-quick-grid button:nth-child(3n+2) b { background: linear-gradient(145deg, #fb9b19, #f59e0b); }.office-quick-grid button:nth-child(3n) b { background: linear-gradient(145deg, #3b9df6, #2383e2); }.office-compact-list, .office-notice-list { margin: 0; padding: 9px 0 0; list-style: none; }.office-compact-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px dashed #e4eeeb; font-size: 12px; }.office-compact-list em { color: #778984; font-style: normal; }.office-notice-list li { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; padding: 9px 0; border-bottom: 1px solid #edf3f1; color: #60716d; font-size: 12px; }.office-notice-list b { color: #39746a; }.office-notice-list time { color: #8a9a96; }
.office-page-panel { min-height: 520px; margin-top: 14px; padding: 18px; overflow: hidden; }.office-page-panel > header button, .office-primary-btn { padding: 8px 14px; border: 0; border-radius: 7px; color: #fff; background: #178cf2; cursor: pointer; }.office-page-tabs, .office-status-tabs { display: flex; align-items: center; gap: 28px; border-bottom: 1px solid #e7efed; }.office-page-tabs button, .office-status-tabs button { position: relative; padding: 2px 0 13px; border: 0; color: #536761; background: transparent; cursor: pointer; }.office-page-tabs button.active, .office-status-tabs button.active { color: #1685ed; }.office-page-tabs button.active::after, .office-status-tabs button.active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: #168cf2; content: ""; }.office-page-tabs .office-primary-btn { margin-bottom: 8px; padding: 8px 14px; color: #fff; background: #168cf2; }.push-right { margin-left: auto; }.office-status-tabs { gap: 32px; padding-top: 14px; }.office-filter-bar { display: flex; align-items: center; gap: 9px; padding: 12px 0; color: #70817d; font-size: 12px; }.office-filter-bar input, .office-filter-bar select { height: 31px; min-width: 165px; padding: 0 10px; border: 1px solid #d8e3e1; border-radius: 5px; color: #667a75; background: #fff; }.office-filter-bar button { height: 31px; padding: 0 13px; border: 1px solid #cfe1dd; border-radius: 5px; color: #237d70; background: #f7fcfa; cursor: pointer; }
.office-data-table { min-width: 720px; border: 1px solid #edf2f1; border-bottom: 0; }.office-data-head, .office-data-row { display: grid; gap: 12px; align-items: center; padding: 11px 10px; border-bottom: 1px solid #edf2f1; font-size: 12px; }.office-data-head { color: #263b37; background: #f3f8fb; font-weight: 700; }.office-data-row { min-height: 55px; color: #455b56; }.office-data-row b, .office-data-row small { display: block; }.office-data-row small { margin-top: 5px; color: #7b8d89; }.office-data-row a { color: #1685ed; white-space: pre; cursor: pointer; }.office-data-row em { font-style: normal; }.office-data-table.approval .office-data-head, .office-data-table.approval .office-data-row { grid-template-columns: 2fr .7fr 1fr .7fr; }.office-data-table.reports .office-data-head, .office-data-table.reports .office-data-row { grid-template-columns: .75fr 1.5fr 1.5fr .55fr .9fr .4fr; }.office-data-table.performance .office-data-head, .office-data-table.performance .office-data-row { grid-template-columns: .75fr 1.3fr .7fr .6fr .6fr .7fr .4fr; }.office-data-table.directory .office-data-head, .office-data-table.directory .office-data-row { grid-template-columns: .7fr 1fr .8fr 1fr 1.25fr; }.office-status { display: inline-block; width: fit-content; padding: 3px 6px; border: 1px solid #f0ad4e; border-radius: 4px; color: #d67b08; }.office-status.已通过 { border-color: #bfcac7; color: #6b7d78; }.office-status.已撤销 { border-color: #d7dfdd; color: #899894; }
.office-calendar-layout { display: grid; grid-template-columns: 310px minmax(600px, 1fr); min-height: 610px; margin: 0 -18px -18px; }.office-mini-calendar { padding: 20px; border-right: 1px solid #e3ece9; }.office-calendar-title, .office-day-toolbar { display: flex; align-items: center; justify-content: space-between; }.office-calendar-title button, .office-day-toolbar button { border: 0; color: #66807a; background: transparent; cursor: pointer; }.office-calendar-week, .office-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }.office-calendar-week { margin-top: 25px; color: #5a706b; }.office-calendar-days span { position: relative; padding: 10px 4px; border: 1px solid #edf2f1; color: #2f4540; }.office-calendar-days span.muted { color: #b4bfbc; }.office-calendar-days span.weekend { color: #ef4444; }.office-calendar-days span.active { color: #fff; background: #1d91f2; }.office-calendar-days span.event::after { position: absolute; bottom: 4px; left: 50%; width: 4px; height: 4px; border-radius: 50%; background: #1d91f2; content: ""; }.office-mini-calendar h4 { margin: 26px 0 12px; }.office-schedule-types { display: grid; gap: 12px; padding: 0; list-style: none; color: #536963; }.office-schedule-types i { display: inline-block; width: 10px; height: 10px; margin-right: 9px; border-radius: 50%; background: #1d91f2; }.office-schedule-types i.green { background: #16b981; }.office-schedule-types i.orange { background: #fb923c; }.office-schedule-types i.purple { background: #8b5cf6; }.office-schedule-types i.cyan { background: #06b6d4; }.office-day-calendar { min-width: 0; }.office-day-toolbar { height: 58px; padding: 0 18px; border-bottom: 1px solid #e8efed; }.office-day-toolbar > div { display: flex; margin-left: auto; }.office-day-toolbar > div button { padding: 7px 14px; border: 1px solid #d7e3e0; }.office-day-toolbar > div button.active { color: #fff; background: #168cf2; }.office-day-heading { padding: 13px; border-bottom: 1px solid #dfe8e6; text-align: center; }.office-day-heading b { display: block; font-size: 18px; }.office-time-grid { position: relative; }.office-time-grid > div { display: grid; grid-template-columns: 55px 1fr; height: 38px; }.office-time-grid time { padding: 9px; border-right: 1px solid #dfe8e6; color: #899894; font-size: 11px; }.office-time-grid span { border-bottom: 1px solid #dfe8e6; }.office-now-line { position: absolute; top: 171px; right: 0; left: 54px; height: 1px; color: #ef4444; border-top: 1px solid #ef4444; font-size: 9px; font-style: normal; }
.office-document { max-width: 840px; margin: 30px auto; color: #4d5855; line-height: 1.7; }.office-document h1, .office-document h2 { text-align: center; }.office-document h1 { margin: 5px 0 18px; font-size: 24px; }.office-document h2 { margin: 0; font-size: 18px; }.office-document h3 { margin: 22px 0 9px; font-size: 18px; }.office-document table { width: 100%; border-collapse: collapse; }.office-document th, .office-document td { padding: 8px 12px; border: 1px solid #7f8986; text-align: left; }.office-document th { background: #f3f5f4; }.office-document.duties { max-width: 780px; }.office-document.duties section { margin: 25px 0; }
.office-attendance-overview { display: grid; grid-template-columns: 220px 1fr; gap: 28px; padding: 20px 0 30px; }.office-donut { position: relative; display: grid; width: 150px; height: 150px; margin: auto; place-items: center; border-radius: 50%; background: conic-gradient(#1b91f3 0 78%, #ffa20c 78%); }.office-donut::before { width: 92px; height: 92px; border-radius: 50%; background: #fff; content: ""; }.office-donut div { position: absolute; display: grid; text-align: center; }.office-donut b { font-size: 22px; }.office-donut span { color: #758682; font-size: 11px; }.office-attendance-stats { display: grid; grid-template-columns: repeat(5, 1fr); background: #f4f9fc; }.office-attendance-stats div { display: grid; align-content: center; min-height: 80px; padding: 12px; }.office-attendance-stats b { color: #154943; font-size: 20px; }.office-attendance-stats span { color: #6d807b; font-size: 11px; }.office-section-title { padding: 12px 0; border-bottom: 1px solid #e7efed; }.office-data-table.attendance-table .office-data-head, .office-data-table.attendance-table .office-data-row { grid-template-columns: .9fr 1.35fr .7fr .7fr .7fr .7fr .65fr .65fr; }.office-data-row .danger { color: #ef4444; }
.office-directory-layout { display: grid; grid-template-columns: 230px 1fr; min-height: 540px; margin: -18px; }.office-org-tree { display: grid; align-content: start; gap: 13px; padding: 18px; border-right: 1px solid #e3ece9; }.office-org-tree input { height: 31px; padding: 0 10px; border: 1px solid #d7e3e0; border-radius: 5px; }.office-org-tree strong { color: #1685ed; }.office-org-tree span { padding-left: 18px; color: #526761; }.office-directory-main { min-width: 0; padding: 18px; }.office-directory-main h3 { margin: 0; color: #233d38; }
.business-layout.customers-mode { margin-top: 0; }
.business-layout.projects-mode { margin-top: 0; }
.project-center-layout { display: grid; grid-template-columns: 168px minmax(0, 1fr); min-height: 760px; overflow: hidden; border: 1px solid #e1e8ef; border-radius: 12px; background: #fff; }
.project-side-nav { padding: 10px 8px; border-right: 1px solid #e1e8ef; background: #fbfdff; }
.project-side-nav button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 40px; padding: 0 12px; border: 0; border-radius: 7px; color: #344e5d; background: transparent; cursor: pointer; font-size: 13px; text-align: left; }
.project-side-nav button i { color: #526d7c; font-size: 14px; font-style: normal; }
.project-side-nav button:hover, .project-side-nav button.active { color: #1685ed; background: #eaf5ff; }
.project-side-nav button.active i { color: #1685ed; }
.project-content-panel { min-width: 0; padding: 16px 14px 22px; background: #fff; }
.project-page-header { display: flex; align-items: center; justify-content: space-between; min-height: 43px; }
.project-page-header h2 { margin: 0; color: #1f333e; font-size: 17px; }
.project-page-header > div { display: flex; gap: 8px; }
.project-page-header button { min-width: 36px; height: 32px; padding: 0 12px; border: 1px solid #d5e0e7; border-radius: 3px; color: #49606e; background: #fff; cursor: pointer; }
.project-page-header button.primary { border-color: #1685ed; color: #fff; background: #1685ed; }
.project-filter-bar { display: flex; gap: 8px; align-items: center; min-width: 980px; padding: 8px 0 10px; color: #8799a4; font-size: 12px; }
.project-filter-bar input, .project-filter-bar select, .project-filter-bar button { height: 31px; border: 1px solid #dce5eb; border-radius: 4px; color: #526874; background: #fff; font-size: 12px; }
.project-filter-bar input { width: 160px; padding: 0 10px; }
.project-filter-bar select { min-width: 136px; padding: 0 26px 0 10px; }
.project-filter-bar button { width: 34px; cursor: pointer; }
.project-data-grid { width: 100%; overflow-x: auto; border-top: 1px solid #eff3f6; }
.project-data-grid table { width: 100%; border-collapse: collapse; color: #344b58; font-size: 12px; white-space: nowrap; }
.project-data-grid.projects-list table { min-width: 1080px; }
.project-data-grid.tasks-list table { min-width: 1760px; }
.project-data-grid th { height: 38px; padding: 0 9px; color: #233b48; background: #f5f9fc; font-weight: 600; text-align: left; }
.project-data-grid td { height: 42px; padding: 0 9px; border-bottom: 1px solid #edf2f5; }
.project-data-grid tbody tr:hover { background: #f7fafc; }
.project-data-grid a { color: #1685ed; cursor: pointer; text-decoration: none; }
.project-data-grid code { padding: 3px 6px; border-radius: 3px; color: #5e727f; background: #f3f6f8; font-family: inherit; }
.project-data-grid u { color: #405665; text-decoration: underline; text-decoration-color: #a9bac4; }
.project-status { display: inline-grid; min-width: 44px; height: 23px; padding: 0 7px; place-items: center; border: 1px solid #72b9ff; border-radius: 3px; color: #1685ed; background: #f2f9ff; font-style: normal; }
.project-status.delayed, .project-status.rejected { border-color: #ff9f92; color: #ed604e; background: #fff5f3; }
.project-status.pending { border-color: #ffc169; color: #e68b13; background: #fff8ea; }
.project-status.waiting { border-color: #f0b568; color: #c87a0d; background: #fff8e8; }
.project-status.paused { border-color: #d6a85e; color: #9b721d; background: #fff8ec; }
.project-status.closed { border-color: #d3dce1; color: #7c8c95; background: #f7f9fa; }
.project-person { display: inline-flex; gap: 6px; align-items: center; }
.project-person i { display: inline-grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #559ee9, #7466d8); font-size: 10px; font-style: normal; }
.project-progress { display: flex; gap: 8px; align-items: center; }
.project-progress > i { display: block; width: 140px; height: 5px; overflow: hidden; border-radius: 3px; background: #e7edf2; }
.project-progress > i b { display: block; height: 100%; border-radius: inherit; background: #1685ed; }
.project-progress > span { width: 32px; color: #5c707b; }
.project-priority { display: inline-grid; min-width: 22px; height: 22px; padding: 0 5px; place-items: center; border-radius: 3px; color: #fff; background: #348bec; font-size: 11px; }
.project-priority.p-紧急 { background: #ed4f3c; }
.project-priority.p-高 { background: #f09b16; }
.project-priority.p-无优先级 { color: #fff; background: #8e9ba3; }
.project-pagination { display: flex; gap: 8px; align-items: center; justify-content: flex-end; min-width: 640px; padding-top: 15px; color: #607580; font-size: 12px; }
.project-pagination select, .project-pagination button, .project-pagination input { height: 29px; border: 1px solid #d9e2e8; border-radius: 3px; color: #526874; background: #fff; }
.project-pagination select { padding: 0 8px; }
.project-pagination button { min-width: 29px; cursor: pointer; }
.project-pagination button.active { border-color: #1685ed; color: #fff; background: #1685ed; }
.project-pagination input { width: 36px; text-align: center; }
.project-empty-cell { height: 160px !important; color: #91a0a8; text-align: center; }
.project-drawer-mask { position: fixed; z-index: 1300; inset: 0; display: flex; justify-content: flex-end; background: rgba(10, 27, 35, .52); }
.project-drawer { display: flex; width: min(1000px, 92vw); height: 100%; flex-direction: column; background: #fff; box-shadow: -12px 0 34px rgba(21, 45, 55, .22); }
.project-drawer > header { display: flex; min-height: 50px; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid #e5ebef; }
.project-drawer > header h3 { margin: 0; color: #273b46; font-size: 14px; font-weight: 600; }
.project-drawer > header button { border: 0; color: #98a8ae; background: transparent; cursor: pointer; font-size: 20px; }
.project-drawer form { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.project-drawer-body { display: grid; gap: 18px; padding: 20px 28px; overflow-y: auto; }
.project-drawer-body > label { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: 10px; color: #405660; font-size: 12px; }
.project-drawer-body > label > span::before, .project-drawer fieldset legend::before { margin-right: 4px; color: #f05252; content: "*"; }
.project-drawer-body > label > span.optional::before { content: ""; }
.project-drawer-body input, .project-drawer-body select, .project-drawer-body textarea { width: 100%; min-height: 30px; padding: 6px 10px; border: 1px solid #d7e2e8; border-radius: 3px; color: #3b515c; background: #fff; box-sizing: border-box; font: inherit; }
.project-drawer-body textarea { min-height: 78px; resize: vertical; }
.project-drawer fieldset { display: flex; align-items: center; gap: 20px; margin: 0; padding: 0; border: 0; color: #405660; font-size: 12px; }
.project-drawer fieldset legend { float: left; width: 72px; padding: 0; }
.project-radio { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.project-radio input { width: auto; min-height: auto; margin: 0; accent-color: #168cf2; }
.project-drawer fieldset p { width: 100%; margin: 30px 0 0 -180px; color: #85969e; font-size: 11px; }
.project-description { position: relative; align-items: start !important; }
.project-description small { position: absolute; right: 9px; bottom: 8px; color: #95a3aa; font-size: 10px; }
.project-drawer footer { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 28px; border-top: 1px solid #e5ebef; }
.project-drawer footer button { min-width: 58px; height: 30px; border: 1px solid #d7e2e8; border-radius: 3px; color: #607680; background: #fff; cursor: pointer; font-size: 12px; }
.project-drawer footer button.primary { border-color: #168cf2; color: #fff; background: #168cf2; }
.project-detail-page { min-width: 780px; padding-bottom: 28px; }
.project-detail-header { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 0 4px; border-bottom: 1px solid #e3ebf0; }
.project-detail-header h2 { margin: 0; color: #263c48; font-size: 17px; }
.project-detail-header p { margin: 4px 0 0; color: #82939e; font-size: 11px; }
.project-back { width: 28px; height: 32px; border: 0; color: #65808e; background: transparent; cursor: pointer; font-size: 27px; line-height: 1; }
.project-detail-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 5px; color: #fff; background: #168cf2; }
.project-detail-tabs { display: flex; gap: 30px; min-height: 48px; padding-left: 48px; border-bottom: 1px solid #e7edf1; }
.project-detail-tabs button { position: relative; padding: 0 2px; border: 0; color: #607682; background: transparent; cursor: pointer; font-size: 12px; }
.project-detail-tabs button.active { color: #1685ed; }
.project-detail-tabs button.active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: #168cf2; content: ""; }
.project-detail-card { max-width: 650px; margin: 28px auto; padding: 22px 30px; border: 1px solid #e6edf1; border-radius: 8px; background: #fff; box-shadow: 0 5px 16px rgba(38, 68, 83, .04); }
.project-detail-card-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-bottom: 16px; border-bottom: 1px solid #edf2f5; }
.project-detail-card-head h3 { margin: 0; color: #263f4d; font-size: 15px; }
.project-detail-card-head p { margin: 5px 0 0; color: #8597a1; font-size: 12px; }
.project-detail-card-head button { border: 0; color: #1685ed; background: transparent; cursor: pointer; font-size: 12px; }
.project-detail-list { display: grid; grid-template-columns: 110px minmax(0, 1fr); row-gap: 21px; margin: 23px 0 0; color: #536a76; font-size: 12px; }
.project-detail-list dt { color: #7b8f99; }
.project-detail-list dd { min-width: 0; margin: 0; color: #334e5c; line-height: 23px; }
.project-member-chip { display: inline-block; margin: 0 6px 5px 0; padding: 1px 8px; border-radius: 3px; color: #49616e; background: #f2f6f8; }
.project-setting-summary { display: grid; gap: 12px; padding-top: 20px; color: #5d737e; font-size: 12px; }
.project-detail-empty { display: grid; min-height: 310px; place-content: center; text-align: center; color: #8497a1; }
.project-detail-empty b { color: #526b78; font-size: 15px; }
.task-status-control { position: relative; display: inline-block; }
.task-status-control > button { padding: 0; border: 0; background: transparent; cursor: pointer; }
.task-status-menu { position: absolute; z-index: 8; top: 27px; left: 0; display: grid; min-width: 74px; padding: 4px; border: 1px solid #dbe6ec; border-radius: 4px; background: #fff; box-shadow: 0 8px 16px rgba(41, 69, 83, .16); }
.task-status-menu button { height: 28px; padding: 0 8px; border: 0; color: #4d6572; background: #fff; cursor: pointer; font-size: 12px; text-align: left; white-space: nowrap; }
.task-status-menu button:hover { color: #1685ed; background: #edf7ff; }
.project-status.resolved, .project-status.accepted { border-color: #65c8a4; color: #15996e; background: #effcf6; }
.task-child-row td:first-child { padding-left: 17px; }
.task-child-row td { background: #fbfdff; }
.task-parent-note { display: block; margin-top: 2px; color: #90a0a9; font-size: 10px; }
.task-drawer { width: min(1010px, 94vw); }
.task-drawer-body { display: grid; grid-template-columns: minmax(0, 1.35fr) 280px; min-height: 560px; overflow-y: auto; }
.task-drawer-body > section { display: grid; align-content: start; gap: 17px; padding: 22px 28px; }
.task-drawer-body > aside { display: grid; align-content: start; gap: 17px; padding: 22px 20px; border-left: 1px solid #e5ebef; background: #fbfdff; }
.task-drawer-body label { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 10px; color: #405660; font-size: 12px; }
.task-drawer-body label > span::before { margin-right: 4px; color: #f05252; content: "*"; }
.task-drawer-body label > span.optional::before { content: ""; }
.task-drawer-body input, .task-drawer-body select, .task-drawer-body textarea { width: 100%; min-height: 31px; padding: 6px 10px; border: 1px solid #d7e2e8; border-radius: 3px; color: #3b515c; background: #fff; box-sizing: border-box; font: inherit; }
.task-drawer-body textarea { min-height: 112px; resize: vertical; }
.task-drawer-body .task-description { align-items: start; }
.task-drawer-body > aside p { margin: 4px 0; color: #8798a2; font-size: 11px; line-height: 1.7; }
.business-layout.inventory-mode { margin-top: 0; }
.inventory-center-layout { display: grid; grid-template-columns: 176px minmax(0, 1fr); min-height: 790px; overflow: hidden; border: 1px solid #e1e9ef; border-radius: 12px; background: #fff; }
.inventory-side-nav { padding: 12px 8px 24px; overflow-y: auto; border-right: 1px solid #e2e9ee; background: #fbfdff; }
.inventory-side-nav section { margin-bottom: 4px; }
.inventory-side-nav h3 { display: grid; grid-template-columns: 23px 1fr auto; align-items: center; min-height: 36px; margin: 0; padding: 0 10px; color: #263f48; font-size: 13px; }
.inventory-side-nav h3 i, .inventory-side-nav > button i { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 5px; color: #1685ed; background: #e9f5ff; font-size: 10px; font-style: normal; }
.inventory-side-nav h3 b { color: #8ca0a8; font-weight: 500; }
.inventory-side-nav button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 37px; padding: 0 10px; border: 0; border-radius: 7px; color: #40565e; background: transparent; cursor: pointer; text-align: left; font-size: 12px; }
.inventory-side-nav section button { padding-left: 34px; }
.inventory-side-nav button:hover, .inventory-side-nav button.active { color: #1685ed; background: #eaf5ff; }
.inventory-side-nav button.active i { color: #fff; background: #1685ed; }
.inventory-content-panel { min-width: 0; padding: 16px 16px 26px; overflow: hidden; background: #fff; }
.inventory-page-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 48px; }
.inventory-page-header h2 { margin: 0; color: #213740; font-size: 18px; }
.inventory-page-header p { display: inline-flex; align-items: center; gap: 6px; margin: 5px 0 0; color: #e98b16; font-size: 11px; }
.inventory-page-header p span { color: #f0a020; }
.inventory-page-header > button { min-height: 32px; padding: 0 14px; border: 1px solid #168cf2; border-radius: 4px; color: #fff; background: #168cf2; cursor: pointer; font-size: 12px; }
.inventory-page-header > button.secondary { color: #526b77; border-color: #d7e1e7; background: #fff; }
.inventory-filter-bar { display: flex; gap: 8px; align-items: center; min-width: 950px; padding: 8px 0 11px; color: #83959e; font-size: 11px; }
.inventory-filter-bar input, .inventory-filter-bar select, .inventory-filter-bar button { height: 31px; border: 1px solid #dce5eb; border-radius: 4px; color: #5f747e; background: #fff; font-size: 11px; }
.inventory-filter-bar input { width: 180px; padding: 0 10px; }
.inventory-filter-bar input[placeholder*="时间"] { width: 230px; }
.inventory-filter-bar select { min-width: 150px; padding: 0 26px 0 10px; }
.inventory-filter-bar button { width: 34px; cursor: pointer; }
.inventory-tabs { display: flex; align-items: center; gap: 24px; min-width: 880px; height: 45px; border: 1px solid #e5edf1; border-bottom: 0; color: #566c76; font-size: 11px; }
.inventory-tabs button { align-self: stretch; padding: 0 4px; border: 0; border-bottom: 2px solid transparent; color: inherit; background: transparent; cursor: pointer; }
.inventory-tabs button:first-child { margin-left: 12px; }
.inventory-tabs button.active { color: #1685ed; border-bottom-color: #1685ed; }
.inventory-tabs label:first-of-type { margin-left: auto; }
.inventory-tabs label:last-child { margin-right: 16px; }
.inventory-data-grid { width: 100%; overflow-x: auto; border: 1px solid #e6edf1; }
.inventory-data-grid table { width: 100%; min-width: 980px; border-collapse: collapse; color: #3f555f; font-size: 11px; white-space: nowrap; }
.inventory-data-grid.inventory-stock-grid table { min-width: 1260px; }
.inventory-data-grid.inventory-document-grid table { min-width: 1450px; }
.inventory-data-grid th { height: 39px; padding: 0 10px; color: #243b45; background: #f4f8fb; font-weight: 600; text-align: left; }
.inventory-data-grid td { height: 49px; padding: 7px 10px; border-bottom: 1px solid #e9eef1; }
.inventory-data-grid tbody tr:hover { background: #f7fafc; }
.inventory-data-grid a { color: #1685ed; cursor: pointer; text-decoration: none; white-space: pre; }
.inventory-data-grid input[type="checkbox"] { width: 13px; height: 13px; }
.inventory-status { display: inline-block; padding: 3px 7px; border-radius: 3px; font-size: 10px; }
.inventory-status.success { color: #1685ed; background: #eaf4ff; }
.inventory-status.danger { color: #eb6251; background: #fff0ed; }
.inventory-status.info { color: #1685ed; border: 1px solid #77bbfa; background: #fff; }
.inventory-empty { display: grid; min-height: 520px; place-content: center; justify-items: center; color: #89999e; }
.inventory-empty span { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #8dcaff, #5ca8ef); font-size: 25px; }
.inventory-empty p { margin: 12px 0 0; font-size: 11px; }
.inventory-pagination { display: flex; gap: 8px; align-items: center; justify-content: flex-end; min-width: 620px; padding-top: 15px; color: #607580; font-size: 11px; }
.inventory-pagination select, .inventory-pagination button, .inventory-pagination input { height: 29px; border: 1px solid #d9e2e8; border-radius: 3px; color: #526874; background: #fff; }
.inventory-pagination select { padding: 0 8px; }
.inventory-pagination button { min-width: 29px; cursor: pointer; }
.inventory-pagination button.active { border-color: #1685ed; color: #fff; background: #1685ed; }
.inventory-pagination input { width: 36px; text-align: center; }
.inventory-live-filter-bar { min-width: 1110px; }
.inventory-live-filter-bar .inventory-filter-apply { width: auto; padding: 0 12px; border-color: #168cf2; color: #fff; background: #168cf2; }
.inventory-live-tabs { gap: 18px; min-width: 1050px; padding-right: 14px; }
.inventory-live-tabs span { margin-left: auto; color: #9a780f; font-size: 10px; white-space: nowrap; }
.inventory-stock-grid td:first-child strong, .inventory-stock-grid td:first-child small { display: block; }
.inventory-stock-grid td:first-child strong { color: #304752; font-size: 11px; font-weight: 600; }
.inventory-stock-grid td:first-child small { margin-top: 5px; color: #82949d; font-size: 10px; }
.inventory-api-error span { color: #fff; background: #ee725f; }
.inventory-api-error button { min-height: 30px; margin-top: 12px; padding: 0 13px; border: 1px solid #168cf2; border-radius: 4px; color: #168cf2; background: #fff; cursor: pointer; font-size: 11px; }
.inventory-ledger-drawer { width: min(900px, 96vw); }
.inventory-ledger-drawer > header p { margin: 5px 0 0; color: #788b94; font-size: 11px; }
.inventory-ledger-tabs { display: flex; gap: 24px; min-height: 36px; margin: -8px -22px 16px; padding: 0 22px; border-bottom: 1px solid #e4ecef; }
.inventory-ledger-tabs button { padding: 0 2px; border: 0; border-bottom: 2px solid transparent; color: #60747c; background: transparent; cursor: pointer; font-size: 12px; }
.inventory-ledger-tabs button.active { border-bottom-color: #168cf2; color: #168cf2; }
.inventory-ledger-drawer td:first-child { display: flex; align-items: center; gap: 8px; }
.inventory-ledger-drawer td:first-child b { padding: 3px 7px; border-radius: 4px; color: #18a96c; background: #eaf8f0; font-size: 11px; }
.inventory-ledger-drawer td:first-child b.negative { color: #e65e4e; background: #fff0ed; }
.inventory-ledger-drawer td p { margin: 0 0 4px; color: #61767e; line-height: 1.35; }
.inventory-ledger-loading { padding: 22px; color: #82949d; text-align: center; font-size: 12px; }
.inbound-filter-bar { min-width: 1080px; }
.inbound-data-grid table { min-width: 1380px; }
.inbound-editor { display: flex; width: min(1040px, 96vw); max-height: min(860px, 94vh); flex-direction: column; border-radius: 8px; background: #fff; box-shadow: 0 16px 42px rgba(22, 44, 54, .28); }
.inbound-editor > header { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 0 22px; border-bottom: 1px solid #e5ebef; }
.inbound-editor h3 { margin: 0; color: #273d4a; font-size: 16px; }
.inbound-editor .inventory-back, .inbound-editor .inventory-close { border: 0; color: #708590; background: transparent; cursor: pointer; }
.inbound-editor .inventory-back { font-size: 27px; line-height: 1; }.inbound-editor .inventory-close { margin-left: auto; font-size: 20px; }
.inbound-editor form { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.inbound-editor main { flex: 1; padding: 20px 26px; overflow-y: auto; }
.inbound-editor main > label, .inbound-editor fieldset { display: grid; width: min(560px, 100%); grid-template-columns: 72px minmax(0, 1fr); align-items: start; gap: 12px; margin: 0 0 17px; color: #435b65; font-size: 12px; }
.inbound-editor main > label > span::before, .inbound-editor fieldset legend::before, .inbound-product-section header > span::before { margin-right: 4px; color: #f05252; content: "*"; }
.inbound-editor select, .inbound-editor textarea, .inbound-editor input { width: 100%; min-height: 32px; padding: 6px 10px; border: 1px solid #d7e2e8; border-radius: 3px; color: #3e5661; background: #fff; box-sizing: border-box; font: inherit; }
.inbound-editor textarea { min-height: 74px; resize: vertical; }
.inbound-editor fieldset { display: flex; align-items: center; padding: 0; border: 0; }.inbound-editor fieldset legend { width: 72px; padding: 0; }.inbound-editor fieldset label { display: inline-flex; gap: 5px; align-items: center; cursor: pointer; }.inbound-editor fieldset input { width: auto; min-height: auto; accent-color: #168cf2; }
.inbound-type-tip { width: min(560px, 100%); margin: -8px 0 16px 84px; color: #788b95; font-size: 11px; }
.inbound-note { position: relative; }.inbound-note small { position: absolute; right: 8px; bottom: 7px; color: #899aa2; font-size: 10px; }
.inbound-product-section { margin-top: 26px; }.inbound-product-section > header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; color: #405761; font-size: 12px; }.inbound-product-section > header button { min-height: 31px; padding: 0 12px; border: 0; border-radius: 4px; color: #fff; background: #168cf2; cursor: pointer; font-size: 12px; }
.inbound-product-section table { width: min(980px, 100%); border-collapse: collapse; border: 1px solid #e2ebef; color: #425860; font-size: 11px; }.inbound-product-section th, .inbound-product-section td { padding: 10px; border-bottom: 1px solid #e8eef1; text-align: left; }.inbound-product-section th { background: #f4f8fb; color: #30464f; }.inbound-product-section td strong, .inbound-product-section td small, .inbound-product-picker td strong, .inbound-product-picker td small, .inbound-detail-drawer td strong, .inbound-detail-drawer td small { display: block; }.inbound-product-section td small, .inbound-product-picker td small, .inbound-detail-drawer td small { margin-top: 4px; color: #84969e; font-size: 10px; }.inbound-product-section td input { width: 90px; min-height: 29px; }.inbound-product-section td a { color: #e45f4d; cursor: pointer; }.inbound-empty-products { width: min(980px, 100%); margin: 0; padding: 30px; border: 1px dashed #d7e3e8; color: #8a9ca5; text-align: center; font-size: 12px; }
.inbound-editor footer, .inbound-product-picker footer { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 13px 22px; border-top: 1px solid #e5ebef; }.inbound-editor footer button, .inbound-product-picker footer button { min-width: 58px; height: 31px; border: 1px solid #d7e2e8; border-radius: 3px; color: #5d7380; background: #fff; cursor: pointer; font-size: 12px; }.inbound-editor footer .primary, .inbound-product-picker footer .primary { border-color: #168cf2; color: #fff; background: #168cf2; }.inbound-editor footer button:disabled { opacity: .65; cursor: wait; }
.inbound-product-picker { display: flex; width: min(900px, 94vw); max-height: min(650px, 88vh); flex-direction: column; border-radius: 7px; background: #fff; box-shadow: 0 14px 36px rgba(20, 42, 52, .28); }.inbound-product-picker > header { display: flex; min-height: 52px; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid #e5ebef; }.inbound-product-picker h3 { margin: 0; color: #314750; font-size: 14px; }.inbound-product-picker > header button { border: 0; color: #91a2aa; background: transparent; cursor: pointer; font-size: 20px; }.inbound-picker-filters { display: flex; gap: 9px; padding: 17px 18px 10px; }.inbound-picker-filters select, .inbound-picker-filters input { width: 180px; height: 31px; padding: 0 10px; border: 1px solid #d8e4e9; border-radius: 4px; color: #60757e; background: #fff; font-size: 11px; }.inbound-product-picker .inventory-data-grid { margin: 0 18px; width: auto; }.inbound-product-picker .inventory-data-grid table { min-width: 760px; }.inbound-product-picker footer > span { margin-right: auto; color: #83959d; font-size: 11px; }.inbound-picker-loading { padding: 22px; color: #83959d; text-align: center; font-size: 12px; }
.inbound-detail-drawer { width: min(720px, 94vw); }.inbound-detail-drawer > header p { margin: 4px 0 0; color: #83959c; font-size: 11px; }.inbound-detail-drawer h4 { margin: 0 0 16px; padding-left: 8px; border-left: 3px solid #168cf2; color: #304750; font-size: 13px; }.inbound-detail-drawer dl { margin-bottom: 28px; }.inbound-detail-summary { margin: -8px 0 12px; color: #71858e; font-size: 11px; }
.outbound-filter-bar { min-width: 1080px; }.outbound-data-grid table { min-width: 1500px; }
.outbound-editor { display: flex; width: min(1040px, 96vw); max-height: min(860px, 94vh); flex-direction: column; border-radius: 8px; background: #fff; box-shadow: 0 16px 42px rgba(22, 44, 54, .28); }.outbound-editor > header { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 0 22px; border-bottom: 1px solid #e5ebef; }.outbound-editor h3 { margin: 0; color: #273d4a; font-size: 16px; }.outbound-editor .inventory-back, .outbound-editor .inventory-close { border: 0; color: #708590; background: transparent; cursor: pointer; }.outbound-editor .inventory-back { font-size: 27px; line-height: 1; }.outbound-editor .inventory-close { margin-left: auto; font-size: 20px; }.outbound-editor form { display: flex; min-height: 0; flex: 1; flex-direction: column; }.outbound-editor main { flex: 1; padding: 20px 26px; overflow-y: auto; }
.outbound-editor main > label, .outbound-editor fieldset { display: grid; width: min(560px, 100%); grid-template-columns: 72px minmax(0, 1fr); align-items: start; gap: 12px; margin: 0 0 17px; color: #435b65; font-size: 12px; }.outbound-editor main > label > span::before, .outbound-editor fieldset legend::before, .outbound-product-section header > span::before { margin-right: 4px; color: #f05252; content: "*"; }.outbound-editor select, .outbound-editor textarea, .outbound-editor input { width: 100%; min-height: 32px; padding: 6px 10px; border: 1px solid #d7e2e8; border-radius: 3px; color: #3e5661; background: #fff; box-sizing: border-box; font: inherit; }.outbound-editor textarea { min-height: 74px; resize: vertical; }.outbound-editor fieldset { display: flex; align-items: center; padding: 0; border: 0; }.outbound-editor fieldset legend { width: 72px; padding: 0; }.outbound-editor fieldset label { display: inline-flex; gap: 5px; align-items: center; cursor: pointer; }.outbound-editor fieldset input { width: auto; min-height: auto; accent-color: #168cf2; }.outbound-type-tip { width: min(560px, 100%); margin: -8px 0 16px 84px; color: #788b95; font-size: 11px; }.outbound-note { position: relative; }.outbound-note small { position: absolute; right: 8px; bottom: 7px; color: #899aa2; font-size: 10px; }
.outbound-product-section { margin-top: 26px; }.outbound-product-section > header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; color: #405761; font-size: 12px; }.outbound-product-section > header button { min-height: 31px; padding: 0 12px; border: 0; border-radius: 4px; color: #fff; background: #168cf2; cursor: pointer; font-size: 12px; }.outbound-product-section table { width: min(980px, 100%); border-collapse: collapse; border: 1px solid #e2ebef; color: #425860; font-size: 11px; }.outbound-product-section th, .outbound-product-section td { padding: 10px; border-bottom: 1px solid #e8eef1; text-align: left; }.outbound-product-section th { background: #f4f8fb; color: #30464f; }.outbound-product-section td strong, .outbound-product-section td small, .outbound-product-picker td strong, .outbound-product-picker td small, .outbound-detail-drawer td strong, .outbound-detail-drawer td small { display: block; }.outbound-product-section td small, .outbound-product-picker td small, .outbound-detail-drawer td small { margin-top: 4px; color: #84969e; font-size: 10px; }.outbound-product-section td input { width: 90px; min-height: 29px; }.outbound-product-section td a { color: #e45f4d; cursor: pointer; }
.outbound-editor footer, .outbound-product-picker footer { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 13px 22px; border-top: 1px solid #e5ebef; }.outbound-editor footer button, .outbound-product-picker footer button { min-width: 58px; height: 31px; border: 1px solid #d7e2e8; border-radius: 3px; color: #5d7380; background: #fff; cursor: pointer; font-size: 12px; }.outbound-editor footer .primary, .outbound-product-picker footer .primary { border-color: #168cf2; color: #fff; background: #168cf2; }.outbound-editor footer button:disabled { opacity: .65; cursor: wait; }
.outbound-product-picker { display: flex; width: min(960px, 94vw); max-height: min(650px, 88vh); flex-direction: column; border-radius: 7px; background: #fff; box-shadow: 0 14px 36px rgba(20, 42, 52, .28); }.outbound-product-picker > header { display: flex; min-height: 52px; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid #e5ebef; }.outbound-product-picker h3 { margin: 0; color: #314750; font-size: 14px; }.outbound-product-picker > header button { border: 0; color: #91a2aa; background: transparent; cursor: pointer; font-size: 20px; }.outbound-product-picker .inventory-data-grid { margin: 0 18px; width: auto; }.outbound-product-picker .inventory-data-grid table { min-width: 860px; }.outbound-product-picker footer > span { margin-right: auto; color: #83959d; font-size: 11px; }
.stocktake-notice { margin: 0 0 12px; color: #e48a25; font-size: 12px; }.stocktake-data-grid td:last-child { white-space: nowrap; }.stocktake-data-grid td:last-child a + a { margin-left: 12px; }.stocktake-profit { color: #13a86c; }.stocktake-loss { color: #ec5c5c; }.stocktake-editor { display: flex; width: min(1040px, 96vw); max-height: min(860px, 94vh); flex-direction: column; border-radius: 8px; background: #fff; box-shadow: 0 16px 42px rgba(22, 44, 54, .28); }.stocktake-editor > header { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 0 22px; border-bottom: 1px solid #e5ebef; }.stocktake-editor h3 { margin: 0; color: #273d4a; font-size: 16px; }.stocktake-editor .inventory-back, .stocktake-editor .inventory-close { border: 0; color: #708590; background: transparent; cursor: pointer; }.stocktake-editor .inventory-back { font-size: 27px; line-height: 1; }.stocktake-editor .inventory-close { margin-left: auto; font-size: 20px; }.stocktake-editor form { display: flex; min-height: 0; flex: 1; flex-direction: column; }.stocktake-editor main { flex: 1; padding: 20px 26px; overflow-y: auto; }.stocktake-editor main > label { display: grid; width: min(560px, 100%); grid-template-columns: 72px minmax(0, 1fr); align-items: start; gap: 12px; margin: 0 0 17px; color: #435b65; font-size: 12px; }.stocktake-editor main > label > span::before, .stocktake-product-section header > span::before { margin-right: 4px; color: #f05252; content: "*"; }.stocktake-editor select, .stocktake-editor textarea, .stocktake-editor input { width: 100%; min-height: 32px; padding: 6px 10px; border: 1px solid #d7e2e8; border-radius: 3px; color: #3e5661; background: #fff; box-sizing: border-box; font: inherit; }.stocktake-editor textarea { min-height: 74px; resize: vertical; }.stocktake-note { position: relative; }.stocktake-note small { position: absolute; right: 8px; bottom: 7px; color: #899aa2; font-size: 10px; }.stocktake-product-section { margin-top: 26px; }.stocktake-product-section > header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; color: #405761; font-size: 12px; }.stocktake-product-section > header button { min-height: 31px; padding: 0 12px; border: 0; border-radius: 4px; color: #fff; background: #168cf2; cursor: pointer; font-size: 12px; }.stocktake-product-section table { width: min(980px, 100%); border-collapse: collapse; border: 1px solid #e2ebef; color: #425860; font-size: 11px; }.stocktake-product-section th, .stocktake-product-section td { padding: 10px; border-bottom: 1px solid #e8eef1; text-align: left; }.stocktake-product-section th { background: #f4f8fb; color: #30464f; }.stocktake-product-section td strong, .stocktake-product-section td small, .stocktake-product-picker td strong, .stocktake-product-picker td small { display: block; }.stocktake-product-section td small, .stocktake-product-picker td small { margin-top: 4px; color: #84969e; font-size: 10px; }.stocktake-product-section td input { width: 90px; min-height: 29px; }.stocktake-product-section td a { color: #e45f4d; cursor: pointer; }.stocktake-editor footer, .stocktake-product-picker footer { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 13px 22px; border-top: 1px solid #e5ebef; }.stocktake-editor footer button, .stocktake-product-picker footer button { min-width: 58px; height: 31px; border: 1px solid #d7e2e8; border-radius: 3px; color: #5d7380; background: #fff; cursor: pointer; font-size: 12px; }.stocktake-editor footer .primary, .stocktake-product-picker footer .primary { border-color: #168cf2; color: #fff; background: #168cf2; }.stocktake-editor footer button:disabled { opacity: .65; cursor: wait; }.stocktake-product-picker { display: flex; width: min(920px, 94vw); max-height: min(650px, 88vh); flex-direction: column; border-radius: 7px; background: #fff; box-shadow: 0 14px 36px rgba(20, 42, 52, .28); }.stocktake-product-picker > header { display: flex; min-height: 52px; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid #e5ebef; }.stocktake-product-picker h3 { margin: 0; color: #314750; font-size: 14px; }.stocktake-product-picker > header button { border: 0; color: #91a2aa; background: transparent; cursor: pointer; font-size: 20px; }.stocktake-product-picker .inventory-data-grid { margin: 0 18px; width: auto; }.stocktake-product-picker .inventory-data-grid table { min-width: 760px; }.stocktake-product-picker footer > span { margin-right: auto; color: #83959d; font-size: 11px; }.stocktake-detail-drawer { width: min(900px, 96vw); }.stocktake-detail-drawer table { min-width: 820px; }.stocktake-detail-note-edit { display: flex; flex-wrap: wrap; gap: 6px; }.stocktake-detail-note-edit textarea { width: 100%; min-height: 58px; padding: 7px; border: 1px solid #d7e2e8; border-radius: 3px; resize: vertical; }.stocktake-detail-note-edit button { border: 1px solid #d7e2e8; border-radius: 3px; padding: 4px 10px; color: #48606a; background: #fff; cursor: pointer; }.stocktake-detail-note-edit button:first-of-type { border-color: #168cf2; color: #fff; background: #168cf2; }
.outbound-detail-drawer { width: min(790px, 94vw); }.outbound-detail-drawer > header p { margin: 4px 0 0; color: #83959c; font-size: 11px; }.outbound-detail-drawer h4 { margin: 0 0 16px; padding-left: 8px; border-left: 3px solid #168cf2; color: #304750; font-size: 13px; }.outbound-detail-drawer dl { margin-bottom: 28px; }
.product-filter-bar { min-width: 1110px; }
.product-filter-bar input[type="date"] { width: 138px; }
.product-filter-bar span + input[type="date"] { margin-left: -4px; }
.product-data-grid table { min-width: 1120px; }
.product-row-actions { display: flex; gap: 12px; align-items: center; }
.product-row-actions .danger { color: #ed604e; }
.inventory-empty-cell { height: 180px !important; color: #8b9da6; text-align: center; }
.inventory-editor-mask, .inventory-detail-mask, .inventory-confirm-mask { position: fixed; z-index: 1320; inset: 0; display: flex; background: rgba(13, 29, 38, .5); }
.inventory-editor-mask { align-items: center; justify-content: center; padding: 20px; }
.inventory-editor { display: flex; width: min(1040px, 96vw); max-height: min(860px, 94vh); flex-direction: column; border-radius: 8px; background: #fff; box-shadow: 0 16px 42px rgba(22, 44, 54, .28); }
.inventory-editor > header { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 0 22px; border-bottom: 1px solid #e5ebef; }
.inventory-editor h3 { margin: 0; color: #273d4a; font-size: 16px; }
.inventory-editor .inventory-back, .inventory-editor .inventory-close { border: 0; color: #708590; background: transparent; cursor: pointer; }
.inventory-editor .inventory-back { font-size: 27px; line-height: 1; }
.inventory-editor .inventory-close { margin-left: auto; font-size: 20px; }
.inventory-editor form { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.inventory-editor main { min-height: 0; padding: 20px 34px; overflow-y: auto; }
.inventory-editor main > h4, .inventory-detail-drawer h4 { margin: 0 0 18px; padding-left: 9px; border-left: 3px solid #168cf2; color: #253f4d; font-size: 14px; }
.product-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 36px; max-width: 760px; }
.product-form-grid > label { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 10px; color: #405762; font-size: 12px; }
.product-form-grid > label > span::before, .product-form-grid fieldset legend::before { margin-right: 4px; color: #f05252; content: "*"; }
.product-form-grid > label > span.optional::before { content: ""; }
.product-form-grid input, .product-form-grid select, .product-form-grid textarea { width: 100%; min-height: 31px; padding: 6px 10px; border: 1px solid #d7e2e8; border-radius: 3px; color: #3b515c; background: #fff; box-sizing: border-box; font: inherit; }
.product-form-grid fieldset { display: flex; align-items: center; gap: 17px; margin: 0; padding: 0; border: 0; color: #405762; font-size: 12px; }
.product-form-grid fieldset legend { float: left; width: 76px; padding: 0; }
.product-form-grid fieldset label { display: inline-flex; gap: 5px; align-items: center; cursor: pointer; }
.product-form-grid fieldset input { width: auto; min-height: auto; margin: 0; accent-color: #168cf2; }
.product-form-grid .product-description { grid-column: 1 / -1; align-items: start; }
.product-form-grid textarea { min-height: 150px; resize: vertical; }
.inventory-editor footer, .inventory-detail-drawer footer { display: flex; justify-content: flex-end; gap: 10px; padding: 13px 28px; border-top: 1px solid #e5ebef; }
.inventory-editor footer button, .inventory-detail-drawer footer button, .inventory-confirm footer button { min-width: 58px; height: 31px; border: 1px solid #d7e2e8; border-radius: 3px; color: #5d7380; background: #fff; cursor: pointer; font-size: 12px; }
.inventory-editor footer .primary, .inventory-detail-drawer footer button { border-color: #168cf2; color: #fff; background: #168cf2; }
.inventory-detail-mask { justify-content: flex-end; }
.inventory-detail-drawer { display: flex; width: min(900px, 93vw); height: 100%; flex-direction: column; background: #fff; box-shadow: -12px 0 32px rgba(19, 42, 54, .24); }
.inventory-detail-drawer > header { display: flex; align-items: center; gap: 10px; min-height: 70px; padding: 0 20px; border-bottom: 1px solid #e4ebef; }
.inventory-detail-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 4px; color: #fff; background: #168cf2; }
.inventory-detail-drawer > header h3 { margin: 0; color: #273e4b; font-size: 16px; }
.inventory-detail-drawer > header button { margin-left: auto; border: 0; color: #96a6ae; background: transparent; cursor: pointer; font-size: 20px; }
.inventory-detail-drawer > section { flex: 1; padding: 20px 22px; overflow-y: auto; }
.inventory-detail-drawer dl { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 60px; margin: 0 0 26px; color: #536b76; font-size: 12px; }
.inventory-detail-drawer dt { display: inline-block; color: #83949d; }
.inventory-detail-drawer dd { display: inline; margin: 0 0 0 12px; color: #334e5a; }
.inventory-detail-drawer dl > div { display: flex; }
.inventory-detail-drawer table { width: 100%; border-collapse: collapse; color: #425b67; font-size: 12px; }
.inventory-detail-drawer th, .inventory-detail-drawer td { padding: 12px 10px; border-bottom: 1px solid #e8eef1; text-align: left; }
.inventory-detail-drawer th { background: #f4f8fb; color: #29434f; }
.inventory-confirm-mask { align-items: center; justify-content: center; }
.inventory-confirm { width: min(380px, 88vw); padding: 24px; border-radius: 8px; background: #fff; box-shadow: 0 12px 32px rgba(22, 44, 54, .24); }
.inventory-confirm h3 { margin: 0; color: #304650; font-size: 16px; }
.inventory-confirm p { margin: 12px 0 22px; color: #738790; font-size: 12px; line-height: 1.7; }
.inventory-confirm footer { display: flex; justify-content: flex-end; gap: 10px; }
.inventory-confirm footer .danger { border-color: #ed604e; color: #fff; background: #ed604e; }
.category-filter-bar { min-width: 820px; }
.category-filter-bar input[type="date"] { width: 138px; }
.category-data-grid table { min-width: 900px; }
.category-name { display: inline-flex; min-height: 28px; align-items: center; color: #3d5661; }
.category-name .category-expand, .category-name i { display: inline-grid; width: 19px; height: 19px; margin-right: 5px; place-items: center; border: 0; color: #6b7f89; background: transparent; font-size: 17px; font-style: normal; }
.category-name .category-expand { cursor: pointer; }
.category-row-closed { color: #98a6ad; background: #fafcfd; }
.category-row-closed .category-name { color: #98a6ad; }
.category-switch { display: inline-flex; width: 55px; height: 21px; align-items: center; justify-content: space-between; padding: 0 4px 0 8px; border: 0; border-radius: 13px; color: #fff; background: #178cf2; cursor: pointer; font-size: 10px; transition: background .15s ease; }
.category-switch i { display: block; width: 15px; height: 15px; border-radius: 50%; background: #fff; }
.category-switch.off { flex-direction: row-reverse; padding: 0 8px 0 4px; color: #87959d; background: #d8e0e5; }
.category-row-actions { display: flex; gap: 12px; align-items: center; }
.category-row-actions .danger { color: #ed604e; }
.category-editor { width: min(560px, 90vw); overflow: hidden; border-radius: 7px; background: #fff; box-shadow: 0 12px 32px rgba(22, 44, 54, .24); }
.category-editor > header { display: flex; min-height: 44px; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid #e7edf1; }
.category-editor h3 { margin: 0; color: #304650; font-size: 14px; }
.category-editor > header button { border: 0; color: #96a6ae; background: transparent; cursor: pointer; font-size: 18px; }
.category-editor form > div { display: grid; gap: 16px; padding: 18px 28px 24px; }
.category-editor label { display: grid; grid-template-columns: 70px minmax(0, 1fr); align-items: center; gap: 10px; color: #435b65; font-size: 12px; }
.category-editor label > span::before, .category-editor fieldset legend::before { margin-right: 4px; color: #f05252; content: "*"; }
.category-editor label > span.optional::before { content: ""; }
.category-editor input:not([type="radio"]), .category-editor select { width: 100%; min-height: 32px; padding: 6px 10px; border: 1px solid #d7e2e8; border-radius: 3px; color: #3e5661; background: #fff; box-sizing: border-box; font: inherit; }
.category-editor fieldset { display: flex; gap: 16px; align-items: center; margin: 0; padding: 0; border: 0; color: #435b65; font-size: 12px; }
.category-editor fieldset legend { float: left; width: 70px; padding: 0; }
.category-editor fieldset label { display: inline-flex; grid-template-columns: none; gap: 5px; cursor: pointer; }
.category-editor fieldset label::before { content: ""; }
.category-editor fieldset input { margin: 0; accent-color: #168cf2; }
.category-editor footer { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 14px 18px; }
.category-editor footer button { min-width: 54px; height: 30px; border: 1px solid #d7e2e8; border-radius: 3px; color: #637985; background: #fff; cursor: pointer; font-size: 12px; }
.category-editor footer .primary, .inventory-confirm footer .primary { border-color: #168cf2; color: #fff; background: #168cf2; }
.crm-center-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); min-height: 780px; overflow: hidden; border: 1px solid #e1e9ed; border-radius: 12px; background: #fff; }
.crm-side-nav { padding: 12px 8px 24px; overflow-y: auto; border-right: 1px solid #e3eaee; background: #fbfdff; }
.crm-side-nav section { margin-bottom: 5px; }
.crm-side-nav h3 { display: grid; grid-template-columns: 23px 1fr auto; align-items: center; min-height: 35px; margin: 0; padding: 0 9px; color: #283d43; font-size: 13px; }
.crm-side-nav h3 i { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 5px; color: #1585ea; background: #e9f5ff; font-size: 10px; font-style: normal; }
.crm-side-nav h3 span { color: #8ca0a8; font-size: 11px; }
.crm-side-nav button { display: block; width: 100%; min-height: 34px; padding: 0 10px 0 32px; border: 0; border-radius: 7px; color: #53646a; background: transparent; cursor: pointer; text-align: left; font-size: 12px; }
.crm-side-nav button:hover, .crm-side-nav button.active { color: #1685ed; background: #eaf5ff; }
.crm-content-panel { min-width: 0; padding: 16px 17px 30px; background: #fff; }
.crm-page-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding-bottom: 12px; border-bottom: 1px solid #e6eef1; }
.crm-page-header p, .crm-page-header h2 { margin: 0; }.crm-page-header p { margin-bottom: 3px; color: #8a9aa0; font-size: 10px; }.crm-page-header h2 { color: #21373e; font-size: 17px; }
.crm-page-header > button, .crm-page-actions .primary, .crm-setting-tabs .primary, .crm-rule-panel .primary { padding: 8px 14px; border: 0; border-radius: 5px; color: #fff; background: #168cf2; cursor: pointer; }
.crm-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 56px; color: #788b91; font-size: 11px; }
.crm-filter-bar input, .crm-filter-bar select { width: 158px; height: 31px; padding: 0 10px; border: 1px solid #d9e4e8; border-radius: 5px; color: #697d83; background: #fff; font-size: 11px; }
.crm-filter-bar button, .crm-page-actions button { height: 31px; padding: 0 12px; border: 1px solid #d3e0e4; border-radius: 5px; color: #557078; background: #fff; cursor: pointer; }.crm-filter-bar button.primary { margin-left: auto; color: #fff; border-color: #168cf2; background: #168cf2; }
.crm-metric-row { display: grid; grid-template-columns: repeat(6, minmax(120px, 1fr)); gap: 8px; margin-bottom: 11px; }.crm-metric-row article { position: relative; min-height: 80px; padding: 13px 14px; border: 1px solid #e2eaed; border-radius: 7px; background: #fff; }.crm-metric-row small, .crm-metric-row strong { display: block; }.crm-metric-row small { color: #7f9197; font-size: 10px; }.crm-metric-row strong { margin-top: 10px; color: #223a42; font-size: 19px; }.crm-metric-row em { position: absolute; top: 13px; right: 10px; color: #18a66f; font-size: 10px; font-style: normal; }
.crm-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.crm-chart-card { min-height: 245px; padding: 14px; border: 1px solid #e1e9ed; border-radius: 8px; }.crm-chart-card h3 { margin: 0 0 16px; color: #263f46; font-size: 13px; }.crm-chart-card > p { color: #768a91; text-align: center; font-size: 11px; }.crm-chart-card.wide { grid-column: span 1; }
.crm-line-chart { display: flex; height: 165px; align-items: end; gap: 5px; padding: 14px 8px 0; border-left: 1px solid #dce7ea; border-bottom: 1px solid #dce7ea; background: repeating-linear-gradient(to top, transparent 0 32px, #edf2f4 33px); }.crm-line-chart i { flex: 1; min-height: 4px; border-radius: 6px 6px 0 0; background: linear-gradient(#21c48a, rgba(33,196,138,.2)); }.crm-chart-axis { display: flex; justify-content: space-between; padding-top: 6px; color: #8c9ca1; font-size: 8px; }
.crm-bar-chart, .crm-target-bars { display: flex; height: 180px; align-items: end; justify-content: space-around; gap: 12px; padding: 20px 12px 0; border-bottom: 1px solid #dce7ea; background: repeating-linear-gradient(to top, transparent 0 35px, #edf2f4 36px); }.crm-bar-chart span, .crm-target-bars span { display: grid; flex: 1; height: 100%; align-items: end; justify-items: center; }.crm-bar-chart i, .crm-target-bars i { width: 32px; min-height: 4px; border-radius: 4px 4px 0 0; background: #168cf2; }.crm-bar-chart b, .crm-target-bars b { margin-top: 6px; color: #7d8e94; font-size: 9px; font-weight: 500; }
.crm-donut { position: relative; display: grid; width: 150px; height: 150px; margin: 22px auto 0; place-items: center; border-radius: 50%; background: conic-gradient(#168cf2 0 53%, #18b979 53% 81%, #ff9b14 81%); }.crm-donut.orange { background: conic-gradient(#ff6348 0 99%, #19aaf5 99%); }.crm-donut::before { width: 100px; height: 100px; border-radius: 50%; background: #fff; content: ""; }.crm-donut div { position: absolute; display: grid; justify-items: center; }.crm-donut b { color: #294249; font-size: 16px; }.crm-donut small { color: #829399; font-size: 9px; }
.crm-setting-tabs { display: flex; align-items: center; gap: 22px; min-height: 44px; overflow-x: auto; border-bottom: 1px solid #e4ecef; }.crm-setting-tabs button { position: relative; flex: 0 0 auto; padding: 12px 0; border: 0; color: #52676e; background: transparent; cursor: pointer; }.crm-setting-tabs button.active { color: #1685ed; }.crm-setting-tabs button.active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: #168cf2; content: ""; }.crm-setting-tabs button.primary { padding: 7px 16px; color: #fff; }.crm-setting-tabs .push-right { margin-left: auto; }
.crm-target-chart { padding: 10px 18px 20px; }.crm-target-bars { height: 205px; }.crm-target-bars i { width: 20px; }
.crm-scroll-table, .crm-data-grid { width: 100%; overflow-x: auto; border: 1px solid #e6edef; }.crm-scroll-table table, .crm-data-grid table { width: 100%; min-width: 880px; border-collapse: collapse; }.crm-scroll-table th, .crm-scroll-table td, .crm-data-grid th, .crm-data-grid td { padding: 11px 10px; border-bottom: 1px solid #e8eef0; color: #445960; white-space: nowrap; text-align: left; font-size: 10px; }.crm-scroll-table th, .crm-data-grid th { color: #263d44; background: #f4f8fb; font-weight: 700; }.crm-data-grid tbody tr:hover { background: #f8fbfd; }.crm-link { color: #1685ed; cursor: pointer; }.crm-tag { display: inline-block; width: fit-content; padding: 3px 7px; border-radius: 4px; color: #1685ed; background: #eaf4ff; font-size: 10px; }.crm-chip { display: inline-block; margin-right: 6px; padding: 4px 8px; border: 1px solid #d8e3e7; border-radius: 4px; color: #465b61; }
.crm-invoice-list { display: grid; gap: 12px; }.crm-invoice-list article { border: 1px solid #e0e9ed; border-radius: 7px; }.crm-invoice-list header { display: flex; gap: 10px; align-items: center; padding: 11px 14px; background: #f5f9fb; }.crm-invoice-list header b { color: #263c43; font-size: 12px; }.crm-invoice-list header em { padding: 3px 6px; border-radius: 4px; color: #e45c4d; background: #fff0ed; font-size: 10px; font-style: normal; }.crm-invoice-list header a { margin-left: auto; color: #1685ed; }.crm-invoice-list article > div { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding: 14px 38px; color: #60737a; font-size: 11px; line-height: 2.1; }
.crm-split-page { display: grid; grid-template-columns: 200px 1fr; min-height: 600px; margin: -1px 0 0; border: 1px solid #e2e9ed; }.crm-split-page > aside { padding: 14px 10px; border-right: 1px solid #e2e9ed; }.crm-split-page > aside h3 { display: flex; justify-content: space-between; margin: 0 7px 12px; font-size: 13px; }.crm-split-page > aside h3 button { border: 0; color: #1685ed; background: transparent; }.crm-split-page > aside span { display: block; padding: 10px 12px; }.crm-split-page > aside span.active { color: #1685ed; background: #eaf5ff; }.crm-split-page > div { min-width: 0; padding: 0 10px; }
.crm-page-actions { display: flex; justify-content: flex-end; gap: 8px; margin: 10px 0; }.crm-page-actions .primary { height: 31px; }.crm-form-builder { margin-top: 16px; border: 1px solid #e4ecef; }.crm-form-builder h3 { margin: 0; padding: 11px 13px; border-bottom: 1px solid #e4ecef; font-size: 13px; }.crm-form-head, .crm-form-row { display: grid; grid-template-columns: 1fr 1fr .65fr 1.5fr .65fr .7fr; gap: 10px; align-items: center; min-width: 760px; padding: 9px 12px; border-bottom: 1px solid #e8eef0; }.crm-form-head { color: #30454c; background: #f4f8fb; font-size: 10px; font-weight: 700; }.crm-form-row input, .crm-form-row select { width: 100%; height: 29px; padding: 0 8px; border: 1px solid #dce5e8; border-radius: 4px; color: #64787f; background: #fff; }.crm-form-row a { color: #1685ed; font-size: 10px; }.crm-switch { display: inline-grid; width: 38px; height: 20px; place-items: center; border-radius: 99px; color: #fff; background: #168cf2; font-size: 8px; }.crm-switch.off { background: #cbd6da; }.crm-add-field { margin: 10px 12px; border: 0; color: #1685ed; background: transparent; cursor: pointer; }
.crm-rule-panel { display: grid; min-height: 540px; align-content: start; justify-items: center; gap: 22px; padding-top: 38px; }.crm-rule-panel h3 { margin: 0; color: #30464d; font-size: 14px; }.crm-rule-panel label { display: flex; align-items: center; gap: 12px; color: #40565d; }.crm-rule-panel p { color: #84959a; font-size: 11px; }.crm-rule-panel .primary { margin-top: auto; min-width: 70px; }
.crm-empty-state { display: grid; min-height: 520px; place-content: center; justify-items: center; color: #89999e; }.crm-empty-state span { display: grid; width: 60px; height: 60px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #8dcaff, #5ca8ef); font-size: 28px; }.crm-empty-state h3 { margin: 14px 0 4px; color: #62757b; font-size: 14px; }.crm-empty-state p { margin: 0; font-size: 11px; }
.crm-resource-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 11px 0 14px; padding: 12px; border: 1px solid #e3ebef; border-radius: 8px; background: linear-gradient(100deg, #f9fcff, #fff); }.crm-resource-count { margin-right: 4px; color: #78909b; font-size: 11px; white-space: nowrap; }.crm-resource-count b { color: #1685ed; font-size: 14px; }.crm-resource-filter-bar input, .crm-resource-filter-bar select { width: 152px; height: 32px; padding: 0 10px; border: 1px solid #d7e3e8; border-radius: 4px; outline: none; color: #516b77; background: #fff; font-size: 11px; }.crm-resource-filter-bar input:focus, .crm-resource-filter-bar select:focus { border-color: #168cf2; box-shadow: 0 0 0 2px rgba(22,140,242,.09); }.crm-resource-filter-bar > input { width: 205px; }.crm-resource-date { display: inline-flex; height: 32px; align-items: center; gap: 6px; padding: 0 8px; border: 1px solid #d7e3e8; border-radius: 4px; background: #fff; }.crm-resource-date span { color: #81929a; font-size: 10px; white-space: nowrap; }.crm-resource-date input { width: 112px; height: 28px; padding: 0; border: 0; color: #637984; }.crm-resource-date b { color: #a1afb5; font-size: 10px; font-weight: 400; }.crm-filter-reset { height: 32px; padding: 0 11px; border: 1px solid #d7e3e8; border-radius: 4px; color: #66808a; background: #fff; cursor: pointer; font-size: 11px; }.crm-filter-reset:hover { border-color: #168cf2; color: #168cf2; }.crm-resource-grid { border-radius: 8px; }.crm-resource-grid table { min-width: 1250px; }.crm-resource-grid th, .crm-resource-grid td { padding: 12px 10px; }.crm-resource-grid th:first-child, .crm-resource-grid td:first-child { width: 24px; }.crm-resource-grid input[type="checkbox"] { accent-color: #168cf2; }.crm-resource-name { max-width: 170px; overflow: hidden; border: 0; background: transparent; text-overflow: ellipsis; white-space: nowrap; }.crm-status { display: inline-flex; min-width: 48px; min-height: 22px; align-items: center; justify-content: center; padding: 0 6px; border-radius: 4px; color: #597183; background: #eef2f5; font-size: 10px; }.crm-status.未成交, .crm-status.待跟进 { color: #3b74d8; background: #eaf2ff; }.crm-status.已成交, .crm-status.已转客户 { color: #159c65; background: #e8f8ef; }.crm-status.已流失, .crm-status.已关闭 { color: #e46b4e; background: #fff0eb; }.crm-status.跟进中 { color: #4677e8; background: #edf2ff; }.crm-source-tag { display: inline-block; padding: 3px 7px; border-radius: 4px; color: #537a9f; background: #eef5ff; font-size: 10px; }.crm-note-cell { max-width: 164px; overflow: hidden; text-overflow: ellipsis; }.crm-resource-actions { display: flex; align-items: center; gap: 9px; }.crm-resource-actions > button, .crm-more-wrap > button { padding: 0; border: 0; color: #1685ed; background: transparent; cursor: pointer; font-size: 11px; white-space: nowrap; }.crm-more-wrap { position: relative; }.crm-more-menu { position: absolute; z-index: 4; top: 21px; right: 0; display: grid; min-width: 88px; padding: 5px 0; border: 1px solid #e1e9ed; border-radius: 5px; background: #fff; box-shadow: 0 8px 20px rgba(45,67,77,.16); }.crm-more-menu button { min-height: 29px; padding: 0 12px; border: 0; color: #4f6873; background: #fff; cursor: pointer; text-align: left; font-size: 11px; white-space: nowrap; }.crm-more-menu button:hover { color: #1685ed; background: #f2f8ff; }.crm-resource-empty { height: 180px; color: #8b9ba3 !important; text-align: center !important; }.crm-drawer-mask { position: fixed; z-index: 1320; inset: 0; display: flex; justify-content: flex-end; background: rgba(16,31,41,.48); }.crm-resource-drawer { display: flex; width: min(560px, 96vw); height: 100%; flex-direction: column; background: #fff; box-shadow: -12px 0 32px rgba(19,42,54,.23); }.crm-resource-drawer > header { display: flex; min-height: 64px; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid #e6edf0; }.crm-resource-drawer header small { display: block; margin-bottom: 3px; color: #72a9dc; letter-spacing: .08em; font-size: 9px; }.crm-resource-drawer header h3 { margin: 0; color: #263f4c; font-size: 16px; }.crm-resource-drawer > header > button { border: 0; color: #8c9da6; background: transparent; cursor: pointer; font-size: 21px; }.crm-resource-drawer form { display: flex; min-height: 0; flex: 1; flex-direction: column; }.crm-resource-drawer main { flex: 1; padding: 21px 27px 30px; overflow-y: auto; }.crm-resource-drawer h4 { margin: 0 0 17px; padding-left: 9px; border-left: 3px solid #168cf2; color: #2d4652; font-size: 13px; }.crm-resource-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 22px; margin-bottom: 27px; }.crm-resource-form-grid > label, .crm-resource-textarea { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: 10px; color: #49616c; font-size: 12px; }.crm-resource-form-grid > label > span, .crm-resource-textarea > span { white-space: nowrap; }.crm-resource-form-grid > label.required > span::before { margin-right: 4px; color: #ed5d52; content: "*"; }.crm-resource-form-grid input, .crm-resource-form-grid select, .crm-resource-textarea textarea { width: 100%; min-height: 33px; padding: 6px 10px; border: 1px solid #d6e2e7; border-radius: 4px; outline: none; color: #405863; background: #fff; box-sizing: border-box; font: inherit; font-size: 12px; }.crm-resource-form-grid input:focus, .crm-resource-form-grid select:focus, .crm-resource-textarea textarea:focus { border-color: #168cf2; box-shadow: 0 0 0 2px rgba(22,140,242,.09); }.crm-resource-form-grid fieldset { display: flex; grid-column: 1 / -1; align-items: center; gap: 14px; margin: 0; padding: 0; border: 0; color: #526a74; font-size: 12px; }.crm-resource-form-grid legend { width: 72px; padding: 0; }.crm-resource-form-grid fieldset label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; white-space: nowrap; }.crm-resource-form-grid fieldset input { width: auto; min-height: auto; margin: 0; accent-color: #168cf2; }.crm-resource-upload { grid-column: 1 / -1; align-items: start !important; }.crm-resource-upload > div { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }.crm-upload-button { display: inline-flex; align-items: center; min-height: 31px; padding: 0 10px; border: 1px solid #b9d3e8; border-radius: 4px; color: #1685ed; background: #fff; cursor: pointer; }.crm-upload-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }.crm-upload-button b { font-size: 11px; font-weight: 400; }.crm-resource-upload small { max-width: 165px; overflow: hidden; color: #84979f; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }.crm-resource-upload img { width: 34px; height: 34px; border: 1px solid #e2eaed; border-radius: 4px; object-fit: cover; }.crm-resource-textarea { position: relative; align-items: start; max-width: 100%; }.crm-resource-textarea textarea { min-height: 120px; resize: vertical; }.crm-resource-textarea small { position: absolute; right: 9px; bottom: 7px; color: #8d9fa7; font-size: 10px; }.crm-resource-drawer footer { display: flex; justify-content: flex-end; gap: 10px; padding: 13px 22px; border-top: 1px solid #e6edf0; }.crm-resource-drawer footer button { min-width: 58px; height: 32px; padding: 0 12px; border: 1px solid #d5e0e5; border-radius: 4px; color: #5d7480; background: #fff; cursor: pointer; font-size: 12px; }.crm-resource-drawer footer .secondary { color: #1685ed; border-color: #a9cce9; }.crm-resource-drawer footer .primary { border-color: #168cf2; color: #fff; background: #168cf2; }.crm-lead-detail-drawer main { padding-top: 25px; }.crm-detail-list { display: grid; grid-template-columns: 1fr 1fr; gap: 19px 34px; margin: 0 0 28px; }.crm-detail-list div { display: grid; grid-template-columns: 70px minmax(0,1fr); gap: 8px; font-size: 12px; }.crm-detail-list dt { color: #82939b; }.crm-detail-list dd { margin: 0; color: #405864; word-break: break-word; }.crm-detail-note { min-height: 86px; margin: 0; padding: 12px; border-radius: 5px; color: #526a74; background: #f6fafc; font-size: 12px; line-height: 1.7; white-space: pre-wrap; }
@media (max-width: 1000px) { .business-hero { display: grid; }.business-metric-grid, .business-two-column, .business-project-intro { grid-template-columns: 1fr 1fr; }.business-table { overflow-x: auto; }.business-todo-row { grid-template-columns: 78px 1fr; }.business-todo-row time, .business-todo-row em { justify-self: start; }.todo-center-layout { grid-template-columns: 168px minmax(0, 1fr); }.crm-center-layout { grid-template-columns: 165px minmax(0, 1fr); }.crm-metric-row { grid-template-columns: repeat(3, 1fr); }.crm-chart-grid { grid-template-columns: 1fr; }.project-center-layout { grid-template-columns: 150px minmax(0, 1fr); }.inventory-center-layout { grid-template-columns: 158px minmax(0, 1fr); } }
@media (max-width: 1000px) { .office-dashboard-head { align-items: flex-start; flex-direction: column; }.office-head-stats { width: 100%; justify-content: space-around; }.office-performance-grid, .office-quick-grid { grid-template-columns: repeat(2, 1fr); }.office-calendar-layout, .office-directory-layout { grid-template-columns: 1fr; }.office-mini-calendar, .office-org-tree { border-right: 0; border-bottom: 1px solid #e3ece9; }.office-attendance-overview { grid-template-columns: 1fr; }.office-attendance-stats { grid-template-columns: repeat(2, 1fr); }.office-page-panel { overflow-x: auto; } }
@media (max-width: 640px) { .business-metric-grid, .business-two-column, .business-project-intro { grid-template-columns: 1fr; }.business-hero { padding: 20px; }.business-hero h2 { font-size: 24px; }.office-head-stats { gap: 8px; }.office-page-tabs, .office-status-tabs, .office-filter-bar { flex-wrap: wrap; }.office-notice-list li { grid-template-columns: 1fr; }.todo-center-layout { grid-template-columns: 1fr; }.todo-category-panel { display: flex; gap: 5px; overflow-x: auto; border-right: 0; border-bottom: 1px solid #e5eceb; }.todo-category-panel h3 { display: none; }.todo-category-panel button { flex: 0 0 auto; width: auto; grid-template-columns: auto auto auto; }.crm-center-layout { grid-template-columns: 1fr; }.crm-side-nav { display: flex; gap: 6px; overflow-x: auto; border-right: 0; border-bottom: 1px solid #e3eaee; }.crm-side-nav section { display: flex; flex: 0 0 auto; }.crm-side-nav h3 { display: none; }.crm-side-nav button { width: auto; padding: 0 11px; white-space: nowrap; }.crm-content-panel { padding: 12px 10px 24px; }.crm-metric-row { grid-template-columns: repeat(2, 1fr); }.crm-invoice-list article > div { grid-template-columns: 1fr; gap: 0; padding: 14px; }.crm-split-page { grid-template-columns: 1fr; }.crm-split-page > aside { border-right: 0; border-bottom: 1px solid #e2e9ed; }.project-center-layout { grid-template-columns: 1fr; }.project-side-nav { display: flex; gap: 6px; overflow-x: auto; border-right: 0; border-bottom: 1px solid #e1e8ef; }.project-side-nav button { flex: 0 0 auto; width: auto; white-space: nowrap; }.project-content-panel { padding: 12px 10px 22px; }.inventory-center-layout { grid-template-columns: 1fr; }.inventory-side-nav { display: flex; gap: 5px; overflow-x: auto; border-right: 0; border-bottom: 1px solid #e2e9ee; }.inventory-side-nav section { display: flex; flex: 0 0 auto; }.inventory-side-nav h3 { display: none; }.inventory-side-nav button, .inventory-side-nav section button { flex: 0 0 auto; width: auto; padding: 0 11px; white-space: nowrap; }.inventory-content-panel { padding: 12px 10px 22px; } }

/* Business system / Office schedule interactive workspace */
.office-schedule-page { position: relative; overflow: hidden; }
.office-schedule-page > header { padding: 14px 18px; }
.office-schedule-page .office-calendar-layout { min-height: 680px; }
.office-calendar-days button { position: relative; min-height: 38px; padding: 8px 3px; border: 1px solid #edf2f1; color: #2f4540; background: #fff; cursor: pointer; }
.office-calendar-days button:hover { background: #f0f8f6; }
.office-calendar-days button.muted { color: #b4bfbc; }
.office-calendar-days button.weekend { color: #ef4444; }
.office-calendar-days button.active { color: #fff; background: #1d91f2; }
.office-calendar-days button.event::after { position: absolute; bottom: 3px; left: 50%; width: 4px; height: 4px; border-radius: 50%; background: currentColor; content: ""; }
.office-mini-calendar h4 { display: flex; align-items: center; justify-content: space-between; }
.office-mini-calendar h4 small { color: #95a4a0; font-size: 10px; font-weight: 400; }
.office-schedule-types li { margin: 0; }
.office-schedule-types button { display: grid; width: 100%; grid-template-columns: 16px 1fr 20px; align-items: center; padding: 8px 9px; border: 1px solid transparent; border-radius: 7px; color: #536963; background: transparent; cursor: pointer; text-align: left; }
.office-schedule-types button:hover { background: #f3f8f7; }
.office-schedule-types button.active { border-color: #d8e7e3; background: #f0f8f6; }
.office-schedule-types button i { width: 10px; height: 10px; margin: 0; border-radius: 50%; }
.office-schedule-types button b { display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid #cbdad6; border-radius: 50%; color: #fff; font-size: 11px; }
.office-schedule-types button.active b { border-color: #168cf2; background: #168cf2; }
.office-day-toolbar { gap: 8px; }
.office-day-toolbar > strong { white-space: nowrap; }
.office-day-toolbar > div { margin-left: auto; }
.office-clickable-time-grid { min-height: 570px; }
.office-time-grid > .office-time-row { height: 42px; cursor: pointer; }
.office-time-row:hover > span, .office-week-cell:hover { background: #f6faf9; }
.office-time-row > span { position: relative; display: flex; gap: 6px; align-items: center; padding: 3px 6px; }
.office-schedule-event { display: flex; min-width: 180px; height: 34px; align-items: center; gap: 7px; padding: 0 10px; overflow: hidden; border: 1px solid #1d91f2; border-left-width: 4px; border-radius: 5px; color: #214d68; cursor: pointer; text-align: left; white-space: nowrap; }
.office-schedule-event b { font-size: 10px; }
.office-schedule-event small { margin-left: auto; color: #6f858c; font-size: 9px; }
.office-schedule-event.compact { display: block; width: calc(100% - 4px); min-width: 0; height: 24px; margin: 2px; padding: 2px 5px; overflow: hidden; border-left-width: 3px; text-overflow: ellipsis; font-size: 10px; }
.office-week-grid { display: grid; min-width: 820px; grid-template-columns: 56px repeat(7, minmax(95px, 1fr)); max-height: 650px; overflow: auto; }
.office-week-grid > time { min-height: 42px; padding: 10px 7px; border-right: 1px solid #dfe8e6; border-bottom: 1px solid #dfe8e6; color: #899894; font-size: 10px; }
.office-week-corner, .office-week-heading { position: sticky; top: 0; z-index: 2; min-height: 61px; border-right: 1px solid #dfe8e6; border-bottom: 1px solid #dfe8e6; background: #fff; }
.office-week-heading { padding: 9px; cursor: pointer; }
.office-week-heading span, .office-week-heading b { display: block; }
.office-week-heading span { color: #7e8f8b; font-size: 10px; }
.office-week-heading b { margin-top: 4px; font-size: 17px; }
.office-week-heading.active { color: #168cf2; background: #eef7ff; }
.office-week-cell { min-height: 42px; border-right: 1px solid #dfe8e6; border-bottom: 1px solid #dfe8e6; cursor: pointer; }
.office-month-grid { display: grid; min-width: 760px; grid-template-columns: repeat(7, minmax(100px, 1fr)); }
.office-month-weekday { padding: 9px; border-right: 1px solid #dfe8e6; border-bottom: 1px solid #dfe8e6; color: #6e817c; background: #f8fbfa; text-align: center; font-size: 11px; }
.office-month-cell { min-height: 108px; padding: 7px; border-right: 1px solid #dfe8e6; border-bottom: 1px solid #dfe8e6; cursor: pointer; }
.office-month-cell:hover { background: #f8fbfa; }
.office-month-cell.muted { color: #b6c1be; background: #fbfcfc; }
.office-month-cell.active { box-shadow: inset 0 0 0 2px #168cf2; }
.office-month-cell > b { display: block; margin-bottom: 5px; font-size: 11px; }
.office-schedule-overlay { position: fixed; z-index: 1200; inset: 0; display: flex; justify-content: flex-end; background: rgba(11, 24, 31, .56); }
.office-schedule-drawer { width: min(540px, 94vw); height: 100%; overflow-y: auto; color: #263d43; background: #fff; box-shadow: -10px 0 30px rgba(15, 35, 45, .18); }
.office-schedule-drawer > header, .office-schedule-detail > header { display: flex; align-items: center; justify-content: space-between; padding: 17px 20px; border-bottom: 1px solid #e2e9e7; }
.office-schedule-drawer > header h3, .office-schedule-detail > header h3 { margin: 0; }
.office-schedule-drawer > header button, .office-schedule-detail > header button { border: 0; color: inherit; background: transparent; cursor: pointer; font-size: 24px; }
.office-schedule-drawer form { display: grid; gap: 16px; padding: 24px 20px; }
.office-schedule-drawer label { display: grid; gap: 7px; }
.office-schedule-drawer label > span { color: #52666c; font-size: 12px; }
.office-schedule-drawer input, .office-schedule-drawer select, .office-schedule-drawer textarea { width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid #d8e3e0; border-radius: 5px; color: #263d43; background: #fff; box-sizing: border-box; font: inherit; }
.office-schedule-drawer textarea { resize: vertical; }
.office-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.office-schedule-drawer footer, .office-schedule-detail footer { display: flex; justify-content: flex-end; gap: 10px; padding-top: 12px; }
.office-schedule-drawer footer button, .office-schedule-detail footer button { min-width: 84px; padding: 9px 15px; border: 1px solid #d5e0dd; border-radius: 5px; color: #536963; background: #fff; cursor: pointer; }
.office-schedule-drawer footer .office-primary-btn, .office-schedule-detail footer .office-primary-btn { color: #fff; border-color: #168cf2; background: #168cf2; }
.office-detail-overlay { align-items: center; justify-content: center; }
.office-schedule-detail { width: min(510px, 92vw); overflow: hidden; border-radius: 12px; color: #354c52; background: #fff; box-shadow: 0 20px 50px rgba(13, 28, 36, .28); }
.office-schedule-detail > header { color: #fff; border: 0; }
.office-schedule-detail > header p { margin: 6px 0 0; opacity: .9; }
.office-schedule-detail dl { display: grid; gap: 14px; margin: 0; padding: 22px; }
.office-schedule-detail dl > div { display: grid; grid-template-columns: 86px 1fr; gap: 10px; }
.office-schedule-detail dt { color: #82928f; }
.office-schedule-detail dd { margin: 0; }
.office-schedule-detail footer { padding: 0 22px 20px; }
@media (max-width: 1000px) { .office-schedule-page .office-calendar-layout { grid-template-columns: 1fr; }.office-schedule-page .office-mini-calendar { border-right: 0; border-bottom: 1px solid #e3ece9; }.office-day-calendar { min-width: 760px; } }
@media (max-width: 640px) { .office-form-row { grid-template-columns: 1fr; }.office-schedule-drawer { width: 100%; }.office-schedule-detail dl > div { grid-template-columns: 1fr; gap: 3px; } }

/* Business system / Office application workflow */
.office-application-shell { min-height: 560px; }
.application-list-panel { overflow: visible; }
.application-shell { position: relative; }
.application-launch-wrap { position: relative; z-index: 12; margin-left: auto; }
.application-type-menu { position: absolute; top: calc(100% + 8px); right: 0; width: 230px; padding: 10px; border: 1px solid #dfe8e5; border-radius: 8px; background: #fff; box-shadow: 0 14px 36px rgba(20, 50, 60, .16); }
.application-menu-search { width: 100%; height: 34px; margin-bottom: 7px; padding: 0 10px; border: 1px solid #dce6e3; border-radius: 5px; box-sizing: border-box; }
.application-type-menu button { display: flex; width: 100%; align-items: center; gap: 9px; padding: 8px 9px; border: 0; border-radius: 5px; color: #3d5259; background: transparent; cursor: pointer; text-align: left; }
.application-type-menu button:hover { color: #168cf2; background: #edf7ff; }
.application-type-menu button i { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 5px; color: #fff; background: #168cf2; font-style: normal; }
.application-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 13px 0; border-bottom: 1px solid #e5ecea; }
.application-filter-bar select, .application-filter-bar input { min-width: 170px; height: 35px; padding: 0 10px; border: 1px solid #d8e3e0; border-radius: 5px; color: #52666c; background: #fff; }
.application-date-range { display: flex; align-items: center; gap: 7px; }
.application-date-range input { min-width: 148px; }
.application-table { width: 100%; border: 1px solid #e4ece9; border-radius: 7px; overflow: hidden; }
.application-table .office-data-head, .application-table .office-data-row { display: grid; grid-template-columns: minmax(280px, 1.65fr) minmax(120px, .55fr) minmax(145px, .7fr) minmax(160px, .75fr); align-items: center; gap: 14px; padding: 11px 13px; }
.application-table .office-data-head { color: #2c4249; background: #f3f8fa; font-size: 12px; font-weight: 700; }
.application-table .office-data-row { min-height: 53px; border-top: 1px solid #e7eeec; color: #53666c; }
.application-table .office-data-row:hover { background: #fafcfc; }
.application-table article strong, .application-table article small { display: block; }
.application-table article strong { color: #263d43; font-size: 12px; }
.application-table article small { margin-top: 5px; color: #82928f; font-size: 10px; }
.application-row-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.application-row-actions button { padding: 0; border: 0; color: #1685ed; background: transparent; cursor: pointer; }
.office-status.审核中 { color: #e78a16; border-color: #f2c37c; background: #fff8e9; }
.office-status.已通过 { color: #159361; border-color: #9bd8bd; background: #effaf5; }
.office-status.已撤销 { color: #788b91; border-color: #ccd7da; background: #f5f7f8; }
.application-empty { display: grid; min-height: 240px; place-items: center; color: #91a09c; }
.application-drawer-mask { position: fixed; z-index: 1300; inset: 0; display: flex; justify-content: flex-end; background: rgba(11, 24, 31, .58); }
.application-drawer { display: flex; width: min(590px, 96vw); height: 100%; flex-direction: column; color: #2f454b; background: #fff; box-shadow: -12px 0 35px rgba(15, 35, 45, .2); }
.application-drawer-header { display: flex; min-height: 58px; align-items: center; gap: 12px; padding: 0 20px; border-bottom: 1px solid #e3ebe9; }
.application-drawer-header h3, .application-drawer-header p { margin: 0; }
.application-drawer-header p { margin-top: 4px; color: #e78a16; font-size: 11px; }
.application-drawer-header > div:first-child { display: flex; align-items: center; gap: 9px; }
.application-drawer-header > button:last-child, .application-drawer-header .detail-header-actions { margin-left: auto; }
.application-drawer-header .detail-header-actions { display: flex; align-items: center; gap: 8px; }
.application-drawer-header button { min-width: 54px; height: 31px; padding: 0 11px; border: 1px solid #d5e0dd; border-radius: 5px; color: #536963; background: #fff; cursor: pointer; }
.application-drawer-header > button:last-child { min-width: auto; border: 0; background: transparent; font-size: 22px; }
.application-drawer-header button.primary { color: #fff; border-color: #168cf2; background: #168cf2; }
.application-drawer-body { flex: 1; padding: 20px; overflow-y: auto; }
.application-drawer-body h4 { margin: 0 0 15px; padding-left: 9px; border-left: 3px solid #168cf2; color: #263d43; }
.application-dynamic-form { display: grid; gap: 13px; }
.application-form-row { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 10px; }
.application-form-row.full-field { align-items: start; }
.application-form-row > span { color: #4f6268; font-size: 12px; }
.application-form-row > span em { margin-right: 3px; color: #ea5a49; font-style: normal; }
.application-form-row input, .application-form-row select, .application-form-row textarea { width: 100%; min-height: 36px; padding: 8px 10px; border: 1px solid #d8e3e0; border-radius: 5px; color: #334a51; background: #fff; box-sizing: border-box; font: inherit; }
.application-form-row textarea { min-height: 78px; resize: vertical; }
.application-radio-group { display: flex; flex-wrap: wrap; gap: 18px; }
.application-radio-group label { display: flex; align-items: center; gap: 6px; }
.application-radio-group input { width: auto; min-height: auto; }
.application-upload { display: flex; align-items: center; gap: 9px; }
.application-upload input { display: none; }
.application-upload span { padding: 7px 12px; border: 1px solid #cfdcda; border-radius: 5px; color: #1685ed; cursor: pointer; }
.application-upload small { color: #7d8f94; }
.application-flow { position: relative; display: grid; gap: 22px; margin: 22px 0 0 8px; padding-left: 28px; }
.application-flow::before { position: absolute; top: 12px; bottom: 12px; left: 10px; width: 1px; background: #d7e1de; content: ""; }
.application-flow-step { position: relative; }
.application-flow-step > i { position: absolute; top: 1px; left: -27px; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: #fff; background: #9eaaa7; font-style: normal; font-size: 9px; }
.application-flow-step b, .application-flow-step span, .application-flow-step small, .application-flow-step em { display: block; }
.application-flow-step span { margin-top: 5px; color: #778a90; font-size: 11px; }
.application-flow-step small { margin-top: 4px; color: #899a97; }
.application-flow-step em { color: #8ca09c; font-style: normal; }
.application-flow-step .flow-avatar, .application-flow-step .flow-add { display: grid; width: 40px; height: 40px; margin-top: 9px; place-items: center; border-radius: 50%; background: #e8f1ef; color: #217c70; font-style: normal; font-weight: 700; }
.application-flow-step .flow-add { border: 1px dashed #b8cac6; background: #f7faf9; color: #8da09c; font-size: 22px; }
.application-drawer-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid #e3ebe9; }
.application-drawer-footer button { min-width: 78px; padding: 8px 14px; border: 1px solid #d4dfdc; border-radius: 5px; color: #536963; background: #fff; cursor: pointer; }
.application-drawer-footer button.primary { color: #fff; border-color: #168cf2; background: #168cf2; }
.application-detail-header .detail-title { display: flex; align-items: center; gap: 10px; }
.application-detail-header .detail-avatar { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: #168cf2; font-style: normal; }
.application-detail-fields { display: grid; gap: 10px; padding: 12px 0 20px; border-bottom: 1px solid #e5ecea; }
.application-detail-fields div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; }
.application-detail-fields dt { color: #7e8f94; }
.application-detail-fields dd { margin: 0; color: #334a51; }
.application-comments { margin-top: 24px; }
.application-comment { padding: 10px 0; border-bottom: 1px solid #e7eeec; }
.application-comment b, .application-comment small { display: block; }
.application-comment small { margin-top: 5px; color: #8a9a9e; }
.application-comment p { margin: 7px 0 0; color: #4a6561; line-height: 1.6; }
.application-comment time { color: #91a19e; font-size: 12px; }
.application-comment-footer { display: flex; gap: 9px; }
.application-comment-footer input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 1px solid #d6e1de; border-radius: 5px; }
@media (max-width: 760px) { .application-table { overflow-x: auto; }.application-table .office-data-head, .application-table .office-data-row { min-width: 760px; }.application-filter-bar { align-items: stretch; flex-direction: column; }.application-filter-bar select, .application-filter-bar input { width: 100%; }.application-date-range { display: grid; grid-template-columns: 1fr auto 1fr; }.application-form-row { grid-template-columns: 1fr; gap: 5px; }.application-drawer { width: 100%; } }
.crm-customer-lead-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 11px 0 14px; padding: 12px; border: 1px solid #e3ebef; border-radius: 8px; background: linear-gradient(100deg, #f9fcff, #fff); }.crm-customer-lead-filter-bar input, .crm-customer-lead-filter-bar select { width: 154px; height: 32px; padding: 0 10px; border: 1px solid #d7e3e8; border-radius: 4px; outline: none; color: #516b77; background: #fff; font-size: 11px; }.crm-customer-lead-filter-bar > input { width: 165px; }.crm-customer-lead-filter-bar input:focus, .crm-customer-lead-filter-bar select:focus { border-color: #168cf2; box-shadow: 0 0 0 2px rgba(22,140,242,.09); }.crm-customer-lead-grid table { min-width: 1450px; }.crm-customer-lead-grid th, .crm-customer-lead-grid td { padding: 11px 10px; }.crm-lead-tag-list { display: flex; flex-wrap: wrap; gap: 4px; max-width: 160px; }.crm-lead-tag-list .crm-tag { margin: 0; }.crm-follow-button { width: 29px; height: 29px; border: 0; border-radius: 50%; color: #7890a0; background: transparent; cursor: pointer; font-size: 20px; line-height: 1; }.crm-follow-button:hover { color: #e5a00d; background: #fff8e8; }.crm-follow-button.active { color: #f6a10a; }.crm-tag-selector { display: flex; width: 100%; min-height: 33px; align-items: center; justify-content: space-between; padding: 6px 10px; border: 1px solid #d6e2e7; border-radius: 4px; color: #8b9ba3; background: #fff; cursor: pointer; font: inherit; font-size: 12px; text-align: left; }.crm-tag-selector > span { overflow: hidden; color: #4b6671; text-overflow: ellipsis; white-space: nowrap; }.crm-tag-selector b { color: #a0afb5; font-weight: 400; }.crm-tag-picker-mask { position: fixed; z-index: 1330; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(15,31,41,.48); }.crm-tag-picker { display: flex; width: min(940px, 95vw); min-height: 480px; max-height: min(620px, 90vh); flex-direction: column; border-radius: 8px; background: #fff; box-shadow: 0 16px 42px rgba(22,44,54,.28); }.crm-tag-picker > header { display: flex; min-height: 54px; align-items: center; justify-content: space-between; padding: 0 19px; border-bottom: 1px solid #e6edf0; }.crm-tag-picker h3 { margin: 0; color: #2d4652; font-size: 15px; }.crm-tag-picker > header button { border: 0; color: #97a7af; background: transparent; cursor: pointer; font-size: 19px; }.crm-tag-picker-toolbar { display: flex; gap: 9px; padding: 16px 19px 8px; }.crm-tag-picker-toolbar input, .crm-tag-picker-toolbar select { width: 225px; height: 32px; padding: 0 10px; border: 1px solid #d7e3e8; border-radius: 4px; color: #617680; background: #fff; font-size: 11px; }.crm-tag-picker main { flex: 1; padding: 11px 19px 28px; overflow-y: auto; }.crm-tag-picker main section { margin: 0 0 24px; }.crm-tag-picker h4 { margin: 0 0 11px; padding-left: 8px; border-left: 2px solid #168cf2; color: #3b525c; font-size: 12px; }.crm-tag-picker main section > div { display: flex; flex-wrap: wrap; gap: 9px; }.crm-tag-picker main section button { display: inline-flex; min-height: 30px; align-items: center; gap: 5px; padding: 0 11px; border: 1px solid transparent; border-radius: 4px; color: #617781; background: #f2f6fa; cursor: pointer; font-size: 11px; }.crm-tag-picker main section button:hover, .crm-tag-picker main section button.active { border-color: #168cf2; color: #1685ed; background: #edf7ff; }.crm-tag-picker main section button i { font-style: normal; }.crm-tag-picker footer { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 13px 19px; border-top: 1px solid #e6edf0; }.crm-tag-picker footer span { margin-right: auto; color: #82949d; font-size: 11px; }.crm-tag-picker footer button { min-width: 54px; height: 31px; border: 1px solid #d4e0e5; border-radius: 4px; color: #627883; background: #fff; cursor: pointer; font-size: 12px; }.crm-tag-picker footer .primary { border-color: #168cf2; color: #fff; background: #168cf2; }
@media print { body.application-printing * { visibility: hidden !important; }.application-printing .application-drawer.detail-drawer, .application-printing .application-drawer.detail-drawer * { visibility: visible !important; }.application-printing .application-drawer.detail-drawer { position: fixed; inset: 0; width: 100%; height: auto; box-shadow: none; }.application-printing .application-drawer-header .detail-header-actions, .application-printing .application-comment-footer { display: none !important; } }
