.lpt-joining { max-width: 1040px; margin: 0 auto; color: var(--text-primary, #0b0b0c); line-height: 1.65; }
.lpt-joining * { box-sizing: border-box; }
.lpt-joining h1, .lpt-joining h2, .lpt-joining h3 { font-family: 'Playfair Display', Georgia, serif; line-height: 1.25; color: inherit; }
.lpt-joining h1 { font-size: clamp(2rem, 5vw, 3.2rem); margin: .6rem 0 1rem; max-width: 700px; }
.lpt-joining h2 { font-size: 1.6rem; margin: 0 0 1rem; }
.lpt-joining h3 { margin: 1.6rem 0 .75rem; font-size: 1.15rem; }
.lpt-joining p { margin: .65rem 0; }
.lpt-hero { background: #0b0b0c; color: #ffffff; padding: clamp(1.5rem, 4vw, 3rem); border-radius: 12px; }
.lpt-hero p { max-width: 670px; color: #e4e7ea; }
.lpt-eyebrow { font-size: .7rem; letter-spacing: .18em; font-weight: 700; color: #c9ced4; }
.lpt-joining section { margin: 2.4rem 0; }
.lpt-links { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1rem 0; align-items: center; }
.lpt-link, .lpt-primary, .lpt-context button { border: 1px solid var(--border, #dadde1); color: var(--text-primary, #0b0b0c); background: var(--bg-card, #fff); border-radius: 6px; padding: .65rem .9rem; font: inherit; font-size: .88rem; text-decoration: none; display: inline-block; cursor: pointer; }
.lpt-primary { background: #8b0000; color: #fff; border-color: #8b0000; }
.lpt-hero .lpt-primary { background: #8b0000; color: #fff; border-color: #8b0000; }
.lpt-hero .lpt-link { color: #ffffff; background: transparent; border-color: #858c95; }
.lpt-paths, .lpt-contacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.lpt-path { display: flex; gap: .8rem; align-items: flex-start; border: 2px solid var(--border, #dadde1); background: var(--bg-card, white); padding: 1.2rem; border-radius: 8px; cursor: pointer; }
.lpt-path input { flex: 0 0 auto; margin-top: .4rem; accent-color: #8b0000; width: 18px; height: 18px; }
.lpt-path strong { display: block; font-size: 1.15rem; }
.lpt-path span span { display: block; font-size: .88rem; }
.lpt-path .lpt-subtitle { font-weight: 600; margin: .3rem 0 .7rem; color: var(--text-secondary, #3e4650); }
.lpt-selected { border-color: #8b0000; box-shadow: 0 0 0 1px #8b0000; }
.lpt-section-head { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: center; margin-bottom: .7rem; }
.lpt-joining select, .lpt-joining textarea, .lpt-joining input:not([type=radio]) { background: var(--bg-card, white); color: var(--text-primary, #0b0b0c); border: 1px solid var(--border, #858c95); border-radius: 5px; padding: .65rem; font: inherit; max-width: 100%; }
.lpt-joining select { display: block; margin-top: .3rem; min-height: 44px; }
.lpt-joining progress { appearance: auto; accent-color: #8b0000; width: 100%; height: 12px; }
.lpt-step { border: 1px solid var(--border, #dadde1); background: var(--bg-card, white); border-radius: 7px; margin: .65rem 0; }
.lpt-step summary { display: flex; gap: .9rem; cursor: pointer; padding: 1rem; list-style: none; align-items: flex-start; }
.lpt-step summary::after { content: '+'; margin-left: auto; }
.lpt-step[open] summary::after { content: '−'; }
.lpt-step small { display: block; color: var(--text-muted, #5b636b); font-size: .8rem; margin-top: .2rem; }
.lpt-number { background: var(--bg-elevated, #f2f3f5); color: var(--text-primary, #0b0b0c); display: inline-flex; width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0; align-items: center; justify-content: center; font-size: .8rem; }
.lpt-done .lpt-number { background: #3e4650; color: white; }
.lpt-step-body { padding: 0 1.2rem 1.2rem; }
.lpt-step-body a:not(.lpt-link), .lpt-contact a { color: var(--text-primary, #8b0000); text-decoration: underline; text-underline-offset: 3px; }
.lpt-helper, .lpt-proof { font-size: .9rem; }
.lpt-lock { font-size: .85rem; border-left: 3px solid #8b0000; padding-left: .8rem; }
.lpt-hint, .lpt-footer { font-size: .82rem; color: var(--text-muted, #5b636b); }
.lpt-context, .lpt-next { padding: 1rem 1.2rem; background: var(--bg-elevated, #f2f3f5); border-left: 3px solid #8b0000; border-radius: 4px; margin: 1rem 0; }
.lpt-contact { padding: 1rem; background: var(--bg-card, white); border: 1px solid var(--border, #dadde1); border-radius: 6px; }
.lpt-contact p { font-size: .86rem; }
.lpt-notes { display: block; margin-top: 1.5rem; }
.lpt-notes textarea { display: block; width: 100%; margin-top: .5rem; resize: vertical; }
.lpt-notice:not(:empty) { padding: .7rem 0; font-size: .9rem; font-weight: 600; }
.lpt-manager { border: 1px solid var(--border, #dadde1); border-radius: 6px; margin: 1rem 0; }
.lpt-manager summary { padding: 1rem; cursor: pointer; font-weight: 600; }
.lpt-manager summary span { float: right; font-size: .85rem; font-weight: 400; }
.lpt-manager form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .7rem; margin-top: 1rem; }
.lpt-manager input { display: block; }
.lpt-entry { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: 1.2rem; margin-bottom: 1.5rem; border: 1px solid var(--border, #dadde1); border-left: 4px solid #8b0000; background: var(--bg-card, white); border-radius: 6px; }
.lpt-entry p { margin: .3rem 0 0; font-size: .85rem; color: var(--text-secondary, #3e4650); }
.lpt-joining :focus-visible { outline: 3px solid #8b0000; outline-offset: 3px; }
@media (max-width: 620px) { .lpt-paths, .lpt-contacts { grid-template-columns: 1fr; } .lpt-entry { align-items: flex-start; flex-direction: column; } .lpt-step-body { padding: 0 1rem 1rem; } .lpt-section-head { display: block; } }
@media print { body { background: white !important; color: black !important; } body:has(.lpt-joining) .sidebar, body:has(.lpt-joining) .floating-sos-btn, .lpt-joining button, .lpt-manager, .lpt-notice { display: none !important; } .lpt-joining { max-width: none; } .lpt-hero { background: white; color: black; border-bottom: 2px solid black; } .lpt-hero p, .lpt-eyebrow { color: black; } .lpt-step { break-inside: avoid; } .lpt-step:not([open]) > .lpt-step-body { display: block; content-visibility: visible; } .lpt-links a { border: 0; padding: 0; } }

.lpt-login-recruit { justify-content: center; margin: 1.5rem 0; }
.lpt-sidebar-recruit { padding: .75rem 1rem; }
.lpt-sidebar-recruit a { display: block; text-align: center; }
.lpt-sidebar-recruit a + a { margin-top: .5rem; }
.lpt-contact .lpt-primary { color: #fff; text-decoration: none; }
.lpt-contact > .lpt-link { margin: .3rem .3rem .3rem 0; }
