:root{--bg:#f4f6f8;--panel:#fff;--text:#19242e;--muted:#70808f;--line:#e4e9ed;--primary:#176b5b;--primary-soft:#e5f2ef;--danger:#b84b4b;--nav:#172c2a;--shadow:0 8px 24px rgba(25,36,46,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:14px}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:var(--nav);color:#fff;padding:30px 20px;display:flex;flex-direction:column}.brand{font-size:22px;font-weight:700;letter-spacing:1px}.brand-sub{color:#94aaa6;font-size:12px;margin:6px 0 36px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{color:#bdd0cc;text-decoration:none;padding:12px 14px;border-radius:8px}.sidebar nav a:hover,.sidebar nav a.active{background:#24443f;color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid #31504c;padding-top:18px;color:#bdd0cc}.link-button{border:0;background:none;color:#8eb5ae;padding:8px 0;cursor:pointer}.main{margin-left:220px;padding:36px;min-height:100vh;max-width:1600px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:1.5px;color:var(--primary);font-size:12px;font-weight:700}h1{font-size:28px;margin:0}h2{font-size:17px;margin:0 0 18px}h3{font-size:15px;margin:8px 0 5px}.muted{color:var(--muted)}a{color:var(--primary);text-decoration:none}.actions{display:flex;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 17px;border:1px solid transparent;border-radius:7px;font:inherit;cursor:pointer}.button.primary{background:var(--primary);color:#fff}.button.secondary{background:#fff;border-color:#ced7dc;color:#344853}.button.danger{background:#fff0f0;border-color:#e8bcbc;color:var(--danger)}.button.small{min-height:32px;padding:0 12px;font-size:12px}.button.full{width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stats article{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow)}.stats span,.stats small{display:block;color:var(--muted)}.stats strong{display:block;font-size:24px;margin:9px 0 3px}.stats .profit{background:var(--nav);color:#fff}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dashboard-grid .wide{grid-column:1/-1}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;color:var(--muted);font-size:12px;font-weight:600;padding:11px 12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #eef1f3}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;color:#9aa6af;padding:30px}.badge{display:inline-block;font-size:12px;padding:4px 8px;border-radius:999px;background:#eef1f3;color:#5d6c77}.badge.active,.badge.approved{background:#e3f3ec;color:#176b5b}.badge.submitted,.badge.settling{background:#fff2d9;color:#946510}.badge.rejected,.badge.cancelled{background:#fbe7e7;color:#a33d3d}.badge.completed{background:#e6edf8;color:#48648d}.filters{display:flex;gap:10px;margin-bottom:18px}.filters input{min-width:300px}.filters input,.filters select,.status-form select{border:1px solid #ced7dc;border-radius:7px;padding:9px 11px;background:#fff}.task-list{display:grid}.task-list>a{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;border-bottom:1px solid var(--line)}.task-list>a:last-child{border:0}.task-list small{display:block;color:var(--muted);margin-top:4px;font-weight:400}.form-panel{max-width:900px}.data-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}.field{display:grid;gap:7px}.field label,.form-stack label{font-weight:600}.field em{color:var(--danger);font-style:normal;margin-left:3px}.field input,.field select,.field textarea,.form-stack input,.form-stack textarea{width:100%;border:1px solid #cfd8dd;border-radius:7px;padding:10px 11px;font:inherit;background:#fff}.span-2{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px}.field-error,.form-error{color:var(--danger);font-size:12px}.detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:20px}.detail-list.single{grid-template-columns:1fr}.detail-list div{display:grid;gap:5px}.detail-list dt{color:var(--muted);font-size:12px}.detail-list dd{margin:0}.detail-list .money{font-size:20px;font-weight:700}.order-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.order-side{display:grid;align-content:start;gap:18px}.expense-list{display:grid;gap:12px}.expense-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:20px;padding:17px;border:1px solid var(--line);border-radius:9px}.expense-card p{margin:0;color:var(--muted);font-size:12px}.expense-money{text-align:right}.expense-money strong,.expense-money small{display:block}.expense-money small{color:var(--muted);margin-top:5px}.expense-actions{display:flex;gap:7px}.payments{grid-column:1/-1;background:#f7f9fa;border-radius:7px;padding:11px}.payments>span{font-size:12px;color:var(--muted)}.payments>div{display:grid;grid-template-columns:100px 1fr auto;padding-top:8px}.status-form{display:flex;gap:8px}.status-form select{min-width:0;flex:1}.timeline{display:grid;gap:14px}.timeline div{display:grid;gap:3px;padding-left:12px;border-left:2px solid #dbe5e2}.timeline span,.timeline small{color:var(--muted);font-size:12px}.messages{margin-bottom:16px}.message{background:var(--primary-soft);color:var(--primary);padding:12px 14px;border-radius:8px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#edf4f2,#f7f4ed)}.login-card{width:min(400px,calc(100% - 36px));background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px rgba(23,44,42,.12);border-radius:16px;padding:38px}.login-logo{color:var(--primary);font-weight:700;margin-bottom:30px}.login-card h1{font-size:25px}.form-stack{display:grid;gap:15px;margin-top:24px}.approval-actions{display:flex;justify-content:flex-end;gap:9px}
@media(max-width:1000px){.sidebar{position:static;width:auto;display:block;padding:18px}.sidebar nav{display:flex;overflow:auto;margin-top:15px}.sidebar-user{display:none}.brand-sub{margin:4px 0}.main{margin:0;padding:22px}.stats{grid-template-columns:1fr 1fr}.order-layout,.detail-grid{grid-template-columns:1fr}.data-form{grid-template-columns:1fr}.span-2{grid-column:auto}.expense-card{grid-template-columns:1fr auto}.expense-actions{grid-column:1/-1}}
.badge.voided{background:#fbe7e7;color:#a33d3d}.approval-section{margin-top:18px}.inline-approval{display:flex;align-items:center;gap:7px}.inline-approval input{min-width:180px;border:1px solid #ced7dc;border-radius:7px;padding:8px 10px}
@media(max-width:600px){.main{padding:16px}.page-head{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}.data-form{display:grid}.filters{flex-direction:column}.filters input{min-width:0}.expense-card{grid-template-columns:1fr}.expense-money{text-align:left}.order-stats{grid-template-columns:1fr 1fr}}
