*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg: #f4f6fb;--surface: #ffffff;--text: #1a1d26;--muted: #6b7280;--primary: #2563eb;--primary-hover: #1d4ed8;--success: #059669;--danger: #dc2626;--border: #e5e7eb;--shadow: 0 8px 24px rgba(15, 23, 42, .08);--radius: 12px;--header-height: 56px;--bottom-nav-height: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}html{-webkit-text-size-adjust:100%}html,body,#app{margin:0;min-height:100%}body{font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;touch-action:manipulation}button{cursor:pointer}.container{width:min(1100px,calc(100% - 32px));margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:8px;padding:10px 16px;min-height:44px;background:var(--primary);color:#fff;transition:background .15s ease}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#eef2ff;color:var(--primary)}.btn-secondary:hover:not(:disabled){background:#dbeafe}.btn-danger{background:#fee2e2;color:var(--danger)}.btn-danger:hover:not(:disabled){background:#fecaca}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:14px;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:8px;padding:10px 12px;min-height:44px;background:#fff;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(37,99,235,.25);border-color:var(--primary)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;background:#eef2ff;color:var(--primary);line-height:1.5}.tag-success{background:#d1fae5;color:var(--success)}.tag-danger{background:#fee2e2;color:var(--danger)}.empty{text-align:center;color:var(--muted);padding:40px 16px}.error-text{color:var(--danger);font-size:14px}@media(max-width:768px){.container{width:calc(100% - 24px)}.card{padding:16px;border-radius:10px;box-shadow:0 4px 16px #0f172a0f}.field input,.field select,.field textarea{font-size:16px}}
