@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Playfair+Display:wght@600&display=swap');
*{box-sizing:border-box}body{margin:0;background:#faf8f5;color:#292522;font-family:'Noto Sans SC',sans-serif}aside{position:fixed;width:244px;inset:0 auto 0 0;background:#272320;color:#f7f2eb;padding:30px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:18px;padding:0 9px 40px}.brand span{width:36px;height:36px;border-radius:50%;background:#d69b79;display:grid;place-items:center;font-family:serif;font-size:23px}.brand small{display:block;color:#aaa29a;font-size:11px;font-weight:400;margin-top:2px}nav{display:grid;gap:7px}nav button{border:0;background:transparent;color:#bdb6ae;text-align:left;border-radius:9px;padding:12px 14px;font:inherit;cursor:pointer}nav button:hover,nav button.active{background:#3a3530;color:#fff}.store{margin-top:auto;padding:14px 10px;border-top:1px solid #48423c;font-size:13px;color:#ddaa8e}.store small{color:#a9a198}main{margin-left:244px;padding:34px 46px;max-width:1500px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}header p{margin:0;color:#9b9187;font-size:13px}h1{margin:6px 0 0;font-size:27px}.today{background:#f1ebe5;border-radius:8px;padding:9px 14px;color:#756a61;font-size:13px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric,.card{background:#fff;border:1px solid #efeae4;border-radius:13px;box-shadow:0 3px 15px #2e211008}.metric{padding:19px}.metric p{margin:0;color:#958c83;font-size:13px}.metric b{display:block;font-family:'Playfair Display','Noto Sans SC';font-size:29px;margin:8px 0 3px}.metric small{color:#ad9f95}.metric.emphasis{background:#563d32;color:#fff;border:0}.metric.emphasis p,.metric.emphasis small{color:#eddbcf}.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:21px}.card{padding:21px}.card h2{font-size:16px;margin:0}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.link,button.primary{color:#a56043;border:0;background:transparent;cursor:pointer;font:inherit}.tech{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #f1ece6}.tech:last-child,.row:last-child{border:0}.avatar{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600}.tech strong{font-size:14px}.tech small{color:#9a9087;font-size:12px}.tech .value{margin-left:auto;text-align:right}.tech .value b{font-size:14px}.tech .value small{display:block}.row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f1ece6;font-size:13px}.time{color:#a0948a;width:38px}.status{margin-left:auto;padding:4px 8px;border-radius:20px;background:#f6eee8;color:#ae704f;font-size:11px}.toolbar{display:flex;justify-content:space-between;margin-bottom:19px}.toolbar input,.field input,.field select{border:1px solid #e5ddd5;border-radius:8px;padding:10px 11px;background:#fff;font:inherit;outline:none}.toolbar input{width:260px}button.primary{background:#9f6348;color:#fff;border-radius:8px;padding:10px 15px}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #efeae4;border-radius:12px;overflow:hidden}th{text-align:left;color:#968b81;background:#fdfbf9;font-size:12px;font-weight:500}th,td{padding:15px 17px;border-bottom:1px solid #f1ece6;font-size:13px}td:last-child,th:last-child{text-align:right}.pill{font-size:11px;padding:4px 8px;border-radius:20px;background:#f4ebe6;color:#a26346}.balance{color:#a56043;font-weight:600}.muted{color:#958c83}.modal{position:fixed;inset:0;background:#33282175;display:grid;place-items:center;padding:20px}.modal.hidden{display:none}.dialog{width:min(460px,100%);background:#fff;border-radius:15px;padding:25px;box-shadow:0 15px 60px #0003}.dialog h2{margin:0 0 20px;font-size:19px}.field{display:grid;gap:6px;margin:12px 0}.field label{font-size:12px;color:#766c64}.field input,.field select{width:100%}.actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.actions button{padding:9px 16px;border-radius:8px;border:0;cursor:pointer;font:inherit}.cancel{background:#f3efeb;color:#685f58}@media(max-width:900px){aside{width:72px;padding:20px 10px}.brand{padding:0 7px 25px}.brand div,.store,nav button{font-size:0}.brand small{display:none}nav button{height:45px}main{margin-left:72px;padding:25px 20px}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}@media(max-width:600px){main{padding:20px 12px}header{align-items:flex-start}.today{display:none}.metrics{gap:9px}.metric{padding:13px}.metric b{font-size:22px}.grid{gap:10px}.card{padding:15px}table{display:block;overflow:auto;white-space:nowrap}}
.appointment-alert{display:inline-grid;min-width:18px;height:18px;margin-left:7px;padding:0 5px;border-radius:50%;place-items:center;background:#d9684e;color:#fff;font-size:11px;font-style:normal}.appointment-alert.hidden{display:none}#appointment-toasts{position:fixed;right:26px;bottom:26px;z-index:20;display:grid;gap:10px}.appointment-toast{width:310px;padding:16px 18px;border-radius:12px;background:#332219;color:#fff;box-shadow:0 12px 32px #21110855}.appointment-toast strong{display:block;margin-bottom:7px;color:#f1cf93}.appointment-toast small{color:#d7c1a5}

/* 手机后台：顶部横向菜单，避免固定侧栏占用窄屏空间。 */
@media(max-width:700px){
  body{min-width:0}
  aside{position:sticky;z-index:10;top:0;width:100%;height:auto;padding:10px 12px;display:block}
  .brand{padding:0 3px 9px;font-size:16px}.brand span{width:30px;height:30px;font-size:19px}.brand div{font-size:16px}.brand small,.store{display:none}
  nav{display:flex;gap:6px;overflow-x:auto;padding:1px 0 3px;-webkit-overflow-scrolling:touch}nav button{flex:none;height:auto;padding:9px 11px;font-size:12px;white-space:nowrap}
  main{margin-left:0;max-width:none;padding:18px 14px 34px}
  header{display:block;margin-bottom:18px}header h1{font-size:23px}.header-right{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:13px}.today{display:block;padding:8px 9px;font-size:11px}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:14px}.metric b{font-size:23px}
  .grid{grid-template-columns:1fr;gap:12px;margin-top:14px}.card{padding:15px}.card-head{gap:8px}.card h2{font-size:15px}
  .toolbar{align-items:stretch;flex-wrap:wrap;gap:10px}.toolbar>div{display:flex;width:100%;gap:8px}.toolbar input{width:100%;min-width:0}.toolbar button{white-space:nowrap}
  .row{align-items:flex-start;flex-wrap:wrap;gap:7px}.row .status{margin-left:0}.time{width:auto}
  table{display:block;max-width:100%;overflow-x:auto;white-space:nowrap}th,td{padding:12px 10px;font-size:12px}
  .pagination{justify-content:center;flex-wrap:wrap}.modal{padding:14px}.dialog{max-height:calc(100vh - 28px);padding:20px;overflow:auto}.actions{flex-wrap:wrap}.actions button{flex:1}
  #appointment-toasts{right:12px;bottom:12px;left:12px}.appointment-toast{width:100%;padding:14px 16px}
}
@media(max-width:360px){.brand div{font-size:14px}.metrics{grid-template-columns:1fr}.today{display:none}main{padding-left:10px;padding-right:10px}}
