:root{--bg: #f5f6f8;--panel: #ffffff;--border: #e2e5ea;--text: #1f2933;--muted: #6b7280;--primary: #2563eb;--primary-hover: #1d4ed8;--danger: #dc2626;--success-bg: #ecfdf5;--success-text: #065f46;--error-bg: #fef2f2;--error-text: #991b1b}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.page{max-width:960px;margin:0 auto;padding:24px 16px 48px}.page-header h1{font-size:1.6rem;margin:8px 0 20px}.layout{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}@media (max-width: 720px){.layout{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px}.panel h2{margin-top:0;font-size:1.15rem}.field{display:flex;flex-direction:column;margin-bottom:14px}.field label{font-size:.85rem;font-weight:600;margin-bottom:6px}.field input{padding:9px 10px;border:1px solid var(--border);border-radius:6px;font-size:.95rem}.field input:focus{outline:none;border-color:var(--primary)}.field-error{color:var(--danger);font-size:.8rem;margin-top:4px}.form-actions{display:flex;gap:10px}.btn{padding:9px 14px;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem}.btn:hover{background:#f3f4f6}.btn-sm{padding:5px 10px;font-size:.8rem}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{color:var(--danger);border-color:#f3c2c2}.btn-danger:hover{background:var(--error-bg)}.user-table{width:100%;border-collapse:collapse}.user-table th,.user-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);font-size:.9rem}.actions-col{display:flex;gap:8px;white-space:nowrap}.state-message{color:var(--muted);padding:12px 0}.alert{padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:.9rem}.alert-error{background:var(--error-bg);color:var(--error-text)}.alert-success{background:var(--success-bg);color:var(--success-text)}
