/* Basic, accessible styling */
:root{
  --bg:#022f59;
  --bg-weak:#f7f9fc;
  --text:#0a0a0a;
  --muted:#666;
  --border:#e3e7ef;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#fff;color:var(--text);font-family:system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;}
.site-header{padding:12px 16px;background:var(--bg);color:#fff;display:flex;align-items:center;gap:12px}
.site-header .site-logo{height:40px;display:block}
.container{padding:16px}
.grid{display:grid;gap:16px;grid-template-columns:1fr;}
.panel{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,0.04)}
.panel-title{margin:0 0 12px 0;font-size:18px}
.field{margin-bottom:12px}
.field.inline{display:flex;gap:16px;align-items:center}
label{display:block;font-weight:600;margin-bottom:4px}
input[type="text"], input[type="email"], input[type="url"], input[type="tel"], textarea{width:100%;padding:10px;border:1px solid var(--border);border-radius:6px;font-size:14px}
.hint{color:var(--muted);font-size:12px}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
button{background:var(--bg);color:#fff;border:none;border-radius:6px;padding:10px 12px;cursor:pointer}
button:focus{outline:2px solid #000;outline-offset:2px}
button#btnReset{background:#999}

.preview-pane{min-height:300px}
#preview{width:100%;min-height:300px;border:1px solid var(--border);border-radius:6px;background:#fff}

@media (min-width: 900px){
  .grid{grid-template-columns:1fr 1fr}
  #preview{min-height:420px}
}

/* Visually hidden but accessible to SR; we'll also use toast visual divs */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.toast-visual{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:#111;color:#fff;padding:10px 14px;border-radius:8px;box-shadow:0 4px 18px rgba(0,0,0,.18);z-index:9999}
.toast-visual.error{background:#b00020}
