:root{--primary: #1E5EFF;--primary-dark: #0B2447;--success: #0F6E56;--danger: #A32D2D;--bg: #F5F7FA;--card: #ffffff;--border: #E3E8F0;--text: #2C2C2A;--muted: #888780}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Microsoft YaHei,PingFang SC,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.6}.page{max-width:520px;margin:0 auto;padding:16px 16px 90px;min-height:100vh}.page.wide{max-width:1100px}.app-nav{position:fixed;bottom:0;left:0;right:0;z-index:99;display:flex;background:#fff;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.app-nav a{flex:1;text-align:center;padding:10px 0;font-size:13px;color:var(--muted);text-decoration:none}.app-nav a.router-link-active{color:var(--primary);font-weight:600}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:14px}.header{text-align:center;padding:20px 0 8px}.header h1{font-size:19px;color:var(--primary-dark)}.header p{font-size:13px;color:var(--muted);margin-top:4px}label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:15px;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary)}.btn{display:inline-block;width:100%;padding:12px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-size:16px;cursor:pointer;margin-top:16px}.btn:active{opacity:.85}.btn.secondary{background:#fff;color:var(--primary);border:1px solid var(--primary)}.btn.success{background:var(--success)}.btn.danger{background:var(--danger)}.btn.small{width:auto;padding:8px 16px;font-size:14px;margin-top:0}.btn:disabled{opacity:.5;cursor:not-allowed}.tag{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px}.tag.PENDING{background:#faeeda;color:#854f0b}.tag.APPROVED{background:#e1f5ee;color:#0f6e56}.tag.REJECTED{background:#fcebeb;color:#a32d2d}.tag.CHECKED_IN{background:#e6f1fb;color:#185fa5}.tag.CHECKED_OUT{background:#f1efe8;color:#5f5e5a}.info-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--border);font-size:14px}.info-row:last-child{border-bottom:none}.info-row .k{color:var(--muted)}.msg{border-radius:10px;padding:12px 14px;font-size:14px;margin:10px 0}.msg.ok{background:#e1f5ee;color:#0f6e56}.msg.err{background:#fcebeb;color:#a32d2d}table.tbl{width:100%;border-collapse:collapse;font-size:13px;background:#fff}table.tbl th{background:var(--primary-dark);color:#fff;padding:8px 10px;text-align:left;font-weight:500}table.tbl td{padding:8px 10px;border-bottom:1px solid var(--border)}table.tbl tr:hover td{background:#f2f6fc}.toolbar{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}.stat .num{font-size:26px;font-weight:500;color:var(--primary-dark)}.stat .lbl{font-size:13px;color:var(--muted)}.tabs{display:flex;gap:8px;margin-bottom:14px}.tabs button{padding:8px 18px;border:1px solid var(--border);background:#fff;border-radius:20px;cursor:pointer;font-size:14px}.tabs button.on{background:var(--primary);color:#fff;border-color:var(--primary)}
