body { font-family: monospace; margin: 16px; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.panel-header h2 { margin: 0; }
fieldset { margin-bottom: 12px; }
label { display: inline-block; margin-right: 12px; }
nav { margin-bottom: 12px; }
nav button { font-weight: normal; }
nav button.active { font-weight: bold; text-decoration: underline; }
button[disabled] { opacity: 0.5; cursor: not-allowed; }
#tree { max-height: 320px; overflow-y: auto; border: 1px solid #ccc; margin-top: 8px; }
#tree:empty { border: none; }
#tree ul { list-style: none; padding-left: 18px; }
#log { background: #111; color: #ddd; padding: 8px; height: 280px; overflow: auto; white-space: pre-wrap; line-height: 1.35; overflow-wrap: anywhere; }
.log-line { min-height: 1.35em; }
button { padding: 6px 12px; margin-right: 8px; }
.hidden { display: none; }
#seller_links { display: block; width: 480px; max-width: 100%; font-family: monospace; }
#result { margin: 10px 0; }
.muted { color: #666; }
input.clamped { outline: 1px solid #c33; }
dialog { border: 1px solid #999; padding: 12px; }
dialog label { display: block; margin-bottom: 8px; }
.dialog-actions { margin-top: 8px; }
#price-ranges { display: inline-block; vertical-align: top; }
.price-range-row { display: flex; gap: 6px; align-items: center; margin-bottom: 4px; }
.price-range-row input { width: 70px; }
.price-range-row button { padding: 2px 8px; margin-right: 0; }
.proxy-row { display: flex; gap: 6px; align-items: center; margin-bottom: 4px; }
.proxy-row input { width: 130px; }
.proxy-row button { padding: 2px 8px; margin-right: 0; }
.account-row { display: flex; gap: 6px; align-items: center; margin-bottom: 4px; }
.account-row input { width: 180px; }
.account-row button { padding: 2px 8px; margin-right: 0; }
#config-json { width: 760px; height: 460px; max-width: 80vw; max-height: 70vh; font-family: monospace; }
.config-error { color: #c33; min-height: 1.3em; margin-top: 6px; }
#jobs { list-style: none; padding-left: 0; max-height: 180px; overflow-y: auto; margin: 8px 0 0; }
#jobs li { padding: 2px 0; }
#jobs a { text-decoration: none; }
#jobs a:hover { text-decoration: underline; }
#jobs li.current > a { font-weight: bold; }
.st-running { color: #b58900; }
.st-stopping { color: #b58900; }
.st-done { color: #2a7; }
.st-failed { color: #c33; }
.st-stopped { color: #c33; }
.auth-page { display: grid; min-height: calc(100vh - 32px); place-items: center; }
.auth-card { width: min(420px, 100%); padding: 22px; border: 1px solid #999; }
.auth-card label, .auth-card input { display: block; width: 100%; }
.auth-card input { margin: 4px 0 12px; padding: 6px; }
.auth-error { color: #c33; min-height: 1.3em; }
