  :root{
    --blue:#19377F; --blue-bg:#E6F1FB; --green:#075A4A; --green-bg:#E1F5EE;
    --amber:#FFD60A; --amber-bg:#FFF3C4; --gray:#5F5E5A; --gray-bg:#F1EFE8;
    --line:#d0d7de; --text:#1f2328; --mut:#5f5e5a; --bg:#f6f8fa; --card:#ffffff;
  }
  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
  body{margin:0; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
    background:var(--bg); color:var(--text); font-size:14px; line-height:1.6;}
  .wrap{max-width:480px; margin:0 auto; min-height:100vh; background:var(--bg); position:relative; padding-bottom:64px;}
  header{background:var(--blue); color:#fff; padding:12px 14px; display:flex; align-items:center; justify-content:space-between;}
  header h1{font-size:16px; margin:0; font-weight:600;}
  .idbar{background:#fff; border-bottom:1px solid var(--line); padding:8px 14px; display:flex; align-items:center; justify-content:space-between; font-size:13px;}
  .idchip{background:var(--blue-bg); color:var(--blue); padding:3px 10px; border-radius:14px; font-weight:600;}
  .btn{background:var(--blue); color:#fff; border:none; border-radius:8px; padding:8px 12px; font-size:13px; cursor:pointer;}
  .btn.gray{background:var(--gray-bg); color:var(--gray);}
  .btn.green{background:var(--green);}
  .btn.amber{background:var(--amber); color:#1f2328;}
  .btn.sm{padding:4px 9px; font-size:12px; border-radius:6px;}
  .btn.ghost{background:#fff; color:var(--blue); border:1px solid var(--blue);}
  nav{display:flex; overflow-x:auto; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5;}
  nav button{flex:1 0 auto; border:none; background:none; padding:11px 12px; font-size:13px; color:var(--mut); cursor:pointer; white-space:nowrap; border-bottom:2px solid transparent;}
  nav button.on{color:var(--blue); border-bottom-color:var(--blue); font-weight:600;}
  .navdot{display:inline-block; min-width:16px; padding:0 5px; margin-left:4px; border-radius:9px;
    background:var(--amber); color:#1f2328; font-size:11px; line-height:16px; text-align:center; font-weight:700;}
  main{padding:14px;}
  .card{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px; margin-bottom:12px;}
  .card h3{margin:0 0 8px; font-size:14px;}
  .row{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:6px 0;}
  .muted{color:var(--mut); font-size:12px;}
  .pill{display:inline-block; padding:2px 8px; border-radius:10px; font-size:12px; font-weight:600;}
  .pill.ok{background:var(--green-bg); color:var(--green);}
  .pill.wait{background:var(--amber); color:#1f2328;}
  .pill.gray{background:var(--gray-bg); color:var(--gray);}
  .pill.busy{background:#F3E0E4; color:#8D0020;}
  .pill.free{background:var(--green-bg); color:var(--green);}
  .fb{display:inline-block;}
  .fb .btn{margin-left:6px;}
  .grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .stat{background:var(--blue-bg); border-radius:10px; padding:10px; text-align:center;}
  .stat .n{font-size:20px; font-weight:700; color:var(--blue);}
  .stat .l{font-size:12px; color:var(--mut);}
  label{display:block; font-size:12px; color:var(--mut); margin:8px 0 3px;}
  .sel{width:100%; padding:7px 8px; border:1px solid var(--line); border-radius:8px; font-size:13px; background:#fff; color:var(--text); margin-top:3px;}
  input,select{width:100%; padding:8px; border:1px solid var(--line); border-radius:8px; font-size:14px; background:#fff;}
  .modal{position:fixed; inset:0; background:rgba(0,0,0,.4); display:none; align-items:flex-end; justify-content:center; z-index:20;}
  .modal.show{display:flex;}
  .sheet{background:#fff; width:100%; max-width:480px; border-radius:16px 16px 0 0; padding:18px 16px 24px; max-height:88vh; overflow:auto;}
  .sheet h3{margin:0 0 10px;}
  .close{float:right; color:var(--mut); font-size:20px; cursor:pointer; line-height:1;}
  .toast{position:fixed; left:50%; transform:translateX(-50%); bottom:80px; background:#1f2328; color:#fff; padding:10px 16px; border-radius:10px; font-size:13px; z-index:40; opacity:0; transition:opacity .25s; max-width:90%; white-space:pre-line; text-align:center;}
  .toast.show{opacity:.95;}
  .seg{display:flex; gap:6px; margin-bottom:10px; flex-wrap:wrap;}
  .seg button{flex:1; min-width:60px; border:1px solid var(--line); background:#fff; border-radius:8px; padding:7px; font-size:13px; color:var(--mut); cursor:pointer;}
  .seg button.on{background:var(--blue); color:#fff; border-color:var(--blue); font-weight:600;}
  .wdb{display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin-top:4px;}
  .wdb button{border:1px solid var(--line); background:#fff; color:var(--mut); border-radius:8px; padding:7px 0; font-size:13px; cursor:pointer;}
  .wdb button.on{background:var(--blue); color:#fff; border-color:var(--blue); font-weight:600;}
  .cls{border-left:4px solid var(--blue); padding:8px 10px; margin:8px 0; background:#fff; border-radius:0 8px 8px 0;}
  .cls .t{font-weight:600;}
  .chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
  .cpbox{background:var(--blue-bg); border:1px dashed var(--blue); border-radius:10px; padding:10px 12px; font-size:14px; font-weight:600; color:var(--blue); word-break:break-all; user-select:all; -webkit-user-select:all;}
  .chip{font-size:12px; padding:3px 8px; border-radius:8px; background:var(--gray-bg);}
  .chip .st{margin-left:6px;}
  .center{text-align:center; padding:30px 10px; color:var(--mut);}
  .cal{border:1px solid var(--line); border-radius:10px; overflow:hidden; margin-bottom:14px; background:#fff;}
  .cal .cap{background:#1f2d3d; color:#fff; text-align:center; font-weight:600; padding:6px; font-size:14px;}
  .cal .wk,.cal .g7{display:grid; grid-template-columns:repeat(7,1fr);}
  .cal .wk div{padding:4px 0; text-align:center; font-size:12px; color:#fff; background:#33475e;}
  .cal .g7 .cell{min-height:54px; border-top:1px solid var(--line); padding:3px; font-size:12px; overflow:hidden;}
  .cal .g7 .blank{background:#fafbfc;}
  .sp{display:inline-block; font-size:11px; line-height:1.4; padding:0 4px; border-radius:4px; margin:1px 1px 0 0; color:#fff; max-width:100%; white-space:nowrap; vertical-align:top;}
  .banner{background:var(--amber); color:#1f2328; font-size:12px; padding:8px 14px;}
  table{width:100%; border-collapse:collapse; font-size:13px;}
  th,td{border-bottom:1px solid var(--line); padding:8px 6px; text-align:left;}
  th{color:var(--mut); font-weight:600;}
  @media print{ nav,header,.idbar,.banner,.btn,.seg{display:none!important;}
    body{background:#fff;} .wrap{max-width:100%;} .card{border:none; padding:0;} .cls{break-inside:avoid;} .cal{break-inside:avoid;} }
