@import url('design-system.css');

:root {
  --bg: #f3efe8 !important;
  --surface: #e9e4da !important;
  --card: #f8f5ef !important;
  --border: rgba(24, 46, 45, .2) !important;
  --accent: #9b5149 !important;
  --accent2: #244d49 !important;
  --green: #2e6656 !important;
  --yellow: #a86f32 !important;
  --text: #1c302f !important;
  --dim: #687674 !important;
}

html { scroll-padding-top: 88px; }

body {
  font-family: 'DM Sans', 'Noto Sans JP', sans-serif !important;
  background-color: var(--bg) !important;
  background-image:
    linear-gradient(rgba(24, 46, 45, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24, 46, 45, .035) 1px, transparent 1px) !important;
  background-size: 104px 104px !important;
  color: var(--text) !important;
}

@keyframes heroCopyIn {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes heroVisualIn {
  from { opacity: 0; transform: translateX(30px); clip-path: inset(0 0 0 22%); }
  to { opacity: 1; transform: translateX(0); clip-path: inset(0); }
}

@keyframes imageBreathe {
  from { transform: scale(1.035); }
  to { transform: scale(1.075); }
}

header {
  height: 88px;
  padding: 0 4.2vw !important;
  background: rgba(243, 239, 232, .94) !important;
  border-top: 3px solid #193432;
  border-bottom: 1px solid rgba(25, 52, 50, .16) !important;
  backdrop-filter: blur(14px) !important;
}

.logo {
  padding: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: #193432 !important;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.75rem !important;
  font-weight: 600 !important;
  letter-spacing: -.045em !important;
}

.logo::after { content: none; }

.nav-links { gap: clamp(1rem, 3vw, 3.2rem) !important; }
.nav-links a:not(.btn-register) {
  color: #193432 !important;
  font-size: .69rem !important;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.btn-register,
.btn-primary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .75rem 1.4rem !important;
  border: 1px solid #193432 !important;
  border-radius: 0 !important;
  background: #193432 !important;
  box-shadow: none !important;
  color: #f5f1e9 !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  letter-spacing: .07em;
  white-space: nowrap;
  transition: background .2s, color .2s, transform .2s !important;
}

.btn-register:hover,
.btn-primary:hover {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: white !important;
  transform: translateY(-2px) !important;
}

.hero {
  min-height: calc(100vh - 88px);
  padding: clamp(5rem, 10vh, 8rem) 4.2vw 5rem !important;
  text-align: left !important;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  border-bottom: 1px solid var(--border);
}

.hero::before {
  inset: 1.2vw 3.2vw 1.2vw 44% !important;
  z-index: 0;
  border: 1px solid rgba(232, 220, 199, .24);
  background:
    radial-gradient(circle at 76% 32%, rgba(157, 78, 67, .88) 0 12%, transparent 12.3%),
    radial-gradient(circle at 70% 42%, transparent 0 22%, rgba(228, 217, 194, .36) 22.4% 22.7%, transparent 23%),
    radial-gradient(circle at 70% 42%, transparent 0 31%, rgba(228, 217, 194, .25) 31.4% 31.7%, transparent 32%),
    linear-gradient(rgba(226, 216, 194, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(226, 216, 194, .08) 1px, transparent 1px),
    linear-gradient(135deg, #153735, #1c292a) !important;
  background-size: auto, auto, auto, 88px 88px, 88px 88px, auto !important;
}

.hero::after {
  content: 'LoM. / TALENT  —  01\A35.6762° N / 139.6503° E';
  white-space: pre;
  position: absolute;
  z-index: 4;
  right: 6vw;
  bottom: 4.5rem;
  color: rgba(244, 236, 221, .72);
  font-size: .58rem;
  line-height: 1.9;
  letter-spacing: .18em;
}

.hero > * { position: relative; z-index: 2; width: min(38%, 620px); }

.hero .hero-badge,
.hero h1,
.hero .hero-sub,
.hero .hero-actions {
  opacity: 0;
  animation: heroCopyIn .8s cubic-bezier(.22, .7, .2, 1) forwards;
}

.hero .hero-badge { animation-delay: .08s; }
.hero h1 { animation-delay: .16s; }
.hero .hero-sub { animation-delay: .28s; }
.hero .hero-actions { animation-delay: .4s; }

.hero-visual {
  position: absolute !important;
  z-index: 2 !important;
  inset: 1.2vw 3.2vw 1.2vw 44%;
  width: auto !important;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(232, 220, 199, .24);
  background: #193432;
  opacity: 0;
  animation: heroVisualIn 1.1s .12s cubic-bezier(.2, .72, .2, 1) forwards;
}

.hero-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(21, 55, 53, .24), transparent 48%),
    linear-gradient(0deg, rgba(15, 40, 39, .34), transparent 42%);
}

.hero-visual picture,
.hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-visual picture {
  transform: translate3d(0, var(--hero-shift, 0), 0);
  will-change: transform;
}

.hero-visual img {
  object-fit: cover;
  object-position: 56% center;
  filter: saturate(.82) contrast(1.03);
  animation: imageBreathe 12s ease-in-out infinite alternate;
}

.hero-badge {
  justify-content: flex-start;
  width: auto;
  margin-bottom: 2rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: var(--accent2) !important;
  font-size: .65rem !important;
  letter-spacing: .19em;
}

.hero h1 {
  margin-bottom: 1.6rem !important;
  color: #1b302f;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(3.2rem, 6vw, 6.6rem) !important;
  font-weight: 500 !important;
  line-height: .92 !important;
  letter-spacing: -.06em;
}

.hero h1 .gradient {
  background: none !important;
  color: #1b302f !important;
  -webkit-text-fill-color: currentColor !important;
}

.hero h1 .gradient::first-line { color: var(--accent); }

.hero-sub {
  margin: 0 0 2.2rem !important;
  color: #536461 !important;
  font-size: .96rem !important;
  line-height: 1.85 !important;
}

.hero-actions { justify-content: flex-start !important; }

.stats-strip {
  background: #193432 !important;
  border: 0 !important;
  color: #f4eee2;
}

.stat-item {
  padding: 2.1rem 2rem !important;
  border-right: 1px solid rgba(244, 238, 226, .16) !important;
}

.stat-num {
  background: none !important;
  color: #f4eee2 !important;
  -webkit-text-fill-color: currentColor !important;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.7rem, 3vw, 2.7rem) !important;
  font-weight: 500 !important;
}

