*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100vh}body{margin:0;font-family:var(--font-sans, "Instrument Sans", system-ui, sans-serif);font-size:14px;line-height:1.45;color:var(--ink, #111633);background:var(--bg, #F3F4F8);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:var(--primary, #3346B8)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus, #7C8CF0);outline-offset:2px}.mono{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--card-padding)}.card h2{font-size:16px;font-weight:600;margin-bottom:14px}.grid{display:grid;gap:var(--gap)}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.row{display:flex;gap:var(--gap);align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch);padding:0 18px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font-weight:600;text-decoration:none}.btn:hover{background:var(--surface-muted)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{color:var(--danger);border-color:var(--danger-border)}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink2);font-weight:500}.field input,.field select,.field textarea{min-height:var(--touch);padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);font-size:14px}.field textarea{padding:10px 12px;min-height:88px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}table.t{width:100%;border-collapse:collapse;min-width:640px}table.t th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:12px 16px;background:var(--surface-muted);border-bottom:1px solid var(--border)}table.t td{padding:14px 16px;border-bottom:1px solid var(--divider)}table.t tr:last-child td{border-bottom:0}table.t tbody tr:hover{background:var(--primary-selected)}
