:root{--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--accent: #0284c7;--accent-hover: #0369a1;--danger: #dc2626;--success: #16a34a}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}html{-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-tap-highlight-color:transparent;overflow-x:hidden}img,svg{max-width:100%;height:auto}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,.btn{font:inherit;background:var(--accent);color:#0b1220;border:0;padding:.6rem 1rem;min-height:40px;border-radius:6px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;white-space:nowrap;touch-action:manipulation}button:hover,.btn:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}button.ghost:hover{background:var(--surface)}button.danger{background:var(--danger);color:#fff}input,select,textarea{font:inherit;font-size:16px;background:var(--surface);color:var(--text);border:1px solid var(--border);padding:.6rem .7rem;min-height:40px;border-radius:6px;width:100%;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem}@media(max-width:600px){.card{padding:1rem;border-radius:8px}}.error{color:var(--danger);font-size:.85rem;margin-top:.5rem}.muted{color:var(--muted)}.field{margin-bottom:.9rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.75rem}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:500;font-size:.8rem;text-transform:uppercase}@media(max-width:600px){th,td{padding:.5rem}}