.stat-label { color: rgba(244, 238, 226, .62) !important; letter-spacing: .04em; }

section { padding: clamp(5rem, 9vw, 9rem) 4.2vw !important; }

.section-label,
.section-title,
.section-sub { text-align: left !important; max-width: 1100px; margin-left: auto !important; margin-right: auto !important; }

.section-label {
  margin-bottom: 1.2rem !important;
  color: var(--accent) !important;
  font-size: .63rem !important;
  letter-spacing: .22em !important;
}

.section-title {
  margin-bottom: .8rem !important;
  color: #193432 !important;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.6rem, 5vw, 5.1rem) !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: -.045em;
}

.section-sub {
  margin-bottom: 3rem !important;
  color: var(--dim) !important;
  font-size: .88rem !important;
}

#features { background: #e8e2d7 !important; counter-reset: strengths; }

.features-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
}

.feature-card {
  counter-increment: strengths;
  min-height: 290px;
  padding: 2rem !important;
  border: 0 !important;
  border-right: 1px solid var(--border) !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: rgba(248, 245, 239, .38) !important;
}

.feature-card::before {
  content: '0' counter(strengths);
  display: block;
  margin-bottom: 3rem;
  color: var(--accent);
  font-size: .7rem;
  letter-spacing: .18em;
}

