*{box-sizing:border-box}body{margin:0;color:#1f2933;background:#f3f5f7;font-family:Microsoft YaHei,Segoe UI,Arial,sans-serif;font-size:15px}button,input,select{font:inherit}button{min-height:34px;padding:0 12px;border:1px solid #c7d1dc;border-radius:4px;cursor:pointer;background:#fff;color:#1f2933}button.primary{border-color:#2563eb;color:#fff;background:#2563eb}button.secondary{background:#fff}button.small{min-height:28px;padding:0 9px}button.full{width:100%;margin-top:12px}button:disabled{opacity:.55;cursor:not-allowed}input,select{width:100%;min-height:34px;padding:5px 8px;border:1px solid #c7d1dc;border-radius:4px;background:#fff;color:#1f2933}input[type=checkbox]{width:16px;min-height:16px}.app-shell{min-height:100vh;padding:0}.login-box{width:390px;max-width:100%;margin:12vh auto;padding:26px;border:1px solid #d2dae3;border-radius:6px;background:#fff}.login-box h1{margin:8px 0 22px;font-size:24px}.login-box form{display:grid;gap:14px}.workspace{width:100%;margin:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 5%;border-bottom:1px solid #d2dae3;background:#fff}.topbar h1{margin:4px 0 0;font-size:24px;color:#111827}.brand-line{color:#2563eb;font-size:13px;font-weight:700}.top-actions{display:flex;align-items:center;gap:12px;color:#526273}.main-nav{display:flex;gap:8px;padding:16px 5% 0;border-bottom:1px solid #d2dae3;background:#fff}.main-nav button{min-width:112px;font-weight:700}.main-nav button.selected,.sub-nav button.selected{color:#fff;border-color:#2563eb;background:#2563eb}.company-name{font-weight:700;color:#172033}.flow-strip{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:10px 5%;border-bottom:1px solid #d2dae3;color:#687684;background:#fff}.flow-label{margin-right:5px;color:#526273;font-weight:700}.flow-strip button{min-height:26px;padding:0 7px;border:0;color:#526273;background:transparent}.flow-strip button.current{color:#2563eb;font-weight:700}.flow-strip i{color:#a3afbb;font-style:normal}.module{min-height:calc(100vh - 185px);padding:28px 5% 42px;border:0;border-radius:0;background:transparent}.sub-nav{display:flex;gap:8px;margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid #dfe5eb}.sub-nav button{min-width:102px}.toolbar,.section-head,.form-actions,.toolbar-actions,.row-actions{display:flex;align-items:center;gap:8px}.toolbar,.section-head{justify-content:space-between}.toolbar h2{margin:0;font-size:24px;color:#111827}.toolbar p{margin:5px 0 0;color:#687684}.toolbar-actions input{width:245px}.inline-field{display:grid;gap:4px;color:#526273;text-align:left}.inline-field input{width:145px}.banner{margin:10px 0;padding:8px 10px;border:1px solid;background:#fff}.error{color:brown;border-color:#d9a5a5}.notice{color:#216a47;border-color:#a9d1ba}.editor,.detail-panel{margin:16px 0;padding:14px;border:1px solid #d2dae3;border-radius:4px;background:#f8fafc}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(150px,1fr))}.form-grid label,.expense-grid label{display:grid;gap:5px;color:#53616f}.wide{grid-column:span 2}.unit-editor{margin-top:16px}.unit-editor .section-head{margin-bottom:8px}.table-wrap{overflow-x:auto;margin-top:14px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:8px 9px;border:1px solid #dfe5eb;text-align:left;white-space:nowrap;vertical-align:middle}th{color:#425466;background:#f5f7fa;font-weight:700}.compact th,.compact td{padding:6px 7px}.item-table input,.item-table select{min-width:110px}.text-button{min-height:auto;padding:0;border:0;color:#2563eb;background:transparent}.danger-text{color:brown}.status-on,.status-off,.status-draft{display:inline-block;padding:2px 6px;border:1px solid}.status-on{color:#216a47;border-color:#a9d1ba;background:#edf8f0}.status-off{color:#7c4141;border-color:#d9a5a5;background:#fff3f3}.status-draft{color:#855e18;border-color:#dbc995;background:#fff9e8}.expense-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) 2fr;gap:12px;align-items:end;margin-top:14px}.purchase-expenses{grid-template-columns:repeat(2,minmax(150px,1fr)) 2fr}.totals{display:flex;gap:16px;align-items:end;min-height:34px;color:#53616f}.totals span{display:grid;gap:3px}.totals b{color:#1f2933}.helper-note{margin:12px 0;padding:8px 10px;border-left:3px solid #2563eb;color:#526273;background:#eef5ff}.attachment-editor{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;padding:12px;border:1px solid #d2dae3;background:#fff}.file-picker{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid #2563eb;border-radius:4px;color:#2563eb;cursor:pointer;background:#fff}.file-picker input{display:none}.attachment-tip{color:#687684}.attachment-list{flex-basis:100%;display:grid;gap:6px}.attachment-list>div{display:flex;align-items:center;gap:12px;padding:7px 9px;border:1px solid #dfe5eb;background:#f8fafc}.attachment-list span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-attachments{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:14px;padding-top:12px;border-top:1px solid #dfe5eb}.attachment-link{min-height:30px;color:#2563eb;border-color:#b9cdf8;background:#eef5ff}.detail-panel p{margin:8px 0;color:#53616f}.unit-cost-line{white-space:nowrap;line-height:1.55}.cost-reference{color:#9a5700;font-weight:700;white-space:nowrap}.purchase-cost{margin-top:3px;color:#245a88}.pending-cost{margin-top:3px;color:#8a6518;font-weight:600}.estimate-tag{display:block;margin-top:2px;color:#9a5700;font-size:12px}.log-head{margin-top:22px;padding-top:12px;border-top:1px solid #d2dae3}.empty{padding:24px;color:#7a8794;text-align:center}.section-title{margin:28px 0 8px;font-size:18px;color:#111827}.due-legend{display:flex;align-items:center;flex-wrap:wrap;gap:18px;color:#526273}.due-legend span{display:inline-flex;align-items:center;gap:6px}.due-dot{display:inline-block;width:10px;height:10px;margin-right:7px;border-radius:50%;vertical-align:middle;background:#27a55f}.due-dot.overdue{background:#dc2626}.due-dot.soon{background:#eab308}.due-dot.later{background:#27a55f}.due-dot.paid{background:#94a3b8}.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-top:20px}.summary-grid>div{padding:15px;border:1px solid #d2dae3;background:#fbfcfd}.summary-grid span,.summary-grid b{display:block}.summary-grid span{color:#687684}.summary-grid b{margin-top:8px;color:#111827;font-size:19px}.summary-grid .emphasis{border-color:#2563eb;background:#eef5ff}.summary-grid .emphasis b{color:#2563eb}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.report-block{padding:16px;border:1px solid #dfe5eb;background:#fff}.report-block h3{margin:0 0 12px;font-size:16px}.payment-record-head{margin-top:24px}.payment-record-head .section-title{margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:4vh 5vw;background:#141e2859}.company-activity-modal{width:min(1100px,100%);max-height:88vh;margin:0;overflow:auto;background:#fff;box-shadow:0 10px 30px #0f172a40}.draggable-modal-head{cursor:move;-webkit-user-select:none;user-select:none}.drag-tip{flex:1;color:#7a8794;font-size:13px;font-weight:400}.install-button{color:#1d4ed8;border-color:#93b4ef;background:#eff6ff}.placeholder-module{min-height:340px;text-align:center}.placeholder-icon{width:46px;height:46px;margin:18px auto 12px;border:1px solid #2563eb;border-radius:50%;color:#2563eb;line-height:44px;font-size:20px}.placeholder-module p{max-width:560px;margin:0 auto 18px;color:#687684;line-height:1.8}.next-step{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:7px 12px;margin:0 auto 22px;padding:12px 16px;border:1px solid #dfe5eb;color:#526273;background:#f8fafc}.next-step strong{color:#2563eb}@media(max-width:1000px){.form-grid,.expense-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.totals{grid-column:span 2}.summary-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){body{font-size:16px}button,input,select{min-height:42px}.login-box{width:auto;margin:8vh 14px;padding:22px 18px}.topbar{align-items:flex-start;padding:14px 16px}.topbar h1{font-size:21px}.top-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.main-nav{position:sticky;top:0;z-index:20;gap:6px;padding:9px 12px;overflow-x:auto}.main-nav button{min-width:96px;white-space:nowrap}.flow-strip{display:none}.module{min-height:calc(100vh - 130px);padding:18px 14px 34px}.sub-nav{overflow-x:auto}.toolbar{align-items:stretch;flex-direction:column}.toolbar h2{font-size:22px}.toolbar-actions{width:100%;flex-wrap:wrap}.toolbar-actions input,.toolbar-actions select,.toolbar-actions button{flex:1 1 150px;width:100%}.form-grid,.expense-grid,.purchase-expenses,.report-grid{grid-template-columns:1fr}.wide,.totals{grid-column:auto}.totals{flex-wrap:wrap;gap:12px 20px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid>div{padding:12px}.editor,.detail-panel{padding:12px}.table-wrap{margin-right:-2px;padding-bottom:4px}th,td{padding:9px 8px}.row-actions{min-width:126px;flex-wrap:wrap}.attachment-editor{align-items:stretch;flex-direction:column}.file-picker{justify-content:center}.modal-backdrop{padding:12px}.company-activity-modal{width:100%;max-height:90vh}.draggable-modal-head{cursor:default}.drag-tip{display:none}}@media(max-width:420px){.summary-grid{grid-template-columns:1fr}.brand-line{font-size:12px}}.workspace{min-height:100dvh;padding-bottom:88px}.topbar{position:sticky;top:0;z-index:30;padding:14px max(18px,5%);box-shadow:0 1px 12px #0f172a0f}.topbar h1{margin-top:2px}.module{width:min(1180px,100%);margin:0 auto;padding-bottom:120px}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:70;display:grid;grid-template-columns:repeat(5,1fr);height:calc(72px + env(safe-area-inset-bottom));padding:7px max(8px,calc((100vw - 720px)/2)) env(safe-area-inset-bottom);border-top:1px solid #dbe3ec;background:#fffffff5;box-shadow:0 -8px 24px #0f172a14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav button{display:flex;min-width:0;min-height:58px;padding:4px 2px;border:0;border-radius:12px;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#64748b;background:transparent;font-size:13px}.bottom-nav button.selected{color:#1d4ed8;background:#eff6ff;font-weight:700}.nav-icon{display:grid;width:26px;height:26px;place-items:center;border-radius:8px;font-size:15px;font-weight:800}.bottom-nav button.selected .nav-icon{color:#fff;background:#2563eb}.floating-add{position:fixed;right:max(18px,calc((100vw - 1180px)/2 + 18px));bottom:calc(88px + env(safe-area-inset-bottom));z-index:65;width:58px;height:58px;min-height:58px;padding:0;border:0;border-radius:50%;color:#fff;background:#2563eb;box-shadow:0 10px 24px #2563eb59;font-size:34px;line-height:1}.action-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#0f172a6b}.action-sheet{width:min(560px,100%);padding:10px 16px calc(16px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -18px 45px #0f172a33}.sheet-handle{width:40px;height:4px;margin:0 auto 12px;border-radius:99px;background:#cbd5e1}.action-sheet h3{margin:4px 4px 12px;font-size:19px}.action-sheet>button{display:grid;width:100%;min-height:62px;margin-top:8px;padding:10px 14px;border-color:#e2e8f0;text-align:left}.action-sheet>button span{font-weight:800}.action-sheet>button small{margin-top:3px;color:#64748b}.action-sheet .sheet-cancel{min-height:48px;place-items:center;border:0;text-align:center;color:#475569;background:#f1f5f9}.home-welcome,.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.home-welcome span,.home-section-head p{color:#64748b}.home-welcome h2{margin:4px 0 0;font-size:24px}.home-section-head{margin:28px 0 10px}.home-section-head h3{margin:0;font-size:19px}.home-section-head p{margin:4px 0 0;font-size:13px}.home-summary{grid-template-columns:repeat(5,minmax(150px,1fr))}.summary-grid .warning-card{border-color:#fed7aa;background:#fff7ed}.summary-grid .warning-card b{color:#c2410c}.profit-detail-card{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:12px;overflow:hidden;border:1px solid #dbe3ec;border-radius:12px;background:#dbe3ec}.profit-detail-card>div{padding:14px;background:#fff}.profit-detail-card span,.profit-detail-card b{display:block}.profit-detail-card span{color:#64748b;font-size:13px}.profit-detail-card b{margin-top:6px}.mobile-card-list{display:none;gap:12px}.home-module .mobile-card-list{display:grid}.record-card{width:100%;padding:15px;border:1px solid #dbe3ec;border-radius:14px;color:#1f2933;background:#fff;box-shadow:0 4px 14px #0f172a0a;text-align:left}button.record-card{display:flex;min-height:68px;align-items:center}.record-card-head,.record-card-meta,.record-card-values,.card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.record-card-meta{margin-top:8px;color:#64748b;font-size:13px}.record-card-values{margin-top:14px;padding-top:12px;border-top:1px solid #edf1f5}.record-card-values span{display:grid;gap:3px;color:#64748b;font-size:12px}.record-card-values strong{color:#0f172a;font-size:17px}.card-description{margin:10px 0 0;color:#475569;line-height:1.5}.card-actions{justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid #edf1f5}.card-actions button{min-height:38px;padding:0 10px}.record-main{display:grid;flex:1;gap:4px}.record-main small,.record-amount small{color:#64748b}.record-amount{display:grid;gap:3px;text-align:right}.empty-card{margin:0;padding:28px 16px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;text-align:center;background:#fff}.page-summary{grid-template-columns:repeat(3,minmax(170px,1fr));margin:0 0 22px}.page-summary .summary-link{display:grid;min-height:0;padding:15px;border-color:#d2dae3;border-radius:0;text-align:left;background:#fbfcfd}.summary-link span{color:#687684}.summary-link b{margin-top:8px;font-size:19px}.summary-link small{margin-top:8px;color:#2563eb}.page-search input{border-radius:12px}@media(max-width:760px){body{background:#f4f7fb}.workspace{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.topbar{min-height:68px;padding:11px 15px;align-items:center}.topbar h1{font-size:20px}.top-actions{width:auto;justify-content:flex-end;flex-wrap:nowrap}.top-actions button{min-height:38px;padding:0 10px}.module{min-height:calc(100dvh - 68px);padding:18px 14px 116px}.bottom-nav{height:calc(70px + env(safe-area-inset-bottom))}.floating-add{right:18px;bottom:calc(86px + env(safe-area-inset-bottom))}.home-summary,.page-summary,.payment-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-summary>div,.page-summary>div,.page-summary .summary-link{min-height:96px;padding:14px;border:0;border-radius:14px;background:#fff;box-shadow:0 4px 14px #0f172a0d}.home-summary>div:first-child{grid-column:span 2;color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8)}.home-summary>div:first-child span,.home-summary>div:first-child b{color:#fff}.home-summary b{font-size:20px}.page-summary{margin-bottom:20px}.payment-summary>div:first-child{grid-column:span 2}.profit-detail-card{grid-template-columns:repeat(2,1fr);border-radius:14px}.mobile-card-list{display:grid}.desktop-table{display:none}.toolbar{margin-bottom:14px}.toolbar p{font-size:13px;line-height:1.5}.page-search{display:block}.page-search input{min-height:46px;padding-left:14px}.sub-nav{position:sticky;top:68px;z-index:22;margin:-18px -14px 18px;padding:10px 14px;border-bottom:1px solid #dbe3ec;background:#f4f7fbf5}.sub-nav button{flex:1;border-radius:10px}.editor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:85;margin:0;padding:66px 14px calc(24px + env(safe-area-inset-bottom));overflow-y:auto;border:0;border-radius:0;background:#f4f7fb}.editor:before{content:"编辑记录";position:fixed;top:0;right:0;left:0;z-index:2;height:54px;padding:16px;border-bottom:1px solid #dbe3ec;color:#0f172a;background:#fff;font-size:18px;font-weight:800}.editor .form-actions{position:sticky;bottom:0;z-index:3;margin:22px -14px calc(-24px - env(safe-area-inset-bottom));padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -8px 22px #0f172a14}.editor .form-actions button{flex:1;min-height:48px;border-radius:12px;font-weight:700}.module>.detail-panel,.modal-backdrop .detail-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;width:100%;max-height:none;margin:0;padding:16px 14px 96px;overflow-y:auto;border:0;border-radius:0;background:#fff;transform:none!important;box-shadow:none}.detail-panel .section-head{position:sticky;top:-16px;z-index:2;margin:-16px -14px 14px;padding:12px 14px;border-bottom:1px solid #dbe3ec;background:#fff}.modal-backdrop{padding:0}.item-table,.item-table tbody,.item-table tr,.item-table td{display:block;width:100%}.item-table thead{display:none}.item-table tr{margin-bottom:12px;padding:12px;border:1px solid #dbe3ec;border-radius:14px;background:#fff}.item-table td{padding:7px 0;border:0;white-space:normal}.item-table td:before{display:block;margin-bottom:5px;color:#64748b;font-size:12px;font-weight:700}.purchase-item-table td:nth-child(1):before,.sales-item-table td:nth-child(1):before{content:"商品"}.purchase-item-table td:nth-child(2):before,.sales-item-table td:nth-child(2):before{content:"规格"}.purchase-item-table td:nth-child(3):before,.sales-item-table td:nth-child(3):before{content:"数量"}.purchase-item-table td:nth-child(4):before,.sales-item-table td:nth-child(4):before{content:"单位"}.purchase-item-table td:nth-child(5):before{content:"采购单价（手动填写）"}.purchase-item-table td:nth-child(6):before{content:"商品金额"}.sales-item-table td:nth-child(5):before{content:"当前库存成本参考"}.sales-item-table td:nth-child(6):before{content:"销售单价"}.sales-item-table td:nth-child(7):before{content:"商品金额"}.item-table input,.item-table select{min-width:0}.attachment-editor{border-radius:14px}.totals{display:grid;grid-template-columns:repeat(2,1fr);width:100%;padding:14px;border-radius:14px;background:#fff}.expense-grid{align-items:stretch}.status-on,.status-off,.status-draft{border-radius:999px;white-space:nowrap}.main-nav,.flow-strip{display:none}}@media(max-width:420px){.home-summary,.page-summary,.payment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.home-summary>div{min-height:92px}.record-card-values strong{font-size:16px}}
