/* The business portal (business.py, web_business.py). Customer-facing, same design language as the admin pages: cards, calm tables, no motion.
   Colours come from the site's own variables, so dark mode follows the rest of the site. */
.biz { max-width: 44rem; margin: 0 auto; padding: 0 16px 48px; }
.biz-wide { max-width: 64rem; }
.biz h1 { margin-bottom: .25rem; }
.biz .lead { font-size: 1.0625rem; max-width: 40rem; }
.biz-head { margin-bottom: 1rem; }
.biz-nav { margin: 0 0 1rem; line-height: 2; }
.biz-nav a { white-space: nowrap; padding: .25rem .1rem; }
.biz-status { display: inline-block; font-size: .875rem; padding: .1rem .6rem; border: 1px solid var(--line); border-radius: 999px; }
.biz-approved { border-color: var(--accent-fill); }
.biz-rejected, .biz-suspended { border-color: var(--error); color: var(--error); }
.biz-pending, .biz-claimed { border-style: dashed; }
.biz-list { list-style: none; padding: 0; display: grid; gap: .6rem; }
.biz-list li { display: flex; flex-wrap: wrap; gap: .25rem .75rem; align-items: baseline; }
.biz-form label { display: grid; gap: .25rem; }
.biz-form input[type="text"], .biz-form input[type="email"], .biz-form input[type="url"], .biz-form input[type="number"], .biz-form select, .biz-form textarea,
.biz input[type="text"], .biz input[type="email"], .biz input[type="url"], .biz input[type="number"], .biz select, .biz textarea { width: 100%; max-width: 100%; box-sizing: border-box; min-height: 44px; }
.biz .check { display: flex; flex-direction: row; gap: .5rem; align-items: flex-start; }
.biz .check input { margin-top: .3rem; min-width: 1.1rem; min-height: 1.1rem; }
.lang-pick { border: 1px solid var(--line); border-radius: 8px; padding: .5rem .75rem; }
.lang-pick .check { display: inline-flex; margin-right: 1rem; }
.biz-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.biz-previews { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .biz-previews { grid-template-columns: 1fr 1fr; } }
.sp-card.sp-preview { position: static; max-width: 420px; margin: 0; box-shadow: none; }
.sp-preview .btn-text:disabled { opacity: .6; cursor: default; }
.gate-list { margin: .25rem 0 0 1.25rem; }
.gate-list q { font-weight: 600; }
.biz-links { list-style: none; padding: 0; display: grid; gap: .5rem; }
.biz-links a { display: inline-block; padding: .35rem .25rem; }
.biz-table { width: 100%; }
.biz-table th, .biz-table td { text-align: left; }
.biz-table caption { text-align: left; font-weight: 600; padding: .25rem 0; }
.biz-dl { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1rem; }
.biz-dl dt { color: var(--muted); }
.biz-dl dd { margin: 0; overflow-wrap: anywhere; }
.biz-log { list-style: none; padding: 0; display: grid; gap: .25rem; }
.inline-form { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.biz progress { width: 100%; max-width: 24rem; height: 1rem; accent-color: var(--accent-fill); }
.biz details > summary { cursor: pointer; padding: .5rem 0; min-height: 44px; }
.biz a:focus-visible, .biz button:focus-visible, .biz input:focus-visible, .biz select:focus-visible, .biz textarea:focus-visible { outline: 2px solid var(--accent-fill); outline-offset: 2px; }
.biz [aria-invalid="true"] { border-color: var(--error); }
@media (max-width: 480px) { .biz-dl { grid-template-columns: 1fr; } .lang-pick .check { display: flex; } }
@media (prefers-reduced-motion: reduce) { .biz * { transition: none !important; animation: none !important; } }

/* One-tap targets (44 px): the section links of the dashboard and a link styled as an outline button (the global rule for a.button would paint it white on white). */
.biz-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .35rem; }
.biz a.btn-outline:link, .biz a.btn-outline:visited { color: var(--accent-ink); }
.biz a.btn-outline:hover, .biz a.btn-outline:focus-visible { color: var(--on-accent); }
.biz .check span { min-width: 0; }
.biz-steps { padding-left: 1.25rem; display: grid; gap: .6rem; }
.biz details { border-top: 1px solid var(--line); padding: 0; }
.biz details summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 600; }
.biz details p { margin: 0 0 .75rem; }
.biz input[type="file"] { min-height: 44px; max-width: 100%; }
.biz input[type="file"]::file-selector-button { min-height: 44px; padding: 0 1rem; margin-right: .75rem; }
.biz-steps strong { display: block; }
/* the site's base style covers text, email and select only: the website, link and number fields would otherwise be the browser's white boxes */
.biz input[type="url"], .biz input[type="number"] { padding: 8px 10px; border-radius: 8px; border: 1px solid var(--line); background: var(--bg); color: var(--text); font: inherit; }
.biz input[aria-invalid="true"] { border-color: var(--error); background: var(--error-bg); }
