.jtv-app,
.jtv-app * { box-sizing: border-box; }
.jtv-app { min-height: 100vh; min-height: 100dvh; margin: -8px; overflow-x: clip; background: var(--jtv-bg); color: var(--jtv-text); font-family: var(--jtv-font); font-size: 16px; line-height: 1.5; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
.jtv-app :where(h1, h2, h3, button, label, legend, strong) { overflow-wrap: normal; word-break: normal; }
.jtv-app :where(p, dd, dt, td, th, a, small) { overflow-wrap: anywhere; }
.jtv-app :where(.jtv-shell, .jtv-main, .jtv-grid, .jtv-stack, .jtv-card, .jtv-inline, .jtv-actions, .jtv-page-header, .jtv-job-card__top) > * { min-width: 0; }
.jtv-app :where(fieldset, form, section, article, aside, nav) { min-width: 0; }
.jtv-app h1, .jtv-app h2, .jtv-app h3, .jtv-app p { margin-top: 0; }
.jtv-app h1 { max-width: 28ch; font-size: clamp(1.7rem, 4vw, 2.4rem); line-height: 1.12; letter-spacing: -.035em; }
.jtv-app h2 { font-size: clamp(1.15rem, 2vw, 1.35rem); line-height: 1.25; letter-spacing: -.018em; }
.jtv-app h3 { font-size: 1rem; line-height: 1.35; }
.jtv-app a { color: var(--jtv-primary); }
.jtv-app img, .jtv-app svg { max-width: 100%; }
.jtv-app button, .jtv-app input, .jtv-app select, .jtv-app textarea { max-width: 100%; font: inherit; }
.jtv-app button { touch-action: manipulation; }
.jtv-app :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) { width: 100%; min-height: var(--jtv-control-height); padding: 11px 13px; border: 1px solid var(--jtv-border-strong); border-radius: var(--jtv-radius-sm); background: var(--jtv-surface); color: var(--jtv-text); transition: border-color var(--jtv-transition), box-shadow var(--jtv-transition), background var(--jtv-transition); }
.jtv-app :where(input[type="checkbox"], input[type="radio"]) { flex: 0 0 auto; width: 20px; height: 20px; min-width: 20px; min-height: 20px; padding: 0; accent-color: var(--jtv-primary); }
.jtv-app :where(input, select, textarea):disabled { background: var(--jtv-surface-muted); color: var(--jtv-muted); cursor: not-allowed; }
.jtv-app :where(input, textarea)::placeholder { color: #7B887F; opacity: 1; }
.jtv-app textarea { min-height: 96px; resize: vertical; }
.jtv-app input:focus, .jtv-app select:focus, .jtv-app textarea:focus { border-color: var(--jtv-primary); outline: 0; box-shadow: 0 0 0 4px var(--jtv-focus); }
.jtv-app button:focus-visible, .jtv-app a:focus-visible, .jtv-app summary:focus-visible, .jtv-app [tabindex]:focus-visible { outline: 3px solid var(--jtv-focus); outline-offset: 3px; }
.jtv-app label { display: block; margin-bottom: var(--jtv-space-2); color: var(--jtv-text); font-size: .9rem; font-weight: 650; }
.jtv-app small, .jtv-app .jtv-muted { color: var(--jtv-muted); }
.jtv-app ::selection { background: var(--jtv-primary-soft); color: var(--jtv-text); }
.jtv-app .jtv-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.jtv-app .jtv-skip-link { position: fixed; top: -60px; left: 12px; z-index: 1000; padding: 10px 14px; background: var(--jtv-text); color: #fff; }
.jtv-app .jtv-skip-link:focus { top: max(12px, env(safe-area-inset-top)); left: max(12px, env(safe-area-inset-left)); }
.jtv-app .jtv-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.jtv-app .jtv-icon { display: inline-block; flex: 0 0 auto; width: var(--jtv-icon-size); height: var(--jtv-icon-size); fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
