*{box-sizing:border-box}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-grad: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);--danger: #dc2626;--danger-bg: #fef2f2;--danger-border: #fecaca;--ok: #16a34a;--ok-bg: #f0fdf4;--ok-border: #bbf7d0;--bg: #eef2f8;--card: #ffffff;--border: #e2e8f0;--muted: #64748b;--text: #0f172a;--radius: 16px;--shadow: 0 4px 20px rgba(15, 23, 42, .08)}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang HK,Hiragino Sans CB,Microsoft JhengHei,Noto Sans TC,sans-serif;background:radial-gradient(1200px 500px at 50% -100px,rgba(59,130,246,.12),transparent),var(--bg);background-attachment:fixed;color:var(--text);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.app{max-width:1080px;margin:0 auto;padding:24px 20px 48px}.topbar{background:var(--primary-grad);color:#fff;border-radius:var(--radius);padding:20px 26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;box-shadow:0 8px 24px #2563eb40}.brand{font-size:28px;font-weight:800;letter-spacing:1px;display:flex;align-items:center;gap:12px}.brand:before{content:"";width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px #ffffff40}.user-info{display:flex;align-items:center;gap:16px;font-size:17px;color:#ffffffeb}.user-info .btn-link{color:#fff;background:#ffffff29;border-radius:999px;padding:8px 18px;font-size:16px;transition:background .15s ease}.user-info .btn-link:hover{background:#ffffff47}.tabs{display:inline-flex;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:999px;padding:6px;margin:22px 0 24px;box-shadow:var(--shadow)}.tabs button{border:none;background:none;padding:12px 32px;font-size:19px;cursor:pointer;color:var(--muted);border-radius:999px;font-family:inherit;font-weight:600;transition:all .15s ease}.tabs button:hover{color:var(--primary);background:#eff6ff}.tabs button.active{color:#fff;background:var(--primary);box-shadow:0 2px 8px #2563eb59}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.form{max-width:580px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.form h2{margin:0 0 8px;font-size:24px;font-weight:800}label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:18px}input,select{font-size:20px;padding:14px 16px;border:2px solid var(--border);border-radius:12px;font-family:inherit;background:#fff;width:100%;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder{color:#a3b1c6;font-weight:400}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #2563eb26}.btn{font-size:18px;font-weight:700;padding:14px 26px;border-radius:12px;border:2px solid var(--border);background:#fff;cursor:pointer;font-family:inherit;transition:all .15s ease}.btn:hover{background:#f8fafc;border-color:#cbd5e1}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 14px #2563eb59}.btn.primary:hover{background:var(--primary-dark)}.btn.big{font-size:21px;padding:16px;width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-link{border:none;background:none;color:var(--primary);cursor:pointer;font-size:17px;padding:6px 10px;font-family:inherit;font-weight:600;border-radius:8px}.btn-link:hover{background:#eff6ff}.btn-link.danger{color:var(--danger)}.btn-link.danger:hover{background:var(--danger-bg)}.hint{font-size:17px;padding:14px 18px;border-radius:12px;font-weight:600}.hint.ok{color:var(--ok);background:var(--ok-bg);border:2px solid var(--ok-border)}.hint.dup{color:var(--danger);background:var(--danger-bg);border:2px solid var(--danger-border)}.hint.checking{color:var(--muted);background:#f8fafc;border:2px solid var(--border)}.error{color:var(--danger);background:var(--danger-bg);border:2px solid var(--danger-border);padding:14px 18px;border-radius:12px;font-weight:600}.success-msg{color:var(--ok);background:var(--ok-bg);border:2px solid var(--ok-border);padding:14px 18px;border-radius:12px;font-weight:600}.result-card{max-width:560px;margin:48px auto;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center;padding:44px 28px}.result-card h2{margin:0;font-size:30px;font-weight:800}.result-icon{width:84px;height:84px;border-radius:50%;background:var(--ok);color:#fff;font-size:44px;line-height:84px;box-shadow:0 8px 24px #16a34a59}.order-label{color:var(--muted);margin-top:10px;font-size:18px;font-weight:600}.order-no{font-size:56px;font-weight:800;letter-spacing:3px;color:var(--primary);font-family:SF Mono,Menlo,Consolas,monospace;text-shadow:0 2px 0 rgba(37,99,235,.15)}.result-meta{color:var(--muted);display:flex;flex-direction:column;gap:6px;font-size:19px}.row{display:flex;align-items:center}.row.gap{gap:12px}.toolbar{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}.chip-row{display:flex;gap:10px;flex-wrap:wrap}.chip{border:2px solid var(--border);background:#fff;border-radius:999px;padding:10px 24px;cursor:pointer;font-size:18px;font-family:inherit;font-weight:600;color:var(--muted);transition:all .15s ease}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px #2563eb4d}.search{flex:1;font-size:19px}.grow{flex:1}.table-wrap{padding:0;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:17px}th,td{padding:15px 18px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{background:#f8fafc;color:var(--muted);font-weight:700;font-size:16px;border-bottom:2px solid var(--border)}tbody tr{transition:background .1s ease}tbody tr:hover{background:#f8fafc}.mono{font-family:SF Mono,Menlo,Consolas,monospace}.empty{text-align:center;color:var(--muted);padding:48px 20px!important;font-size:19px;white-space:normal!important}.pager{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:18px;color:var(--muted);font-size:17px}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:20px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:100%;max-width:460px;display:flex;flex-direction:column;gap:18px;padding:40px 34px}.auth-card h1{text-align:center;margin:0;font-size:30px;font-weight:800;background:var(--primary-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.auth-sub{text-align:center;color:var(--muted);margin:-6px 0 10px;font-size:18px}.users-page{display:flex;flex-direction:column;gap:18px}.section-title{margin:0 0 18px;font-size:22px;font-weight:800}.table-wrap .section-title{padding:24px 24px 0}.add-user-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;align-items:end}.add-user-btn{padding:15px 26px;white-space:nowrap}.pw-input{width:170px;font-size:16px;padding:8px 12px}.edit-input,.edit-select{font-size:16px;padding:8px 12px;width:220px}.edit-input.prefix-edit{width:100px}tr.editing{background:#eff6ff}.prefix-chip{font-family:SF Mono,Menlo,Consolas,monospace;font-weight:700;font-size:15px;color:var(--primary);background:#dbeafe;border-radius:8px;padding:3px 12px}.prefix-edit{width:90px}@media (max-width: 820px){.app{padding:14px 12px 40px}.topbar{padding:16px 20px}.brand{font-size:24px}.tabs{display:flex;width:100%;overflow-x:auto}.tabs button{flex:1;padding:12px 16px;font-size:17px;white-space:nowrap}.card{padding:20px}.order-no{font-size:42px}.toolbar .row.gap{flex-wrap:wrap}.toolbar .btn{width:100%}}
