:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f2f1ed;--ink:#0b0b0b;--ink-2:#52514e;--muted:#6f6d68;--grid:#e1e0d9;--border:#0b0b0b1a;--accent:#256abf;--accent-ink:#fff;--up:#006300;--down:#c62f2f;--error:#b42323;--c0:#ebeae5;--green-1:#6cc283;--green-2:#40a85d;--green-3:#2b8546;--green-4:#1a5c30;--blue-1:#86b6ef;--blue-2:#5598e7;--blue-3:#256abf;--blue-4:#104281;--orange-1:#f29d5a;--orange-2:#e8742a;--orange-3:#c55a0e;--orange-4:#8c3b06;--red-1:#f0a09e;--red-2:#e66767;--red-3:#c93a3a;--red-4:#8f2222;color:var(--ink);background:var(--page);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232321;--ink:#f0efec;--ink-2:#c3c2b7;--muted:#a09e97;--grid:#2c2c2a;--border:#ffffff1a;--accent:#3987e5;--accent-ink:#0b0b0b;--up:#2fbf2f;--down:#ef6b6b;--error:#ff7b7b;--c0:#2c2c2a;--green-1:#1b6b38;--green-2:#2a9a4f;--green-3:#3fc56a;--green-4:#8ae5a3;--blue-1:#184f95;--blue-2:#2a78d6;--blue-3:#5598e7;--blue-4:#9ec5f4;--orange-1:#8a3d0a;--orange-2:#b85512;--orange-3:#e8782a;--orange-4:#fdae6b;--red-1:#8a2b2b;--red-2:#c23d3d;--red-3:#e66767;--red-4:#f4a9a8}}.palette-green{--l1:var(--green-1);--l2:var(--green-2);--l3:var(--green-3);--l4:var(--green-4)}.palette-blue,.diverging{--l1:var(--blue-1);--l2:var(--blue-2);--l3:var(--blue-3);--l4:var(--blue-4)}.palette-orange{--l1:var(--orange-1);--l2:var(--orange-2);--l3:var(--orange-3);--l4:var(--orange-4)}*{box-sizing:border-box}body{background:var(--page);margin:0}h1,h2,h3{margin:0;font-weight:600}h1{white-space:nowrap;align-items:center;gap:.5rem;font-size:1.25rem;display:flex}h2{font-size:1.05rem}h3{margin:.25rem 0 .4rem;font-size:.95rem}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--error);margin:.25rem 0 0}.nowrap{white-space:nowrap}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:.35rem .75rem}button:hover{background:var(--surface-2)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.ghost{background:0 0;border-color:#0000}button.link{color:var(--accent);text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}button.link.small{font-size:.8rem}input[type=text],input[type=search],input[type=password],input[type=date],select{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:0;padding:.35rem .6rem}select.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:1280px;margin:0 auto;padding:1rem 16px 3rem}.topbar{border-bottom:1px solid var(--grid);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 2rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.logo{font-size:1.5rem;line-height:1}.layout{grid-template-columns:270px minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}main{flex-direction:column;gap:1rem;min-width:0;display:flex}@media (width<=900px){.layout{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0;padding:1rem}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;margin-bottom:.75rem;display:flex}.card-header p{margin:.15rem 0 0}.scroll-x{max-width:100%;overflow-x:auto}.userbar{flex-direction:column;flex:420px;gap:.4rem;max-width:640px;display:flex}.user-form,.token-form{gap:.5rem;display:flex}.user-form input,.token-form input{flex:1}.token summary,.display-settings summary{cursor:pointer;color:var(--ink-2);font-size:.85rem}.token[open]{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem .75rem}.sync-line{flex-wrap:wrap;align-items:center;gap:.25rem .75rem;font-size:.9rem;display:flex}.username{font-weight:600}.badge{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-2);border-radius:999px;padding:.05rem .5rem;font-size:.75rem}.progress{background:var(--grid);border-radius:2px;height:4px;margin-top:.35rem;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .4s}.sync p{margin:.25rem 0 0;font-size:.85rem}.segmented{border:1px solid var(--border);background:var(--surface);border-radius:7px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{color:var(--ink-2);background:0 0;border:none;border-radius:0;padding:.3rem .7rem;font-size:.875rem}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.chips{flex-wrap:wrap;gap:.35rem;display:flex}.chip{color:var(--ink-2);border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .65rem;font-size:.85rem;display:inline-flex}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}.chip .count{font-variant-numeric:tabular-nums;opacity:.75;font-size:.75rem}.field{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.field input{width:100%}.field-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);font-size:.75rem;font-weight:600}.field-hint{color:var(--muted);margin:0;font-size:.8rem}.filters{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:1rem;max-height:calc(100vh - 2rem);padding:1rem;display:flex;position:sticky;top:1rem;overflow-y:auto}@media (width<=900px){.filters{order:2;max-height:none;position:static}}.filters-header{justify-content:space-between;align-items:baseline;display:flex}.filters>.field-hint{margin-top:-.75rem}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.range-picker{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.custom-range{align-items:center;gap:.4rem;display:inline-flex}.display-settings{position:relative}.display-settings summary{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:6px;padding:.35rem .75rem;font-size:.875rem}.display-grid{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.9rem;width:min(560px,100vw - 32px);padding:1rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.palette-sample{align-items:center;gap:2px;display:inline-flex}.palette-sample i{border-radius:2px;width:10px;height:10px;display:inline-block}.palette-sample i:last-of-type{margin-right:.35rem}.palette-sample i.lv2{background:var(--l2)}.palette-sample i.lv4{background:var(--l4)}.stats{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;display:grid}@media (width<=600px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0;padding:.7rem .9rem}.stat-label{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.stat-value{font-size:1.5rem;font-weight:600;line-height:1.3}.results-line{gap:.3rem;font-size:1.2rem;line-height:1.6;display:flex}.stat-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.heatmaps{flex-direction:column;gap:.75rem;display:flex}.heatmaps.diverging .legend{gap:2px}.calendar{width:100%;height:auto;display:block}.calendar:focus-visible{outline-offset:4px;border-radius:4px}.axis-label{fill:var(--muted);font-size:9px}.cell{shape-rendering:geometricprecision;cursor:pointer}.cell.lv0{fill:var(--c0)}.cell.lv1{fill:var(--l1)}.cell.lv2{fill:var(--l2)}.cell.lv3{fill:var(--l3)}.cell.lv4{fill:var(--l4)}.cell.ln1{fill:var(--red-1)}.cell.ln2{fill:var(--red-2)}.cell.ln3{fill:var(--red-3)}.cell.ln4{fill:var(--red-4)}.cell.future{opacity:.4}.cell:hover{stroke:var(--ink-2);stroke-width:1px}.cell.selected{stroke:var(--ink);stroke-width:2px}.legend{justify-content:flex-end;align-items:center;gap:3px;font-size:.8rem;display:flex}.legend .muted:first-child{margin-right:.3rem}.legend .muted:last-child{margin-left:.3rem}.legend svg{display:block}.tooltip{z-index:100;pointer-events:none;background:var(--ink);color:var(--surface);white-space:nowrap;border-radius:6px;padding:.4rem .6rem;font-size:.8rem;line-height:1.35;position:fixed;transform:translate(-50%,-100%);box-shadow:0 4px 14px #00000040}.tooltip .muted{color:inherit;opacity:.75}.day-detail .card-header{align-items:flex-start}table.games{border-collapse:collapse;width:100%;font-size:.875rem}table.games th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);border-bottom:1px solid var(--grid);padding:.3rem .5rem;font-size:.75rem;font-weight:600}table.games td{border-bottom:1px solid var(--grid);vertical-align:middle;padding:.35rem .5rem}table.games .num{text-align:right;font-variant-numeric:tabular-nums}table.games .opening{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.piece{border:1px solid var(--ink-2);vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:.4rem;display:inline-block}.piece.white{background:#fff}.piece.black{background:#1b1b1b}.tag{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-2);border-radius:4px;margin-left:.35rem;padding:0 .35rem;font-size:.7rem}.result.win{color:var(--up);font-weight:600}.result.loss{color:var(--down);font-weight:600}.result.draw{color:var(--ink-2)}.up{color:var(--up)}.down{color:var(--down)}.welcome{text-align:center;max-width:560px;margin:3rem auto}.welcome h2{margin-bottom:.75rem;font-size:1.4rem}
