.human-overlay { --human-bg: #fff; --human-text: #17243a; --human-muted: #5d6c81; --human-border: #dce3ed; --human-soft: #f2f5fa; position: fixed; inset: 0; z-index: 1000000; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; padding: 20px; background: rgba(15,23,42,.48); font-family: var(--font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif); color: var(--human-text); }
.human-dialog { box-sizing: border-box; min-width: 0; width: 368px; max-width: 100%; max-height: calc(100dvh - 40px); overflow-y: auto; padding: 22px; border: 1px solid var(--human-border); border-radius: 14px; background: var(--human-bg); box-shadow: 0 20px 64px rgba(0,0,0,.2); }
.human-dialog *, .human-dialog *::before { box-sizing: border-box; }
.human-dialog header { display: flex; justify-content: space-between; align-items: start; gap: 10px; margin: 0 0 18px; }
.human-dialog h2 { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.5; color: var(--human-text); }
.human-dialog p { margin: 6px 0 0; font-size: 13px; line-height: 1.7; color: var(--human-muted); }
.human-dialog button { cursor: pointer; font: inherit; font-size: 13px; border-radius: 7px; }
.human-dialog [data-human-close] { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 0; border: 0; background: transparent; color: var(--human-muted); font-size: 26px; line-height: 1; }
.human-dialog [data-human-close]:hover { background: var(--human-soft); }
.human-images { position: relative; width: 100%; aspect-ratio: 2; overflow: hidden; border-radius: 8px; background: var(--human-soft); user-select: none; }
.human-images img { display: block; width: 100%; height: 100%; pointer-events: none; }
.human-images .human-piece { position: absolute; left: 0; top: 0; width: 17.5%; filter: drop-shadow(0 1px 2px #fff); }
.human-dialog .human-status { min-height: 42px; margin: 12px 0; overflow-wrap: anywhere; }
.human-track { position: relative; height: 48px; border: 1px solid var(--human-border); border-radius: 8px; background: var(--human-soft); }
.human-track > span { position: absolute; inset: 0; display: grid; place-items: center; font-size: 13px; color: var(--human-muted); pointer-events: none; }
.human-track input { position: relative; display: block; appearance: none; -webkit-appearance: none; width: 100%; height: 46px; margin: 0; border: 0; padding: 0; background: transparent !important; box-shadow: none !important; cursor: grab; accent-color: #355cde; touch-action: pan-y; }
.human-track input:active { cursor: grabbing; }
.human-track input::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 44px; height: 44px; border: 1px solid var(--human-border); border-radius: 7px; background: #355cde url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='m8 5 6 6-6 6'/%3E%3C/svg%3E") center no-repeat; box-shadow: 0 1px 5px rgba(15,23,42,.15); }
.human-track input::-moz-range-thumb { width: 42px; height: 42px; border: 1px solid var(--human-border); border-radius: 7px; background: #355cde; }
.human-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.human-dialog footer button { min-height: 40px; padding: 8px 14px; border: 1px solid var(--human-border); background: var(--human-bg); color: var(--human-text); }
.human-dialog [data-human-submit] { border-color: #355cde; background: #355cde; color: #fff; }
.human-dialog button:disabled { opacity: .5; cursor: not-allowed; }
.human-dialog .human-note { margin-top: 14px; font-size: 12px; }
.human-dialog :is(input, button):focus-visible { outline: 2px solid #6484f6; outline-offset: 3px; }
.human-dialog [hidden] { display: none !important; }
[data-theme="dark"] .human-overlay, html.dark .human-overlay { --human-bg: #172235; --human-text: #f1f5fb; --human-muted: #b1bfd2; --human-border: #35455d; --human-soft: #202e44; }
@media (max-width: 400px) { .human-overlay { padding: 16px; } .human-dialog { padding: 18px; } }
