/* Base elements and global helpers
   Extracted from index.html to keep PWA visual ownership explicit. */

body{font-family:var(--font-family-base);margin:24px;max-width:880px}
    h1,h2{margin:var(--space-3) 0}
    .card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);margin:var(--space-6) 0}
    .row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}
    .input{padding:var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-md);min-width:260px}
    .btn{padding:var(--space-4) var(--space-control-x);border-radius:var(--radius-md);border:1px solid var(--border-control);background:var(--surface-muted);cursor:pointer}
    .btn.primary{background:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}
    .msg{font-size:var(--font-size-sm);color:var(--text-subtle);margin-left:var(--space-3)}
    .hidden{display:none}
    .inline-notice{margin-top:var(--space-5);padding:var(--space-control-x) var(--space-6);border:1px solid var(--color-primary-border);border-radius:var(--radius-lg);background:var(--color-primary-soft);color:#1e3a8a}
    .inline-notice-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0 0 var(--space-1)}
    .inline-notice-copy{font-size:var(--font-size-md);line-height:1.45;margin:0}
    .inline-notice-actions{display:flex;justify-content:flex-start;margin-top:var(--space-5)}

    html, body { height: 100%; }

    body{
      margin:0;
      max-width:none;
      background:var(--surface-page);
      color:var(--text-primary);
      overflow-x:hidden;
    }

input, select, textarea{
  box-sizing:border-box;
  max-width:100%;
}
.med-form-grid .med-form-field{ min-width:0; }
.med-form-grid input,
.med-form-grid select,
.med-form-grid textarea{
  width:100%;
}
.med-form-grid input[type="file"]{
