body { font-family: monospace; background: #111; color: #ddd; }
#login-view, #invite-view { max-width: 430px; margin: 12vh auto 0; padding: 24px; border: 1px solid #333; border-radius: 8px; background: #171717; }
.login-form { display: grid; gap: 12px; margin: 16px 0; }
.login-form label { display: grid; gap: 6px; }
.invite-form { display: grid; gap: 10px; max-width: 520px; margin: 14px 0; }
.invite-form label, .invite-result label { display: grid; gap: 5px; color: #aaa; }
.invite-result { display: flex; align-items: end; gap: 8px; flex-wrap: wrap; max-width: 900px; margin: 10px 0; }
.invite-result label { flex: 1 1 420px; }
.invite-result input { width: 100%; box-sizing: border-box; }
.invite-list { display: grid; gap: 6px; max-width: 900px; margin: 10px 0; }
.invite-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 8px 10px; border: 1px solid #303030; border-radius: 4px; }
.invite-email { flex: 1 1 280px; overflow-wrap: anywhere; }
.invite-status { padding: 2px 7px; border-radius: 999px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.invite-pending { background: #3b4a2f; color: #cfe6b5; }
.invite-redeemed { background: #294a4a; color: #b7e7e7; }
.invite-expired, .invite-revoked { background: #4a3a2a; color: #e8c7a7; }
#account-bar { display: flex; justify-content: flex-end; align-items: center; gap: 10px; }
a { color: #7cf; }
button { margin-bottom: 8px; }
#scan-status { color: #9cf; min-height: 1.5em; overflow-wrap: anywhere; }
.source-select { display: inline-flex; align-items: center; gap: 8px; margin: 10px 0; color: #aaa; }
.profile-settings { margin: 12px 0; }
.profile-settings summary { color: #9cf; }
#profiles-json { display: block; width: min(100%, 1000px); box-sizing: border-box; margin: 8px 0; font-family: monospace; }
.app-tabs { display: flex; gap: 6px; margin: 14px 0; border-bottom: 1px solid #333; }
.app-tab { border-radius: 4px 4px 0 0; margin: 0; }
.app-tab.active { background: #263b4d; border-color: #5980a0; color: #fff; }
.profile-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; margin: 12px 0; }
.profile-toolbar label { display: grid; gap: 4px; color: #aaa; }
.delete-profile-button { border-color: #704040; color: #ffaaaa; }
.profile-editor { display: flex; flex-direction: column; align-items: stretch; gap: 12px; max-width: 820px; }
.profile-editor [hidden] { display: none !important; }
.profile-editor label { display: flex; flex-direction: column; gap: 5px; color: #aaa; width: 100%; }
.profile-editor input, .profile-editor select, .profile-editor textarea { width: 100%; box-sizing: border-box; }
.profile-editor label .meta { font-size: 12px; }
.profile-editor textarea { resize: vertical; min-height: 72px; }
.profile-editor select[multiple] { min-height: 200px; }
.profile-editor .check-label { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.profile-editor .check-label input { width: auto; }
.profile-numbers { display: flex; flex-direction: column; gap: 10px; }
.profile-numbers label { flex: 1; }
.filters { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; margin: 14px 0; }
.filters label { display: grid; gap: 4px; color: #aaa; font-size: 12px; }
input, select, textarea, button { background: #1b1b1b; color: #ddd; border: 1px solid #444; border-radius: 4px; padding: 8px; color-scheme: dark; }
input::placeholder, textarea::placeholder { color: #858585; }
button, select, th[data-sort], summary { cursor: pointer; }
button:disabled { cursor: wait; }
.table-wrap { width: 100%; max-height: 75vh; overflow: auto; border: 1px solid #333; }
#items-table thead tr[hidden] { display: none; }
table { width: 100%; min-width: 1650px; border-collapse: collapse; font-size: 13px; }
th, td { border-bottom: 1px solid #303030; padding: 9px 10px; text-align: left; vertical-align: top; }
th { position: sticky; top: 0; z-index: 1; background: #202020; color: #aaa; white-space: nowrap; }
th[data-sort] { cursor: pointer; user-select: none; }
th[data-sort]:hover { color: #fff; }
th[data-direction="ascending"]::after { content: "  ^"; color: #7cf; }
th[data-direction="descending"]::after { content: "  v"; color: #7cf; }
tbody tr:hover { background: #1a1d20; }
.item-cell { min-width: 240px; max-width: 320px; }
.item-cell a { font-weight: bold; }
.listing-description { margin-top: 6px; }
.listing-description summary { color: #9cf; cursor: pointer; }
.listing-description-text { max-width: 520px; max-height: 260px; margin-top: 6px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: #bbb; font-weight: normal; }
.action-cell { min-width: 150px; }
.action-cell button + button { margin-left: 6px; }
.assessment { min-width: 300px; max-width: 460px; line-height: 1.5; }
.repair-plan { margin-top: 8px; padding-top: 6px; border-top: 1px solid #444; }
.repair-plan summary { color: #9cf; cursor: pointer; }
.repair-plan ul { margin: 4px 0 8px; padding-left: 20px; }
.repair-plan section { margin-top: 7px; }
.repair-plan p { margin: 6px 0; }
.value-research { margin-top: 8px; padding-top: 6px; border-top: 1px solid #444; }
.value-research summary { color: #9fdaaf; cursor: pointer; }
.value-research ul { margin: 5px 0 8px; padding-left: 20px; }
.value-research li { margin: 6px 0; overflow-wrap: anywhere; }
.value-search-button { border-color: #54785b; color: #b9edc3; white-space: nowrap; }
#value-search-status { color: #a9d5b2; }
.investigate-button { border-color: #4a6780; color: #bde2ff; white-space: nowrap; }
.investigate-button:disabled { opacity: .9; cursor: wait; }
.ignore-button { border-color: #5a4a4a; color: #d9b0b0; white-space: nowrap; }
.ignore-button:hover { border-color: #8a5a5a; color: #ffd0d0; }
.ignored-badge { display: inline-block; padding: 3px 7px; margin: 0 5px 3px 0; border-radius: 3px; background: #4a4a4a; color: #ddd; font-size: 11px; font-weight: bold; letter-spacing: .08em; }
.ignored-row { opacity: .6; }
#listing-status { margin-left: 10px; }
.spinner { display: inline-block; width: 10px; height: 10px; margin-right: 7px; border: 2px solid #47657a; border-top-color: #bde2ff; border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.profit { font-weight: bold; white-space: nowrap; }
.max-bid { color: #82dfa0; font-weight: bold; white-space: nowrap; }
.end-date { white-space: nowrap; }
.end-date.ending-soon { color: #ffd166; font-weight: bold; }
.end-date.ending-urgent { color: #ff8d88; }
.meta { color: #888; }
.ok { color: #6d6; }
.no { color: #655; }
.ai { color: #cb6; }
.ai-score { display: inline-block; padding: 2px 7px; margin: 0 6px 3px 0; border-radius: 999px; color: #111; font-weight: bold; }
.hot-badge { display: inline-block; padding: 3px 7px; margin: 0 5px 3px 0; border-radius: 3px; background: #ff542e; color: #fff; font-size: 11px; font-weight: bold; letter-spacing: .08em; }
.score-low { background: #ff8d88; }
.score-medium { background: #ffd166; }
.score-high { background: #82dfa0; }
.error { color: #f88; overflow-wrap: anywhere; }
.warning { color: #ffc46b; display: inline-block; margin-top: 4px; }
