body{min-height:100vh;background:radial-gradient(circle at 10% 10%,rgba(13,110,253,.1),transparent 28%),radial-gradient(circle at 90% 15%,rgba(111,66,193,.1),transparent 30%),#f5f7fb}
.app-card{max-width:950px;border-radius:24px;overflow:hidden}
.section-card{padding:20px;border:1px solid #e8edf4;border-radius:18px;background:#fff}
.logo-preview{display:none;max-width:180px;max-height:90px;margin-top:12px;border:1px solid #dee2e6;border-radius:9.6px;padding:8px;background:#fff}
.preview-modal{border-radius:18px;overflow:hidden}
.preview-page{position:relative;width:fit-content;max-width:100%;margin:0 auto 28px;background:#fff;box-shadow:0 5px 24px rgba(0,0,0,.14);border-radius:4px;overflow:hidden;cursor:crosshair}
.preview-page img{display:block;width:auto;max-width:100%;height:auto;user-select:none;pointer-events:none}
.page-label{text-align:center;font-size:.8rem;color:#667085;margin-bottom:8px}
.stamp-overlay{position:absolute;border:1.6px solid #0d6efd;background:transparent;border-radius:9.6px;pointer-events:none;box-sizing:border-box}
.stamp-overlay::after{content:"ШТАМП ЭП";position:absolute;top:2px;left:4px;color:#0d6efd;font-size:11px;font-weight:700;white-space:nowrap}
.nav-pills .nav-link{border:1px solid #dbe4ef}
.nav-pills .nav-link.active{box-shadow:0 4px 12px rgba(13,110,253,.16)}
#result .alert{border-radius:16px}




/* =========================================================
   Unified typography
   ========================================================= */

:root {
  --font-page-title: 1.75rem;
  --font-section-title: 1rem;
  --font-control: 0.92rem;
  --font-hint: 0.82rem;
  --font-meta: 0.80rem;
  --font-button: 0.95rem;
}

body {
  font-size: 0.92rem;
  line-height: 1.45;
}

.page-title {
  font-size: var(--font-page-title);
  font-weight: 700;
  line-height: 1.2;
}

.section-title {
  font-size: var(--font-section-title);
  font-weight: 700;
  line-height: 1.3;
}

.form-hint {
  font-size: var(--font-hint);
  line-height: 1.45;
  color: #6c757d;
}

.meta-text {
  font-size: var(--font-meta);
  line-height: 1.45;
  color: #6c757d;
}

.app-control,
.form-control,
.form-select {
  font-size: var(--font-control);
  line-height: 1.35;
}

.form-control,
.form-select {
  min-height: 42px;
}

.certificate-select {
  font-size: var(--font-control);
  line-height: 1.3;
  padding-top: 0.48rem;
  padding-bottom: 0.48rem;
}

.certificate-select option {
  font-size: var(--font-control);
  line-height: 1.3;
}

.nav-pills .nav-link {
  font-size: var(--font-control);
  font-weight: 600;
}

.btn {
  font-size: var(--font-button);
}

.main-action {
  min-height: 52px;
  padding: 0.8rem 1rem;
  font-size: 1rem;
  font-weight: 700;
}

.modal-heading {
  font-size: 1.05rem;
  font-weight: 700;
}

.alert {
  font-size: 0.88rem;
}

code {
  font-size: 0.88em;
}


.build-info {
  font-size: 0.72rem;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

@media (max-width: 576px) {
  .build-info {
    font-size: 0.66rem;
  }
}


/* Workflow tabs (PDF and arbitrary-file signing). */
.workflow-tabs .nav-link { font-size: var(--font-control); font-weight:600; padding:.7rem 1rem; }
.workflow-tabs .nav-link.active { color:#0d6efd; }
#fileResult .alert { border-radius:16px; }
@media(max-width:440px){.workflow-tabs .nav-link{padding:.65rem .55rem;font-size:.82rem}}
