.lo-wrap { max-width: 720px; margin: 0 auto; padding: 2.5rem 1.25rem 5rem; }
.lo-hero { text-align: center; margin-bottom: 2.25rem; }
.lo-hero h1 {
    font-size: 1.9rem; font-weight: 800; margin: 0 0 0.6rem;
    color: var(--text-primary, #e0e0f0);
}
.lo-hero p {
    font-size: 1rem; color: var(--text-secondary, #c0c0d8);
    max-width: 540px; margin: 0 auto; line-height: 1.6;
}
.lo-card {
    background: var(--bg-card, #13131f);
    border: 1.5px solid var(--border-color, #2a2a3e);
    border-radius: 16px; padding: 1.75rem 1.5rem;
}
.lo-field { margin-bottom: 1.25rem; }
.lo-field:last-of-type { margin-bottom: 0; }
.lo-label {
    display: block; font-size: 0.86rem; font-weight: 600;
    color: var(--text-primary, #e0e0f0); margin-bottom: 0.4rem; line-height: 1.45;
}
.lo-label .req { color: #f87171; margin-left: 2px; }
.lo-hint {
    display: block; font-size: 0.78rem; font-weight: 400;
    color: var(--text-secondary, #94a3b8); margin-top: 3px; line-height: 1.5;
}
.lo-reset-note {
    font-size: 0.9rem; margin-top: 10px;
    padding: 0.6rem 0.75rem; line-height: 1.5;
    border-left: 3px solid var(--primary-accent, #004FFF);
    background: rgba(0,79,255,0.06); border-radius: 6px;
}
.lo-input, .lo-textarea {
    width: 100%; box-sizing: border-box; padding: 0.7rem 0.85rem;
    background: var(--bg, #0d0d16);
    border: 1.5px solid var(--border-color, #2a2a3e);
    border-radius: 9px; color: var(--text-primary, #e0e0f0);
    font-size: 0.92rem; font-family: inherit; transition: border-color 0.15s;
}
.lo-input:focus, .lo-textarea:focus {
    outline: none; border-color: var(--primary-accent, #60a5fa);
}
.lo-textarea { resize: vertical; min-height: 84px; }

/* File drop zone */
.lo-file-zone {
    border: 1.5px dashed var(--border-color, #2a2a3e); border-radius: 10px;
    padding: 1.1rem; text-align: center; cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    background: var(--bg, #0d0d16);
}
.lo-file-zone:hover, .lo-file-zone.drag {
    border-color: var(--primary-accent, #60a5fa);
    background: rgba(96,165,250,0.06);
}
.lo-file-zone .icon { font-size: 1.6rem; display: block; margin-bottom: 0.35rem; }
.lo-file-zone .txt { font-size: 0.86rem; color: var(--text-secondary, #94a3b8); }
.lo-file-picked {
    display: none; align-items: center; gap: 0.6rem; margin-top: 0.6rem;
    padding: 0.6rem 0.75rem; border-radius: 9px;
    background: rgba(96,165,250,0.1);
    border: 1px solid rgba(96,165,250,0.3); font-size: 0.85rem;
}
.lo-file-picked .name {
    flex: 1; min-width: 0; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
    color: var(--text-primary, #e0e0f0);
}
.lo-file-picked .size { color: var(--text-secondary, #94a3b8); font-size: 0.78rem; }
.lo-file-remove {
    background: none; border: none; color: #f87171;
    cursor: pointer; font-size: 1.1rem; padding: 0 4px; line-height: 1;
}

.lo-submit {
    width: 100%; margin-top: 1.5rem; padding: 0.85rem;
    font-size: 0.95rem; font-weight: 700; border-radius: 10px;
    border: none; cursor: pointer;
    background: var(--primary-accent, #60a5fa); color: #0b1220;
    transition: opacity 0.15s, transform 0.1s;
}
.lo-submit:hover:not(:disabled) { opacity: 0.9; }
.lo-submit:active:not(:disabled) { transform: scale(0.99); }
.lo-submit:disabled { opacity: 0.55; cursor: not-allowed; }

.lo-msg {
    display: none; margin-top: 1rem; padding: 0.85rem 1rem;
    border-radius: 10px; font-size: 0.88rem; line-height: 1.55;
}
.lo-msg.error {
    display: block; background: rgba(248,113,113,0.12);
    border: 1px solid rgba(248,113,113,0.35); color: #fca5a5;
}
.lo-success { display: none; text-align: center; padding: 2.5rem 1.5rem; }
.lo-success .icon { font-size: 3rem; display: block; margin-bottom: 0.85rem; }
.lo-success h2 {
    font-size: 1.4rem; font-weight: 700; margin: 0 0 0.6rem;
    color: var(--text-primary, #e0e0f0);
}
.lo-success p {
    color: var(--text-secondary, #c0c0d8); line-height: 1.6;
    margin: 0 auto 1.5rem; max-width: 420px;
}
.lo-back {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.6rem 1.25rem; border-radius: 9px; text-decoration: none;
    font-size: 0.88rem; font-weight: 600;
    border: 1.5px solid var(--border-color, #2a2a3e);
    color: var(--text-primary, #e0e0f0); transition: border-color 0.15s;
}
.lo-back:hover { border-color: var(--primary-accent, #60a5fa); }
.lo-topbar { margin-bottom: 1.25rem; }

/* Honeypot — never visible, never focusable by real users */
.lo-hp {
    position: absolute; left: -9999px; width: 1px; height: 1px;
    opacity: 0; pointer-events: none;
}

@media (max-width: 560px) {
    .lo-wrap { padding: 1.5rem 1rem 3.5rem; }
    .lo-hero h1 { font-size: 1.55rem; }
    .lo-card { padding: 1.25rem 1rem; }
}
