:root{--ink:#172126;--paper:#f5eee2;--paper2:#fffaf1;--red:#7b231c;--gold:#bd9148;--line:#ddcfb6;--muted:#7c776e;--green:#347a62}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 Arial,"PingFang SC","Microsoft YaHei",sans-serif}button,input{font:inherit;cursor:pointer}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#151d21,#2b3b40 56%,#6d2921)}.login-card{width:min(420px,100%);padding:42px 44px;background:var(--paper2);border-top:5px solid var(--gold);box-shadow:0 25px 80px #0007}.login-card img{width:190px;height:78px;object-fit:contain;object-position:left;margin:30px 0 4px}.back,.login-note,.demo-hint{color:var(--muted);font-size:12px}.eyebrow,.crumb{font:11px monospace;letter-spacing:.12em;color:var(--gold)}.login-card h1{margin:8px 0 2px;font:34px serif}.login-card label{display:block;color:var(--muted);font-size:12px;margin-top:15px}.login-card input{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid var(--line);background:white}.primary{width:100%;padding:13px;margin-top:24px;border:0;background:var(--red);color:white}.demo-hint{text-align:center}.error{color:#b83b2d;min-height:20px;text-align:center}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;flex:none;display:flex;flex-direction:column;background:linear-gradient(180deg,#172126,#26363b);color:#dfe6e4}.brand{padding:28px 24px 32px;border-bottom:1px solid #405057}.brand img{width:170px;height:64px;object-fit:contain;object-position:left}.brand span{display:block;color:var(--gold);font:10px monospace;letter-spacing:.16em}.sidebar nav{padding:22px 14px}.sidebar nav button{display:flex;justify-content:space-between;width:100%;padding:13px 14px;margin:4px 0;border:0;background:transparent;color:#b7c2c2;text-align:left}.sidebar nav button:hover,.sidebar nav button.active{background:var(--red);color:#fff}.sidebar i{font-style:normal;font-size:11px;color:#f1cf8a}.security-mark{margin-top:auto;padding:24px;color:#91a1a3;font-size:11px;border-top:1px solid #405057}.main{min-width:0;flex:1}.topbar{height:106px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(24px,4vw,60px);background:var(--paper2);border-bottom:1px solid var(--line)}.topbar h2{margin:2px 0;font:30px serif}.user-box{display:flex;align-items:center;gap:10px}.user-box small{color:var(--muted);font-size:11px}.avatar{display:grid;place-items:center;width:36px;height:36px;background:var(--red);color:#fff;border-radius:50%}.user-box button{border:0;background:none;color:var(--muted);font-size:12px;margin-left:15px}.content{padding:32px clamp(24px,4vw,60px);max-width:1400px}.page-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.page-head h3{margin:0;font:26px serif}.page-head p{margin:5px 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stat,.panel{background:var(--paper2);border:1px solid var(--line);box-shadow:0 5px 18px #5c432015}.stat{padding:19px}.stat small{color:var(--muted)}.stat b{display:block;margin-top:10px;font:30px serif}.stat em{color:var(--green);font:12px Arial;font-style:normal}.grid-2{display:grid;grid-template-columns:1.35fr .9fr;gap:20px}.panel{padding:22px}.panel h3{margin:0 0 16px;font:20px serif}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:620px}.table th,.table td{text-align:left;padding:13px 10px;border-bottom:1px solid #e8ddca;white-space:nowrap}.table th{color:var(--muted);font-size:12px;font-weight:normal}.badge{display:inline-block;padding:3px 9px;border-radius:10px;background:#e5efe9;color:var(--green);font-size:11px}.warn{background:#fcf0d7;color:#a06920}.blue{background:#e2edf7;color:#426e9a}.timeline{display:grid;gap:18px}.timeline div{padding-left:17px;border-left:2px solid var(--gold)}.timeline small{color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.action,.outline{padding:10px 14px;border:1px solid var(--line);background:white;color:var(--ink);font-size:12px}.action{background:var(--red);border-color:var(--red);color:#fff}.search{padding:10px 12px;border:1px solid var(--line);background:white}.toast{position:fixed;right:26px;bottom:24px;padding:13px 18px;background:var(--ink);color:#fff;box-shadow:0 8px 30px #0004;transform:translateY(90px);transition:.25s}.toast.show{transform:translateY(0)}
@media(max-width:800px){.sidebar{width:70px}.brand{padding:18px 10px}.brand img{width:50px;object-position:left}.brand span,.security-mark{display:none}.sidebar nav button{font-size:0;justify-content:center;padding:14px}.sidebar nav button:before{content:'◆';font-size:12px;color:var(--gold)}.topbar{padding:0 20px}.content{padding:24px 20px}.stats{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.user-box>span:not(.avatar){display:none}}@media(max-width:480px){.topbar{height:92px}.topbar h2{font-size:24px}.stats{gap:10px}.stat{padding:14px}.stat b{font-size:24px}.page-head{display:block}.page-head .actions{margin-top:16px}}
.customer-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.customer-summary .stat b{font-size:25px}.customer-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.customer-toolbar .search{min-width:220px;flex:1}.customer-toolbar select{padding:10px 12px;border:1px solid var(--line);background:#fff}.business-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:10px;margin-bottom:10px}.business-tab{flex:none;padding:8px 12px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:11px}.business-tab span{margin-left:5px;opacity:.7}.business-tab.active{background:var(--red);border-color:var(--red);color:#fff}.customer-name b,.customer-name small,.table-sub{display:block}.customer-name small,.table-sub{margin-top:4px;color:var(--muted);white-space:nowrap}.customer-detail{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#111b20dd}.customer-detail-card{width:min(720px,100%);max-height:88vh;overflow:auto;padding:30px;background:#fffaf1;border-top:5px solid var(--gold)}.detail-title{display:flex;justify-content:space-between;gap:20px;align-items:start}.detail-title h3{margin:0;font:26px serif}.detail-title button{border:0;background:none;font-size:25px;cursor:pointer}.customer-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}.detail-field{padding:13px;background:#f4ead8;border:1px solid #e0ceb0}.detail-field small{display:block;color:var(--muted)}.detail-field p{margin:6px 0 0;line-height:1.7}.detail-field.full{grid-column:1/-1}.file-chip{display:inline-block;margin:5px 6px 0 0;padding:5px 8px;background:#fff;border:1px solid var(--line)}.status-select{padding:7px 9px;border:1px solid var(--line);background:#fff}.customer-empty{padding:54px 20px;text-align:center;color:var(--muted)}
@media(max-width:800px){.customer-summary{grid-template-columns:repeat(2,1fr)}.customer-detail-grid{grid-template-columns:1fr}.detail-field.full{grid-column:auto}.customer-table{min-width:950px}}
@media(max-width:480px){.customer-summary{grid-template-columns:1fr 1fr}.customer-toolbar{display:grid}.customer-toolbar .search{min-width:0}}
.ops-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;margin-bottom:20px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-title h3{margin:0}.task-list{display:grid;gap:10px;margin-top:17px}.task-list button{display:grid;grid-template-columns:58px 1fr;gap:2px 12px;width:100%;padding:14px;border:1px solid #e5d8c3;background:#fff;text-align:left;color:var(--ink)}.task-list button:hover{border-color:var(--gold);background:#fffaf1}.task-list span{grid-row:1/3;display:grid;place-items:center;background:#f2e5cf;color:var(--red);font-size:11px}.task-list small{color:var(--muted)}.business-bars{display:grid;gap:13px;margin-top:18px}.business-bars>div{display:grid;grid-template-columns:1fr auto;gap:5px 12px}.business-bars span,.business-bars b{font-size:12px}.business-bars i{grid-column:1/-1;height:6px;overflow:hidden;background:#e8ddca}.business-bars em{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold))}.recent-panel{margin-bottom:20px}.text-button{border:0;background:none;color:var(--red)}.module-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.module-summary>div{padding:16px 18px;background:var(--paper2);border:1px solid var(--line)}.module-summary small{display:block;color:var(--muted)}.module-summary b{display:block;margin-top:6px;font:24px serif}.filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.filter-bar .search{min-width:260px;flex:1}.filter-bar select{padding:10px 12px;border:1px solid var(--line);background:#fff}.detail-table{min-width:980px}.detail-table td{vertical-align:top}.detail-table td b,.detail-table td small{display:block}.detail-table td small{margin-top:3px;color:var(--muted)}.permission-cell{max-width:220px;white-space:normal!important}.danger{background:#f6dddd;color:#a52e28}.empty-row{padding:50px!important;text-align:center!important;color:var(--muted)}.record-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#111b20df}.record-card{width:min(820px,100%);max-height:90vh;overflow:auto;padding:30px;background:var(--paper2);border-top:5px solid var(--gold);box-shadow:0 30px 90px #0008}.compact-card{width:min(520px,100%)}.record-grid,.record-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}.record-field{padding:13px;background:#f4ead8;border:1px solid #e0ceb0}.record-field small{display:block;color:var(--muted)}.record-field.full,.form-field.full{grid-column:1/-1}.form-field{display:grid;gap:6px;color:var(--muted);font-size:12px}.form-field input,.form-field select,.form-field textarea{width:100%;padding:11px;border:1px solid var(--line);background:#fff;color:var(--ink)}.form-field textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.full-button{width:100%;margin-top:18px}.record-card .detail-title small{color:var(--muted)}
@media(max-width:900px){.ops-grid{grid-template-columns:1fr}.module-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.module-summary{grid-template-columns:1fr 1fr}.filter-bar{display:grid}.filter-bar .search{min-width:0}.record-grid,.record-form-grid{grid-template-columns:1fr}.record-field.full,.form-field.full{grid-column:auto}.record-card{padding:22px}.task-list button{grid-template-columns:48px 1fr}}
.wechat-login-card{margin-top:22px;padding:18px;border:1px solid #d5c6ab;background:#fff}.wechat-login-head{display:flex;align-items:center;gap:11px}.wechat-login-head>div{display:grid}.wechat-login-head small{color:var(--muted)}.wechat-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#07c160;color:#fff;font-weight:bold}.wechat-state{margin-left:auto;padding:3px 8px;border-radius:12px;font-size:10px}.wechat-state.ready{background:#ddf5e6;color:#168244}.wechat-state.pending{background:#f7ead0;color:#98671f}.wechat-qr-mount{display:grid;place-items:center;min-height:136px;margin:15px 0 10px;background:#f6f7f5;border:1px dashed #c8c9c4}.wechat-qr-mount iframe{width:100%!important;height:320px!important}.qr-placeholder{display:grid;place-items:center;width:104px;height:104px;padding:9px;background:repeating-linear-gradient(45deg,#172126 0 5px,#fff 5px 10px);border:7px solid #fff;box-shadow:0 0 0 1px #c8c9c4}.qr-placeholder span{padding:9px;background:#fff;text-align:center;font-size:10px;line-height:1.4}.wechat-login-note{margin:0;color:var(--muted);font-size:11px}.wechat-login-button{width:100%;margin-top:12px;padding:11px;border:0;background:#07c160;color:#fff}.wechat-setup-info{margin-top:12px;padding:13px;background:#f6efe3;color:var(--muted);font-size:11px}.wechat-setup-info ol{margin:7px 0;padding-left:20px}.wechat-setup-info p{margin:7px 0 0}.wechat-error{color:#b83b2d}.login-divider{display:flex;align-items:center;gap:10px;margin:20px 0 0;color:var(--muted);font-size:10px}.login-divider:before,.login-divider:after{content:'';height:1px;flex:1;background:var(--line)}
