/* Every Django page, on top of design.css: the header, the footer and the pieces the pages share. */
* { box-sizing: border-box; }

.wrap { max-width: 720px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
@media (min-width: 640px) { .wrap { padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)); } }
.top { display: flex; align-items: center; gap: 4px; padding-block: 16px; }
.brand { margin-inline-end: auto; display: inline-flex; align-items: baseline; gap: 8px; font-size: var(--type-headline-md-size); font-weight: 700; letter-spacing: var(--type-headline-md-tracking); line-height: var(--type-headline-md-leading); text-decoration: none; color: var(--ink); }
.theme-toggle { display: grid; place-items: center; width: var(--touch); height: var(--touch); padding: 0; border: 0; border-radius: var(--rounded-full); background: none; color: var(--muted); cursor: pointer; }
.theme-toggle:hover { color: var(--ink); }
.theme-toggle svg { width: 24px; height: 24px; }
[data-theme="dark"] .to-dark, :root:not([data-theme="dark"]) .to-light { display: none; }
.brand [lang="ur"] { font: 700 var(--type-wordmark-size)/var(--type-wordmark-leading) var(--face-wordmark); color: var(--muted); }

.hero { padding-block: 40px 24px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.display { margin: 0; font-size: var(--type-display-size); line-height: var(--type-display-leading); letter-spacing: var(--type-display-tracking); }
.lead { margin: 0; max-width: var(--measure); font-size: var(--type-body-lg-size); line-height: var(--type-body-lg-leading); color: var(--muted); }

.note, .helptext, .errorlist, .message { font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-leading); }
.note, .helptext { color: var(--muted); }
.note { margin: 0; }

.label, .card label, .btn, .link, .badge { font-size: var(--type-label-size); font-weight: 600; line-height: var(--type-label-leading); }
.badge { margin: 0; display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px; border-radius: var(--rounded-full); background: var(--primary-soft); color: var(--primary-strong); }

.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--rounded-lg); padding: 16px; display: flex; flex-direction: column; gap: 16px; }
form.card > div { display: flex; flex-direction: column; gap: 8px; }
.input { font: inherit; color: inherit; background: var(--card); border: 1px solid var(--outline); border-radius: var(--rounded-md); min-height: var(--touch); padding: 8px 16px; width: 100%; }
textarea.input { resize: vertical; }
.input[aria-invalid="true"] { border-color: var(--danger); }
.errorlist { list-style: none; margin: 0; padding: 0; color: var(--danger); }

.btn { display: inline-flex; align-items: center; justify-content: center; align-self: flex-start; min-height: var(--touch); padding: 0 16px; border: 0; border-radius: var(--rounded-md); background: var(--primary); color: var(--on-primary); font-family: inherit; text-decoration: none; cursor: pointer; transition: background-color 150ms ease-out; }
.btn:hover { background: var(--primary-strong); }
.btn:disabled { opacity: 0.6; cursor: default; }
.btn.secondary { border: 1px solid var(--outline); background: var(--card); color: var(--ink); }
.btn.secondary:hover { background: var(--page); }
.google { align-self: stretch; gap: 12px; max-width: 400px; }
.google svg { width: 18px; height: 18px; }
.link { min-height: var(--touch); padding: 0 8px; border: 0; background: none; color: var(--primary); font-family: inherit; cursor: pointer; }
.link:hover { color: var(--primary-strong); }

.message { border-radius: var(--rounded-md); padding: 12px 16px; background: var(--card); border: 1px solid var(--line); }
.message.error { background: var(--danger-soft); border-color: transparent; color: var(--ink); }

.prose { max-width: var(--measure); padding-block: 16px 32px; }
.prose h2 { margin: 32px 0 8px; font-size: var(--type-headline-md-size); line-height: var(--type-headline-md-leading); letter-spacing: var(--type-headline-md-tracking); }

.foot { display: flex; flex-direction: column; gap: 12px; margin-top: 64px; padding-block: 40px 32px; border-top: 1px solid var(--line); font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-leading); color: var(--muted); }
.made { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; font-size: var(--type-body-md-size); line-height: var(--type-body-md-leading); color: var(--ink); }
.made [lang="ur"] { margin-left: auto; font-size: var(--type-urdu-size); }
.foot nav { display: flex; gap: 16px; }
.foot nav a { display: inline-flex; align-items: center; min-height: var(--touch); color: var(--muted); }
.heart { width: 1.1em; height: 1.1em; vertical-align: -0.2em; color: var(--primary); }
