:root{--bg:#161512;--surface:#262421;--surface-2:#302e2c;--border:#3d3a36;--text:#e8e6e3;--muted:#9a958e;--accent:#3692e7;--good:#629924;--bad:#c33;--warn:#d59120;--l1:#4a6b26;--l2:#6b9b2f;--l3:#9fd14a;--missed:#a33a2e;--empty:#2f2d2a;--elo:#e0622e;--cell:12px;--gap:3px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#f4f2ef;--surface:#fff;--surface-2:#f0ede9;--border:#dcd7d0;--text:#2b2a28;--muted:#7a756e;--l1:#b6dc8a;--l2:#7fbf3f;--l3:#4e8a1c;--missed:#e05a4a;--empty:#e8e4de;--elo:#d95926;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;padding:0 24px 48px;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:20px 0;display:flex}h1{margin:0;font-size:22px;font-weight:600}.logo{font-size:28px}h2{margin:0 0 12px;font-size:18px}h3{margin:16px 0 6px;font-size:14px;font-weight:600}input,button{font:inherit;color:inherit;border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:6px 12px}button{cursor:pointer;background:var(--accent);border-color:var(--accent);color:#fff}button.secondary,.filters button{background:var(--surface-2);border-color:var(--border);color:var(--text)}.filters button.active{background:var(--accent);border-color:var(--accent);color:#fff}.filters{flex-wrap:wrap;gap:6px;display:flex}.filters .count{opacity:.7;font-size:13px}.period{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;margin-bottom:14px;font-size:14px;display:flex}.period label.active input{border-color:var(--accent);color:var(--text)}#form{gap:8px;display:flex}#status,main{max-width:1200px;margin:0 auto}#status .info,#status .loading{color:var(--muted);align-items:center;gap:10px;margin-bottom:16px;font-size:14px;display:flex}#status button{padding:3px 10px;font-size:13px}.error{background:color-mix(in srgb, var(--bad) 20%, transparent);border:1px solid var(--bad);border-radius:6px;margin-bottom:16px;padding:10px 14px}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}section{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;padding:18px 20px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section-head h2{margin:0}.muted{color:var(--muted)}h2 .muted{font-size:15px;font-weight:400}.good-text{color:var(--good)}.cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.card{background:var(--surface-2);border-left:4px solid var(--border);border-radius:8px;padding:12px 14px}.card.good{border-left-color:var(--good)}.card.bad{border-left-color:var(--bad)}.card .label{color:var(--muted);font-size:13px}.card .value{white-space:nowrap;font-size:22px;font-weight:600}.card .sub{color:var(--muted);font-size:12px}.oldest{color:inherit;align-items:center;gap:20px;display:flex}.oldest:hover{text-decoration:none}.oldest img{border-radius:4px;flex-shrink:0}.oldest>div{flex-direction:column;gap:6px;display:flex}.oldest .big{font-size:32px;font-weight:700}.legend{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;display:flex}.legend i{margin-left:8px}.year{padding-bottom:6px;overflow-x:auto}.year h3{margin-top:12px}.months{height:16px;color:var(--muted);font-size:11px;position:relative}.months span{left:calc(var(--col) * (var(--cell) + var(--gap)));position:absolute}.grid{grid-template-rows:repeat(7, var(--cell));grid-auto-flow:column;grid-auto-columns:var(--cell);gap:var(--gap);width:max-content;display:grid}.grid i,.legend i{width:var(--cell);height:var(--cell);background:var(--empty);border-radius:2px;display:inline-block}.grid i[data-day]{cursor:pointer}.grid i[data-day]:hover,.grid i.selected{outline:2px solid var(--accent);outline-offset:1px}i.out{visibility:hidden}i.l1{background:var(--l1)}i.l2{background:var(--l2)}i.l3{background:var(--l3)}i.missed{background:var(--empty)}#ongoing-chart{position:relative}.chart-stats{margin-bottom:8px;font-size:14px}.chart{display:block;overflow:visible}.chart .grid-line{stroke:var(--border);stroke-width:1px;opacity:.6}.chart .axis{stroke:var(--border);stroke-width:1px}.chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .year-tick{fill:var(--text);font-weight:600}.chart .line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--accent);opacity:.1}.chart .dot{fill:var(--accent);stroke:var(--surface);stroke-width:2px}.chart .end-label{fill:var(--text);font-size:12px;font-weight:600}.chart .line.rating{stroke:var(--elo)}.chart .dot.rating{fill:var(--elo)}.chart .key{stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.chart .key.rating{stroke:var(--elo)}.chart .axis-title{fill:var(--muted);font-size:11px}.chart-stats div+div{margin-top:2px}#chart-series button{color:var(--muted);align-items:center;gap:8px;display:inline-flex}#chart-series button.active{background:var(--surface-2);border-color:var(--border);color:var(--text)}#chart-series button[aria-disabled=true]{cursor:not-allowed}#chart-series i{background:var(--accent);border-radius:2px;width:14px;height:3px}#chart-series .rating i{background:var(--elo)}#chart-series button:not(.active) i{opacity:.35}.chart .crosshair{stroke:var(--muted);stroke-width:1px}.chart-tip{background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:6px;flex-direction:column;gap:2px;padding:6px 10px;font-size:13px;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 4px 16px #00000040}.chart-tip[hidden]{display:none}.chart-tip span{color:var(--muted)}.note{margin:8px 0 0;font-size:12px}.missed-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.missed-list li.more{color:var(--muted);background:0 0}.missed-list li{background:color-mix(in srgb, var(--missed) 22%, transparent);border-radius:999px;padding:2px 10px;font-size:13px}.chip{background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;margin-bottom:10px;padding:2px 4px 2px 12px;font-size:13px;display:inline-flex}.chip button{color:var(--muted);background:0 0;border:none;border-radius:999px;padding:0 8px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom:1px solid var(--border);padding:6px 10px;font-weight:600}th:hover{color:var(--text)}td{border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 10px}tbody tr{cursor:pointer}tbody tr:hover{background:var(--surface-2)}td.num{text-align:right;font-variant-numeric:tabular-nums}.piece{border:1px solid var(--muted);vertical-align:middle;border-radius:50%;width:14px;height:14px;display:inline-block}.piece.white{background:#f0f0f0}.piece.black{background:#222}.title{color:var(--warn);font-weight:600}.badge{background:var(--surface-2);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.win{background:color-mix(in srgb, var(--good) 30%, transparent)}.badge.loss{background:color-mix(in srgb, var(--bad) 30%, transparent)}.badge.draw{background:color-mix(in srgb, var(--muted) 30%, transparent)}.badge.myturn{background:var(--accent);color:#fff}.badge.waiting{color:var(--muted)}#preview{pointer-events:none;z-index:10;border-radius:4px;width:180px;height:180px;position:fixed;right:24px;box-shadow:0 6px 24px #0006}
