.dir-form { background:#fff; border:1px solid #e5e9f2; border-radius:12px; padding:20px; display:grid; gap:12px; max-width:720px; }
.dir-form label { display:grid; gap:6px; font-weight:600; font-size:14px; }
.dir-form input[type=text], .dir-form input[type=email], .dir-form input[type=url], .dir-form input[type=password], .dir-form select, .dir-form textarea { border:1px solid #cbd5e1; border-radius:8px; padding:10px 12px; font-size:15px; width:100%; }
.dir-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media(max-width:640px){ .dir-grid-2{grid-template-columns:1fr} }
.dir-btn { display:inline-block; border-radius:999px; padding:10px 20px; font-weight:700; text-decoration:none; border:2px solid #0A3DFF; color:#0A3DFF; background:#fff; cursor:pointer; }
.dir-btn-primary { background:#0A3DFF; color:#fff; }
.dir-btn-accent { background:#FFC400; border-color:#FFC400; color:#0A1931; }
.dir-notice { border-left:4px solid #0A3DFF; background:#eef3ff; padding:12px 16px; border-radius:8px; margin:12px 0; }
.dir-notice.success { border-color:#16a34a; background:#ecfdf5; }
.dir-notice.error { border-color:#dc2626; background:#fef2f2; }
.dir-muted { color:#64748b; font-size:13px; }
.dir-table { width:100%; border-collapse:collapse; background:#fff; border-radius:12px; overflow:hidden; }
.dir-table th,.dir-table td { padding:12px; border-bottom:1px solid #eef2f7; text-align:left; }
.dir-auth-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media(max-width:800px){ .dir-auth-grid{grid-template-columns:1fr} }
.dir-google-wrap { border-top:1px dashed #e2e8f0; padding-top:12px; }
