/* Audit refinements: legibility, predictable interaction, and a compact mobile flow. */
.microcopy,.form-footnote,.site-footer,.app-main .site-footer,
.plan-features,.payment-consent,.billing-orders li,.billing-orders li strong,
.notice p,.auth-aside>.microcopy,.hero-copy>.microcopy{font-size:14px;line-height:1.65}
.hero-lead,.auth-aside>p:not(.eyebrow):not(.microcopy),.legal-page section p{font-size:16px;line-height:1.7}
.helptext,.fields-form .helptext,.fields-form .errorlist,.fields-form p>span{font-size:14px;line-height:1.6}
.password-field{display:block;position:relative}
.fields-form .password-field input:not([type=checkbox]):not([type=radio]):not([type=file]){padding-right:96px}
.password-toggle{position:absolute;right:1px;top:50%;transform:translateY(-50%);min-width:84px;min-height:44px;border:0;border-radius:5px;background:transparent;color:#2456a6;font-family:inherit;font-size:13px;font-weight:600;line-height:1;cursor:pointer}
.password-toggle:hover{background:#edf3ff}
.form-footnote{margin-top:22px}
.site-footer{gap:22px;color:#52677d}
.site-footer>div{gap:12px 22px}
.site-footer a,.form-footnote a,.microcopy a{text-decoration:underline;text-underline-offset:3px}
.button,.text-button,.logout-button,.side-nav>a,.arrow-link,.status-filters button{min-height:44px}
.button,.text-button,.public-nav .quiet-link{font-size:14px}
.side-nav>a{font-size:14px}
.sidebar-caption{font-size:11px;letter-spacing:.06em}
.sidebar-note,.account-email{font-size:12px}
.logout-button{font-size:13px}
.button:disabled{cursor:not-allowed;opacity:.65}
.button[aria-busy=true]{opacity:1;cursor:progress}
a,button,summary,input,select{touch-action:manipulation}
:is(a,button,summary,input,select):focus-visible{outline:3px solid #2863af;outline-offset:3px}
.sidebar :is(a,button):focus-visible{outline-color:#a6c7ff}
.quota-title .quota-plan{font-size:16px;line-height:1.45;max-width:260px}
.quota-title>span,.quota-title p,.message,.auth-links,.settings-panel>p{font-size:14px;line-height:1.65}
.quota-stat>span{font-size:13px}
.quota-strip>.text-link{font-size:14px;min-height:44px}
.empty-state h3{font-size:18px}
.empty-state p{font-size:15px;line-height:1.65}
.graduate-code{margin:18px 0;border-top:1px solid var(--line);padding-top:14px}
.graduate-code summary,.upload-help summary{cursor:pointer;padding-block:8px;min-height:44px;font-size:15px}
.graduate-code .fields-form{margin-top:12px}
.plan-top .eyebrow{font-size:12px}
.plan-price span{font-size:14px}
.preview-label{font-size:12px}
.error-page{max-width:640px;margin:72px auto}
.error-page h1{font-size:clamp(28px,4vw,42px);margin-bottom:18px}
.error-page p{font-size:17px;line-height:1.65;margin-bottom:22px}
.error-page .button{margin:0 10px 12px 0}
.form-progress{display:flex;align-items:center;gap:12px;margin:16px 0 0;font-size:14px;color:#28527e;line-height:1.5}
.form-progress::before{content:"";flex:none;width:18px;height:18px;border:2px solid #c7d7ef;border-top-color:#245edb;border-radius:50%;animation:progress-spin .8s linear infinite}
.source-jump{display:inline-block;min-height:44px;padding-block:10px;color:#245edb;text-decoration:underline;text-underline-offset:3px}
.source-records tr:focus{outline:3px solid #2863af;outline-offset:-3px;background:#eef4ff}
.result-next{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px;margin-bottom:25px;border-top:2px solid #4477b5}
.result-next h2{font-size:18px;margin-bottom:6px}
.result-next p{font-size:14px;line-height:1.65;color:#52677d;max-width:780px}
.result-next .button{white-space:nowrap;flex:none}
.sample-links{display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap;margin-top:17px;padding:13px 0;border-top:1px solid var(--line);font-size:14px;color:#52677d}
.sample-links .text-link{font-size:14px}
.upload-intro .sample-links{display:grid;gap:8px;margin-top:24px;padding-top:18px;align-items:start}
.upload-intro .sample-links .text-link{justify-self:start}
@keyframes progress-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:no-preference){
  .button,.side-nav>a,.status-filters button{transition:background-color .16s ease,border-color .16s ease,color .16s ease}
}
@media(prefers-reduced-motion:reduce){.form-progress::before{animation:none;border-color:#245edb;border-radius:3px}}
@media(max-width:900px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar .brand{font-size:21px}.billing-grid{grid-template-columns:1fr}}
@media(max-width:700px){
  .result-next{align-items:stretch;flex-direction:column;padding:18px}
  .result-next .button{justify-content:center;white-space:normal}
  .app-shell{display:block}
  .sidebar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 12px;padding:16px 18px 0}
  .sidebar .brand{font-size:22px}
  .sidebar-bottom{position:static;grid-column:2;grid-row:1;padding:0;margin:0}
  .logout-button{min-height:44px;font-size:12px}
  .side-nav{grid-column:1/-1;grid-row:2;margin:0;gap:5px}
  .side-nav>a{flex:1;justify-content:center;font-size:13px;padding:10px 8px}
  .nav-icon{display:none}
  .summary-card h2{font-size:14px}
  .summary-card p{font-size:12px}
  .summary-card .status{font-size:11px}
  .public-nav .button{min-height:44px;font-size:13px}
  .public-header{flex-wrap:wrap;gap:14px}
  .hero-actions .text-link{font-size:14px;min-height:44px}
  .workflow-grid p,.scope-note p,.status-definitions dd{font-size:15px}
  .upload-controls>.button{font-size:16px}
  .error-page{margin:40px auto}
}
@media(max-width:480px){
  .result-summary{grid-template-columns:1fr;gap:9px}
  .summary-card{display:grid;grid-template-columns:80px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:3px 12px;padding:12px 15px;min-height:68px}
  .summary-card .status{grid-column:1;grid-row:1/3;justify-self:start}
  .summary-card>strong{grid-column:3;grid-row:1/3;align-self:center;margin:0;font-size:30px}
  .summary-card h2{grid-column:2;grid-row:1;font-size:15px}
  .summary-card p{grid-column:2;grid-row:2;font-size:12px;margin:0}
}
@media(max-width:370px){
  .sidebar{grid-template-columns:1fr;gap:6px}
  .sidebar-bottom{grid-column:1;grid-row:3;padding-bottom:8px}
  .side-nav{padding-bottom:0}
  .logout-button{width:100%;justify-content:flex-end}
  .summary-card{grid-template-columns:69px minmax(0,1fr) auto;gap:3px 8px}
  .summary-card p{font-size:11px}
}

/* The work area scrolls; desktop navigation and account controls stay in place. */
@media(min-width:701px){
  .app-shell{min-height:100dvh}
  .sidebar{position:sticky;top:0;align-self:start;height:100dvh;min-height:0;overflow:hidden;padding:28px 18px 18px}
  .development-banner + .app-shell .sidebar{height:calc(100dvh - 31px)}
  .side-nav{margin-top:42px}
  .sidebar-bottom{margin-top:auto;padding-top:12px}
  .account-mini{padding-top:16px}
  .logout-button{padding:6px 0 0 38px}
}

/* Billing has one primary decision and a separate promo section below it. */
.billing-heading{margin-bottom:20px}
.billing-heading h1{letter-spacing:-.025em}
.billing-heading p{max-width:650px}
.billing-workspace{display:block;margin:0 0 24px}
.payment-method-panel,.billing-orders{margin:0 0 24px}
.billing-promo{margin:0}
.billing-main-plan{padding:32px}
.billing-main-plan .plan-top{margin-bottom:18px}
.billing-main-plan h2{font-size:25px;line-height:1.25;letter-spacing:-.02em}
.billing-main-plan .plan-price{margin:14px 0 0;font-size:38px;line-height:1.25}
.billing-main-plan .plan-price span{font-size:14px}
.plan-term{font-size:13px;font-weight:650;color:#456581}
.plan-pricing-note{margin:11px 0 0;color:#52677d;font-size:14px;line-height:1.6}
.billing-main-plan .plan-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px;margin:28px 0 26px;font-size:14px;line-height:1.5}
.billing-main-plan .microcopy{margin-bottom:20px}
.billing-main-plan .payment-consent{font-size:13px}
.billing-main-plan .button:disabled{background:#e3e9f1;border-color:#d1dbe7;color:#61758b;opacity:1}
.billing-promo{padding:28px}
.billing-promo h2{font-size:20px;letter-spacing:-.015em}
.billing-promo>p{margin:12px 0 22px;color:#52677d;font-size:14px;line-height:1.65}
.billing-promo .fields-form label{font-size:13px}
.promo-entry{display:flex;gap:8px;align-items:stretch}
.promo-entry input{min-width:0;flex:1}
.promo-entry .button{flex:none;padding-inline:15px}
.billing-limits-help{margin-top:22px;scroll-margin-top:22px}
.billing-limits-help h2{font-size:16px;color:#354f6c;margin:0 0 5px}
.billing-limits-help:target{outline:2px solid #7da9de;outline-offset:3px}
.nav-icon svg{display:block;width:18px;height:18px}

@media(max-width:700px){
  .sidebar{position:relative;height:auto;min-height:0;overflow:visible}
  .side-nav{margin-top:0}
  .billing-main-plan{padding:25px}
  .billing-main-plan .plan-features{grid-template-columns:1fr;gap:11px}
}
@media(max-width:480px){
  .side-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
  .side-nav>a{min-width:0;white-space:normal;text-align:center;line-height:1.25}
  .billing-main-plan .plan-price{font-size:34px}
  .billing-promo{padding:23px}
  .promo-entry{flex-direction:column}
  .promo-entry .button{justify-content:center}
}