.feature-card:hover { border-color: var(--border) !important; background: #f5f1e9 !important; transform: none !important; }
.feature-title { color: #193432 !important; font-family: 'Playfair Display', Georgia, serif; font-size: 1.38rem !important; font-weight: 500 !important; }
.feature-desc { color: #5f6d6b !important; font-size: .84rem !important; }

.cta {
  max-width: 1100px !important;
  padding: clamp(3rem, 7vw, 7rem) 2rem !important;
  border: 1px solid #193432 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.cta h2 { color: #193432 !important; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.5rem, 5vw, 5.2rem) !important; font-weight: 500 !important; letter-spacing: -.045em; }
.cta p { color: var(--dim) !important; }
.cta-login-grid {
  display: flex;
  justify-content: center;
  gap: .65rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}

footer {
  padding: 3.5rem 4.2vw !important;
  background: #193432 !important;
  border: 0 !important;
  color: rgba(244, 238, 226, .72) !important;
}

.motion-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity .8s cubic-bezier(.22, .7, .2, 1) var(--reveal-delay, 0ms),
    transform .8s cubic-bezier(.22, .7, .2, 1) var(--reveal-delay, 0ms);
}

.motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.feature-card.motion-reveal.is-visible:hover {
  transform: translateY(-5px) !important;
}

/* Legal pages */
body.legal-page { line-height: 1.8; }

body.legal-page header {
  position: sticky;
  top: 0;
}

body.legal-page .header-sub {
  color: #6a7774 !important;
  font-size: .66rem !important;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

body.legal-page .container {
  width: min(100%, 1180px) !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding: clamp(4.5rem, 9vw, 9rem) 4.2vw clamp(6rem, 10vw, 10rem) !important;
}

body.legal-page .card {
  position: relative;
  width: min(100%, 920px);
  margin-left: auto;
  padding: 0 0 0 clamp(1.5rem, 5vw, 5rem) !important;
  border: 0 !important;
  border-left: 1px solid rgba(25, 52, 50, .22) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.legal-page .card::before {
  content: 'LoM. / DOCUMENT';
  position: absolute;
  top: .5rem;
  right: calc(100% + 2rem);
  width: 180px;
  color: var(--accent);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .18em;
  white-space: nowrap;
}

body.legal-page h1 {
  max-width: 780px;
  margin: 0 0 clamp(2.5rem, 6vw, 5rem) !important;
  background: none !important;
  color: #193432 !important;
  -webkit-text-fill-color: currentColor !important;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(3.4rem, 8vw, 7.2rem) !important;
  font-weight: 500 !important;
  line-height: .94 !important;
  letter-spacing: -.055em;
}

body.legal-page h1[style] {
  margin-top: clamp(4rem, 8vw, 7rem) !important;
  font-size: clamp(2.5rem, 5vw, 4.5rem) !important;
}

body.legal-page h2 {
  margin: 3rem 0 .8rem !important;
  padding: 1rem 0 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(25, 52, 50, .18) !important;
  color: #1d3937 !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: .015em;
}

body.legal-page p,
body.legal-page ul {
  max-width: 760px;
  color: #63726f !important;
  font-size: .94rem !important;
}

body.legal-page hr { border-color: rgba(25, 52, 50, .22) !important; }

body.legal-page .back-link {
  margin-top: 3rem !important;
  padding: .8rem 1.2rem;
  border: 1px solid #193432;
  color: #193432 !important;
  font-size: .72rem !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.legal-page .back-link:hover {
  background: #193432;
  color: #f4eee2 !important;
  opacity: 1 !important;
}

body.legal-page footer p { margin: 0; color: rgba(244, 238, 226, .72) !important; }

/* Registration */
body.registration-page header { position: relative; }
body.registration-page .hero { min-height: 430px; padding-top: 5rem !important; padding-bottom: 5rem !important; }
body.registration-page .hero::before { inset: 1rem 4.2vw 1rem 50% !important; }
body.registration-page .hero > * { width: min(43%, 620px); }
body.registration-page .hero h1 { font-size: clamp(3rem, 6vw, 5.5rem) !important; }
body.registration-page .container { max-width: 1020px !important; padding: 5rem 1.5rem 7rem !important; }
body.registration-page #reg-form { counter-reset: formStep; }
body.registration-page .form-card {
  counter-increment: formStep;
  margin-bottom: 1.2rem !important;
  border: 1px solid rgba(25, 52, 50, .22) !important;
  border-radius: 0 !important;
  background: rgba(248, 245, 239, .86) !important;
}

body.registration-page .form-section-header {
  padding: 1.2rem 1.5rem !important;
  border-bottom: 1px solid var(--border) !important;
  background: #193432 !important;
  color: #f4eee2 !important;
  font-size: .76rem !important;
  letter-spacing: .09em;
}

body.registration-page .form-section-header::before {
  content: '0' counter(formStep) ' /';
  color: #d99385;
  font-size: .68rem;
  letter-spacing: .16em;
}

body.registration-page .form-body { padding: clamp(1.4rem, 4vw, 2.5rem) !important; }
body.registration-page label { color: #213836 !important; }
body.registration-page label .sub-jp,
body.registration-page .sub-jp,
body.registration-page .field-desc,
body.registration-page .form-note { color: #72807d !important; }

body.registration-page input[type=text],
body.registration-page input[type=email],
body.registration-page input[type=tel],
body.registration-page input[type=date],
body.registration-page input[type=number],
body.registration-page select,
body.registration-page textarea {
  min-height: 48px;
  border: 1px solid rgba(25, 52, 50, .24) !important;
  border-radius: 0 !important;
  background: #fdfbf7 !important;
  color: #193432 !important;
}

body.registration-page input:focus,
body.registration-page select:focus,
body.registration-page textarea:focus {
  border-color: var(--accent) !important;
  background: white !important;
  box-shadow: 0 0 0 3px rgba(155, 81, 73, .1);
}

body.registration-page input::placeholder,
body.registration-page textarea::placeholder { color: rgba(25, 52, 50, .35) !important; }
body.registration-page select option { background: white !important; color: #193432; }

body.registration-page .toggle-btn label {
  min-height: 65px;
  border-color: rgba(25, 52, 50, .22) !important;
  border-radius: 0 !important;
  background: #fdfbf7;
  color: #5e6d6a !important;
}

body.registration-page .toggle-btn input:checked + label {
  border-color: #193432 !important;
  background: #193432 !important;
  color: #f4eee2 !important;
}

body.registration-page .file-area {
  border: 1px dashed rgba(25, 52, 50, .42) !important;
  border-radius: 0 !important;
  background: #eee8de;
}

body.registration-page .file-area:hover,
body.registration-page .file-area.dragover { border-color: var(--accent) !important; background: #f6eee7 !important; }
body.registration-page .file-area p { color: #193432 !important; }
body.registration-page .file-area .hint-text { color: #71807d !important; }
body.registration-page #file-name { color: var(--accent) !important; }
body.registration-page .warning-box { border-radius: 0 !important; background: #f5eadc !important; border-color: #c69760 !important; color: #77512c !important; }
body.registration-page .terms-box { border-radius: 0 !important; background: #eee8de !important; color: #5f6d6a !important; }
body.registration-page .terms-box h4 { color: #193432 !important; }
body.registration-page .checkbox-wrapper label { color: #193432 !important; }
body.registration-page .btn-submit { min-width: min(100%, 430px); min-height: 58px; border: 1px solid #193432 !important; border-radius: 0 !important; background: #193432 !important; box-shadow: none !important; color: #f4eee2 !important; letter-spacing: .05em; }
body.registration-page .btn-submit:hover:not(:disabled) { background: var(--accent) !important; border-color: var(--accent) !important; }

@media (max-width: 900px) {
  .hero { min-height: auto; padding-top: 5rem !important; padding-bottom: 25rem !important; }
  .hero::before { inset: auto 4.2vw 2rem !important; height: 20rem; }
  .hero::after { right: 8vw; bottom: 3.5rem; }
  .hero > *, body.registration-page .hero > * { width: min(100%, 720px); }
  .hero-visual {
    inset: auto 4.2vw 2rem !important;
    width: auto !important;
    height: 20rem;
  }
  body.registration-page .hero { padding-bottom: 20rem !important; }
  body.registration-page .hero::before { inset: auto 4.2vw 2rem !important; height: 16rem; }
  .features-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 640px) {
  header { height: 72px; padding: 0 1.25rem !important; }
  .logo { font-size: 1.4rem !important; }
  .nav-links { gap: .65rem !important; }
  .nav-links a:not(.btn-register) { display: none; }
  .btn-register { min-height: 40px; padding: .55rem .8rem !important; font-size: .68rem !important; }
  .header-sub { font-size: .68rem !important; letter-spacing: .08em; }
  .hero { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
  .hero h1 { font-size: clamp(3rem, 16vw, 4.6rem) !important; }
  .hero-sub br { display: none; }
  .hero-visual { inset: auto 1.25rem 1.25rem !important; height: 18rem; }
  .hero-visual img { object-position: 60% center; }
  .stats-strip { display: grid !important; grid-template-columns: 1fr 1fr; }
  .stat-item { min-width: 0 !important; padding: 1.4rem .6rem !important; border-bottom: 1px solid rgba(244,238,226,.16); }
  section { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
  .features-grid { grid-template-columns: 1fr !important; }
  .feature-card { min-height: 240px; }
  .toggle-group { flex-direction: column; }
  body.registration-page .container { padding-left: .85rem !important; padding-right: .85rem !important; }
  body.registration-page .hero h1 { font-size: clamp(2.8rem, 15vw, 4.1rem) !important; }
  body.legal-page .container { padding: 4rem 1.25rem 6rem !important; }
  body.legal-page .card { padding-left: 1.25rem !important; }
  body.legal-page .card::before { position: static; display: block; width: auto; margin-bottom: 1.5rem; }
  body.legal-page h1 { font-size: clamp(3rem, 15vw, 4.6rem) !important; }
  body.legal-page .header-sub { font-size: .58rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .motion-reveal { opacity: 1 !important; transform: none !important; }
  .hero-visual picture { transform: none !important; }
}

/* Shared public UI refinements */
.btn-login-nav,
.btn-secondary,
.logout {
  border-color: #193432 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #193432 !important;
  text-decoration: none !important;
}

.btn-login-nav:hover,
.btn-secondary:hover,
.logout:hover {
  border-color: var(--accent) !important;
  background: var(--accent) !important;
  color: #fff !important;
}

body:not(.legal-page) input,
body:not(.legal-page) select,
body:not(.legal-page) textarea {
  max-width: 100%;
}

body.login-page .login-container { padding: clamp(1rem, 4vw, 2rem) !important; }
body.login-page .form-card {
  border-radius: 0 !important;
  background: rgba(248,245,239,.96) !important;
  box-shadow: 18px 18px 0 rgba(7,28,27,.2) !important;
}
body.login-page .form-card h2 { color: #193432 !important; font-family: 'Playfair Display', Georgia, serif; font-weight: 500 !important; }
body.login-page .field > div[style*='display:flex'] { align-items: stretch; }
body.login-page .field > div[style*='display:flex'] > button { min-height: 48px; border-radius: 0 !important; }
body.login-page input[type=text],
body.login-page input[type=email],
body.login-page input[type=password] {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(25,52,50,.24) !important;
  border-radius: 0 !important;
  background: #fffaf3 !important;
  color: #193432 !important;
}

body.dashboard-page .panel,
body:not(.registration-page) .panel {
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.dashboard-page .job-card,
body:not(.registration-page) .job-card,
.modal-content,
.filter-btn,
.tag-badge,
.status-badge {
  border-radius: 0 !important;
}

body.contract-page {
  background-color: var(--bg) !important;
}
body.contract-page .container { width: min(100%, 900px) !important; padding: 0 1.25rem 4rem !important; }
body.contract-page .hero {
  min-height: 0 !important;
  padding: clamp(3rem, 8vw, 5rem) 0 clamp(2rem, 5vw, 3rem) !important;
  align-items: center !important;
  text-align: center !important;
  border: 0 !important;
}
body.contract-page .hero::before,
body.contract-page .hero::after { content: none !important; }
body.contract-page .hero > * { width: min(100%, 680px) !important; }
body.contract-page .contract-box,
body.contract-page .sign-form-card,
body.contract-page .signed-box { border-radius: 0 !important; box-shadow: none !important; }

body.registration-page .hero:not(:has(.hero-visual)) {
  min-height: 360px !important;
  padding: clamp(4rem, 8vw, 6rem) 1.25rem !important;
  align-items: center !important;
  text-align: center !important;
}
body.registration-page .hero:not(:has(.hero-visual))::before,
body.registration-page .hero:not(:has(.hero-visual))::after { content: none !important; }
body.registration-page .hero:not(:has(.hero-visual)) > * { width: min(100%, 760px) !important; }
body.registration-page .hero:not(:has(.hero-visual)) h1 { font-size: clamp(2.4rem, 8vw, 4.6rem) !important; }

@media (max-width: 640px) {
  header { padding-top: env(safe-area-inset-top) !important; }
  .site-header { height: calc(68px + env(safe-area-inset-top)); }
  .hero { padding-top: 3.5rem !important; }
  .hero h1 { font-size: clamp(2.55rem, 13vw, 3.7rem) !important; line-height: .98 !important; }
  .hero-actions { width: 100% !important; gap: .65rem !important; }
  .hero-actions > a { width: 100%; }
  .hero + .stats-strip { margin-top: 0; }
  .cta { padding: 2.5rem 1.1rem !important; }
  .cta .btn-primary { width: 100%; }
  .cta-login-grid { display: grid; grid-template-columns: 1fr; }
  .cta-login-grid a { width: 100%; }
  body.login-page .form-card { padding: 1.6rem 1rem !important; box-shadow: 10px 10px 0 rgba(7,28,27,.18) !important; }
  body.login-page .field > div[style*='display:flex'] { flex-direction: column; }
  body.login-page .field > div[style*='display:flex'] > button { width: 100%; }
  body.contract-page .container { padding-left: .75rem !important; padding-right: .75rem !important; }
  body.contract-page .contract-scroll-container { height: 55vh !important; padding: 1.1rem !important; font-size: .83rem !important; }
  body.contract-page .contract-header { padding: 1rem !important; gap: .6rem; align-items: flex-start; }
  body.contract-page .scroll-badge { text-align: right; }
  body.contract-page .sign-form-card { padding: 1.25rem !important; }
  body.dashboard-page .container,
  body:not(.registration-page) .container { padding-left: .75rem; padding-right: .75rem; }
  .user-info { min-width: 0; gap: .5rem !important; }
  .user-info > span { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .logout { min-height: 42px; padding: .55rem .7rem; }
}
