@import"https://fonts.googleapis.com/css2?family=Fira+Sans:wght@300;400;500;600;700&display=swap";:root{--page-bg: #fff;--chart-bg: rgba(255, 255, 255, .95);--dark-bg: rgba(0, 0, 0, .05);--accent-blue: #3b82f6;--text-primary: #1f2937;--text-secondary: #4b5563;--border-color: rgba(0, 0, 0, .2);--grid-color: rgba(0, 0, 0, .2);--axis-text: #374151;--control-bg: rgba(0, 0, 0, .05);--control-hover: rgba(0, 0, 0, .1);--section-bg: #f3f4f6;--table-heading: #e5e7eb;--tooltip-bg: rgba(255, 255, 255, .95);--point-stroke: rgba(0, 0, 0, .3);--point-hover: rgba(0, 0, 0, .8);--platform-ps5: #737373;--platform-switch: #96ceb4;--platform-xbox: #85e34a;--platform-gog: #fc7eff;--platform-steam: #7ebbff}:root.dark{--page-bg: #262626;--chart-bg: rgba(255, 255, 255, .05);--dark-bg: rgba(0, 0, 0, .2);--text-primary: #e5e7eb;--text-secondary: #9ca3af;--border-color: rgba(255, 255, 255, .2);--grid-color: rgba(255, 255, 255, .4);--axis-text: #e0e0e0;--control-bg: rgba(255, 255, 255, .1);--control-hover: rgba(255, 255, 255, .2);--section-bg: rgba(64, 64, 64, .5);--table-heading: #374151;--tooltip-bg: rgba(0, 0, 0, .9);--point-stroke: rgba(255, 255, 255, .3);--point-hover: rgba(255, 255, 255, .8);--platform-ps5: #eee}.gameplot *{box-sizing:border-box}.gameplot button,.gameplot input{font:inherit}.gameplot .controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) .8fr;gap:15px;margin-bottom:20px;padding:15px;background:var(--control-bg);border-radius:10px;backdrop-filter:blur(10px)}.gameplot .control-section{background:var(--section-bg);padding:12px;border-radius:8px;display:flex;flex-direction:column;min-height:180px;min-width:0}.gameplot .control-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.gameplot .control-title{font-weight:700;color:var(--text-primary);font-size:12px;text-transform:uppercase;letter-spacing:1px}.gameplot .control-buttons{display:flex;gap:4px}.gameplot .filter-btn{background:var(--control-bg);border:1px solid var(--border-color);color:var(--text-primary);padding:3px 8px;border-radius:4px;font-size:10px;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.5px}.gameplot .filter-btn:hover{background:var(--control-hover);color:var(--text-primary)}.gameplot .tag-search-container{margin-bottom:8px}.gameplot .tag-search-input{width:100%;padding:6px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--control-bg);color:var(--text-primary);font-size:11px;outline:none;box-sizing:border-box}.gameplot .tag-search-input::-moz-placeholder{color:var(--text-secondary)}.gameplot .tag-search-input::placeholder{color:var(--text-secondary)}.gameplot .tag-search-input:focus{border-color:#4fc3f7;background:var(--control-hover)}.gameplot .platform-checkboxes,.gameplot .tag-checkboxes,.gameplot [data-role=statusCheckboxes],.gameplot [data-role=ratingCheckboxes]{display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto;flex:1}.gameplot [data-role=ratingCheckboxes]{max-height:none;overflow-y:visible}.gameplot .checkbox-item{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:3px;transition:background .2s}.gameplot .checkbox-item:hover{background:var(--control-bg)}.gameplot .checkbox-item input[type=checkbox]{width:14px;height:14px;accent-color:#4fc3f7}.gameplot .checkbox-item label{font-size:11px;cursor:pointer;color:var(--text-primary);line-height:1.2}.gameplot .reset-section{display:flex;align-items:center;justify-content:center;min-height:auto}.gameplot .reset-all-btn{background:var(--control-bg);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px;border-radius:4px;font-size:10px;font-weight:700;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.5px}.gameplot .reset-all-btn:hover{background:var(--control-hover);color:var(--text-primary)}.gameplot .date-range{display:flex;flex-direction:column;gap:10px}.gameplot .date-input-group{display:flex;gap:5px;flex-direction:row;align-items:center}.gameplot .date-input-group label{font-size:12px;color:var(--text-secondary);letter-spacing:.5px;text-transform:none;min-width:35px}.gameplot input[type=date]{border:none;border-radius:6px;background:#ffffffe6;color:#333;font-size:14px;min-width:0;width:100%;padding:8px;color-scheme:light}.gameplot .chart-container{margin-top:32px;background:var(--chart-bg);border-radius:15px;padding:20px;box-shadow:0 8px 32px #0000001a;backdrop-filter:blur(10px);border:1px solid var(--border-color)}.gameplot .chart{width:100%;overflow:hidden;border-radius:10px;background:var(--dark-bg);display:flex;justify-content:center;align-items:center;height:auto;min-height:300px}.gameplot .tooltip{position:fixed;background:var(--tooltip-bg);color:var(--text-primary);padding:12px 16px;border-radius:8px;font-size:14px;pointer-events:none;box-shadow:0 4px 20px #0000001a;border:1px solid var(--border-color);max-width:300px;z-index:1000}.gameplot .tooltip-title{font-weight:700;font-size:16px;margin-bottom:8px;color:#4fc3f7}.gameplot .tooltip-detail{margin:4px 0;display:flex;justify-content:space-between;align-items:center}.gameplot .tooltip-label{color:var(--text-secondary);margin-right:8px}.gameplot .tooltip-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.gameplot .tooltip-tag{background:#4fc3f74d;color:#4fc3f7;padding:2px 6px;border-radius:12px;font-size:11px}.gameplot .rating-circle{cursor:pointer;transition:all .2s ease;stroke:var(--point-stroke);stroke-width:1}.gameplot .rating-circle:hover{stroke-width:3;stroke:var(--point-hover);filter:brightness(1.2)}.gameplot .axis{font-size:12px;color:var(--text-primary)}.gameplot .axis-label{fill:var(--axis-text);font-size:16px;font-weight:400}.gameplot .grid-line{stroke:var(--grid-color);stroke-dasharray:2,2}.gameplot .zoom-instructions{text-align:center;margin-top:15px;color:var(--text-secondary);font-size:.9em}.gameplot .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.gameplot .stat-card{border:1px solid var(--border-color);background:var(--control-bg);padding:15px;border-radius:10px;text-align:center;backdrop-filter:blur(10px)}.gameplot .stat-value{font-size:2.5em;line-height:1;letter-spacing:.02em;font-weight:500;color:#4fc3f7}.gameplot .stat-label{font-size:.9em;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-top:5px}.gameplot .table-container{border:1px solid var(--border-color);background:var(--chart-bg);border-radius:12px;padding:20px;margin:20px 0;box-shadow:0 4px 20px #0000001a}.gameplot .table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.gameplot .table-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.gameplot .search-container{display:flex;align-items:center;background:var(--dark-bg);border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.gameplot .search-input{background:transparent;border:none;color:var(--text-primary);padding:8px 12px;font-size:14px;outline:none;min-width:200px}.gameplot .search-input::-moz-placeholder{color:var(--text-secondary)}.gameplot .search-input::placeholder{color:var(--text-secondary)}.gameplot .clear-search-btn{background:transparent;border:none;color:var(--text-secondary);padding:8px 10px;cursor:pointer;font-size:12px;transition:color .2s ease}.gameplot .clear-search-btn:hover{color:#ef4444}.gameplot .download-csv-btn{background:var(--accent-blue);border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;color:#fff}.gameplot .download-csv-btn:hover{background:#2563eb;transform:translateY(-1px)}.gameplot .table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid var(--border-color);max-height:500px;overflow-y:auto}.gameplot .games-table{width:100%;border-collapse:collapse;background:var(--dark-bg);color:var(--text-primary);font-size:14px}.gameplot .games-table th{background:var(--table-heading);padding:12px 16px;text-align:left;font-weight:600;border-bottom:2px solid var(--border-color);position:sticky;top:0;z-index:10}.gameplot .games-table th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .2s ease}.gameplot .games-table th.sortable:hover{background:var(--control-hover)}.gameplot .games-table th .sort-indicator{margin-left:8px;opacity:.5}.gameplot .games-table th.sort-asc .sort-indicator:before{content:"▲";opacity:1}.gameplot .games-table th.sort-desc .sort-indicator:before{content:"▼";opacity:1}.gameplot .games-table td{padding:12px 16px;border-bottom:1px solid var(--border-color);vertical-align:top}.gameplot .games-table tbody tr:hover{background:#3b82f61a}.gameplot .games-table tbody tr:nth-child(2n){background:#ffffff05}.gameplot .games-table tbody tr:nth-child(2n):hover{background:#3b82f61a}.gameplot .game-name{font-weight:500;color:var(--text-primary)}.gameplot .game-link{color:var(--accent-blue);text-decoration:none;transition:color .2s ease}.gameplot .game-link:hover{color:#60a5fa;text-decoration:underline}.gameplot .platform-badges{display:flex;flex-wrap:wrap;gap:4px}.gameplot .platform-badge{color:#3b82f6;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid rgba(59,130,246,.3);background:color-mix(in srgb,currentColor 15%,transparent);border-color:color-mix(in srgb,currentColor 30%,transparent)}.gameplot .platform-badge:hover{background:#3b82f64d;transform:translateY(-1px)}.gameplot .rating-cell{font-weight:600;text-align:center}.gameplot .rating-clickable{cursor:pointer;transition:all .2s ease;padding:4px 8px;border-radius:6px}.gameplot .rating-clickable:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.gameplot .rating-very-low{color:#ef4444}.gameplot .rating-low{color:#f97316}.gameplot .rating-medium-low{color:#eab308}.gameplot .rating-medium{color:#84cc16}.gameplot .rating-high{color:#06b6d4}.gameplot .rating-very-high{color:#3b82f6}.gameplot .status-badge{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-align:center;display:inline-block;min-width:70px;cursor:pointer;transition:all .2s ease}.gameplot .status-badge:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.gameplot .status-complete{background:#10b98133;color:#10b981}.gameplot .status-active{background:#3b82f633;color:#3b82f6}.gameplot .status-abandoned{background:#ef444433;color:#ef4444}.gameplot .status-unplayed{background:#9ca3af33;color:var(--text-secondary)}.gameplot .tags-list{display:flex;flex-wrap:wrap;gap:3px;max-width:200px}.gameplot .tag-badge{padding:2px 6px;border-radius:8px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease;background:#ff6b0026;color:#d97706;border:1px solid rgba(255,107,0,.3)}.gameplot .tag-badge:hover{transform:translateY(-1px);background:#ff6b0040;color:#c2410c}.gameplot .hours-cell{text-align:right;font-family:Courier New,monospace;font-weight:500}.gameplot .date-cell{font-family:Courier New,monospace;font-size:13px;color:var(--text-secondary)}.gameplot .table-info{margin-top:15px;text-align:center;color:var(--text-secondary);font-size:14px}.gameplot .aggregation-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}.gameplot .aggregation-btn{background:#3b82f61a;color:#3b82f6;border:2px solid rgba(59,130,246,.3);padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px}.gameplot .aggregation-btn:hover{background:#3b82f633;border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f633}.gameplot .aggregation-btn.active{background:#3b82f64d;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f64d;color:var(--text-primary)}.gameplot .aggregation-btn.active:hover{background:#3b82f666;transform:translateY(-2px)}.gameplot h2{font-size:1.5rem;font-weight:300;text-align:center;margin:0 0 20px}.gameplot .axis text{fill:var(--axis-text);font-size:13px}.gameplot .axis line,.gameplot .axis path,.gameplot .grid line{stroke:var(--grid-color)}.gameplot .grid path{stroke:none}.gameplot .chart svg{display:block;width:100%;height:auto}.gameplot .platform-badge[data-platform=PS5]{color:var(--platform-ps5)}.gameplot .platform-badge[data-platform=Switch]{color:var(--platform-switch)}.gameplot .platform-badge[data-platform=Xbox]{color:var(--platform-xbox)}.gameplot .platform-badge[data-platform=GOG]{color:var(--platform-gog)}.gameplot .platform-badge[data-platform=Steam]{color:var(--platform-steam)}.dark .gameplot .tag-badge{background:#8b45134d;color:#d4a574;border-color:#8b451366}.dark .gameplot .tag-badge:hover{background:#8b451366;color:#e0b584}@media (min-width: 769px){.gameplot .games-table{table-layout:fixed;min-width:950px}.gameplot .games-table th:nth-child(1){width:25%}.gameplot .games-table th:nth-child(2){width:12%}.gameplot .games-table th:nth-child(3){width:8%}.gameplot .games-table th:nth-child(4){width:120px}.gameplot .games-table th:nth-child(5),.gameplot .games-table th:nth-child(6){width:10%}.gameplot .date-cell{white-space:nowrap}.gameplot .game-link,.gameplot .game-name{overflow-wrap:anywhere}}@media (max-width: 1200px){.gameplot .controls{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 768px){.gameplot .controls{grid-template-columns:1fr;padding:10px}.gameplot .control-section{min-height:auto}.gameplot .platform-checkboxes,.gameplot .tag-checkboxes{max-height:80px}.gameplot .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gameplot .stat-card{padding:10px}.gameplot .stat-value{font-size:1.8em}.gameplot .stat-label{font-size:.8em}.gameplot .table-controls{flex-direction:column;align-items:stretch}.gameplot .search-input{min-width:0;width:100%}.gameplot .table-wrapper{max-height:400px}.gameplot .games-table{min-width:700px;font-size:12px}.gameplot .games-table th,.gameplot .games-table td{padding:8px 12px}.gameplot .chart-container,.gameplot .table-container{padding:15px 10px}.gameplot .chart{overflow-x:auto;justify-content:flex-start}.gameplot .chart svg{min-width:700px;flex-shrink:0}.gameplot .aggregation-controls{flex-direction:column}.gameplot .aggregation-btn{justify-content:center}}.gameplot{font-family:Fira Sans,Segoe UI,sans-serif;font-weight:300;line-height:1.5;color:var(--text-primary);min-width:0}.gameplot [hidden]{display:none}
