:root { font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif; color: #1d2433; background: #f6f7fb; }
* { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
button { cursor: pointer; border: 0; border-radius: 8px; background: #4c4cf0; color: white; padding: .75rem 1rem; font-weight: 700; }
button.secondary { background: #e9ebf3; color: #252b3c; }
a { color: #4c4cf0; font-weight: 700; text-decoration: none; }
.login-body { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; }
.ranking-form { display:grid; gap:1rem; max-width:760px; }.ranking-form label { display:grid; gap:.4rem; font-weight:700; }.ranking-form textarea { min-height:220px; resize:vertical; }.form-actions { display:flex; gap:.6rem; }.ranking-preview-list { display:grid; gap:.65rem; padding:0; list-style:none; }.ranking-preview-list li { display:grid; grid-template-columns:64px minmax(0,1fr); gap:.45rem .8rem; padding:.7rem 0; border-bottom:1px solid #e5e7ef; }.ranking-preview-list img { grid-row:1 / span 3; width:64px; height:92px; object-fit:cover; border-radius:7px; background:#e7e9f0; }.ranking-preview-list strong,.ranking-preview-list span { min-width:0; }.ranking-preview-controls { display:flex; gap:.35rem; }.ranking-work-picker { display:grid; gap:.4rem; grid-column:1 / -1; padding:.55rem; background:#f4f3ff; border-radius:8px; }.ranking-work-results { display:grid; gap:.35rem; max-height:180px; overflow:auto; }.ranking-work-results button { text-align:left; } :root[data-theme="dark"] .ranking-work-picker { background:#34335c; }
.login-card { background: white; width: min(100%, 390px); padding: 2rem; border-radius: 16px; box-shadow: 0 14px 45px #20285714; }
.eyebrow { margin: 0 0 .35rem; color: #4c4cf0; font-size: .76rem; font-weight: 800; letter-spacing: .11em; }
h1 { margin: 0; font-size: 1.7rem; } h2 { margin-top: 0; font-size: 1.1rem; }
.muted { color: #6e7688; }.error { min-height: 1.3em; color: #c2273f; font-size: .9rem; }
form { display: grid; gap: 1rem; margin-top: 1.5rem; } label { display: grid; gap: .45rem; font-weight: 650; font-size: .9rem; }
input { border: 1px solid #d9ddea; border-radius: 8px; padding: .7rem .8rem; }
.dashboard { max-width: 1040px; margin: 0 auto; padding: 2rem 1.25rem; } header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 2rem; }.header-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; color: #6e7688; font-size: .9rem; }.header-actions a, .header-actions button { min-height: 2.5rem; display: inline-flex; align-items: center; justify-content: center; }.header-actions form { display: contents; margin: 0; }.header-actions #user-email { margin-right: .2rem; }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1rem; }.stats article, .panel { background: white; border-radius: 12px; padding: 1.25rem; box-shadow: 0 3px 16px #2028570b; }.stats span { color: #6e7688; display: block; }.stats strong { font-size: 2rem; margin-top: .25rem; display: block; }
.admin-shortcuts { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1rem; }.admin-shortcut { display:grid; gap:.35rem; min-height:150px; padding:1.15rem; border-radius:12px; background:#4c4cf0; color:#fff; box-shadow:0 3px 16px #20285718; }.admin-shortcut:hover { background:#3d3dd8; }.admin-shortcut span { font-size:.72rem; font-weight:800; letter-spacing:.1em; opacity:.75; }.admin-shortcut strong { font-size:1.15rem; }.admin-shortcut p { margin:0; color:#fff; font-size:.88rem; font-weight:500; opacity:.88; }
table { width: 100%; border-collapse: collapse; } th, td { text-align: left; padding: .85rem .5rem; border-bottom: 1px solid #eef0f6; } th { color: #6e7688; font-size: .8rem; } td { font-size: .92rem; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }.table-wrap { overflow-x: auto; }
@media (max-width: 600px) { .stats,.admin-shortcuts { grid-template-columns: 1fr; } header { align-items: flex-start; flex-direction: column; } .header-actions { width: 100%; justify-content: space-between; } .weight-row { grid-template-columns:1fr; align-items:stretch; }.weight-row button { width:100%; } }

:root[data-theme="dark"] { color: #e8ecf7; background: #151824; } :root[data-theme="dark"] body { background: #151824; } :root[data-theme="dark"] .login-card, :root[data-theme="dark"] .stats article, :root[data-theme="dark"] .panel { background: #222738; box-shadow: none; } :root[data-theme="dark"] input { color: #e8ecf7; background: #171b28; border-color: #444c63; } :root[data-theme="dark"] button.secondary { color: #e8ecf7; background: #343b50; } :root[data-theme="dark"] .muted, :root[data-theme="dark"] .header-actions, :root[data-theme="dark"] .stats span, :root[data-theme="dark"] th { color: #aeb7ca; } :root[data-theme="dark"] th, :root[data-theme="dark"] td { border-color: #353d51; }
.trailer-admin-list { display:grid; gap:.6rem; }.trailer-admin-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.7rem 0; border-bottom:1px solid #e5e7ef; }.trailer-admin-row div { display:grid; gap:.2rem; }:root[data-theme="dark"] .trailer-admin-row { border-color:#353d51; }
.aggregate-result { margin-top:1rem; }.weight-list { display:grid; gap:.75rem; margin-top:1rem; }.weight-row { display:grid; grid-template-columns:120px repeat(4,minmax(130px,1fr)) auto; gap:.55rem; align-items:end; margin:0; padding:.8rem 0; border-bottom:1px solid #e5e7ef; }.weight-row .error { grid-column:1 / -1; margin:0; }.weight-row label { font-size:.78rem; }.weight-row input { min-width:0; }.form-actions label { display:grid; gap:.35rem; font-weight:650; font-size:.85rem; } :root[data-theme="dark"] .weight-row { border-color:#353d51; }
.source-config-list { display:grid; gap:.55rem; margin-top:1rem; }.source-config-row { display:grid; grid-template-columns:minmax(140px,1fr) auto auto; align-items:center; gap:.7rem; padding:.7rem 0; border-bottom:1px solid #e5e7ef; }.source-config-row strong,.source-config-row span { min-width:0; }.status-ready { color:#198754; font-weight:700; }.status-not_configured,.status-fetch_failed { color:#a34b00; font-weight:700; }:root[data-theme="dark"] .source-config-row { border-color:#353d51; }
