:root{--color-background-primary: #121212;--color-background-secondary: #1e1e24;--color-background-card: #25252b;--color-background-button-secondary: #1a1a1a;--color-background-input: #25252b;--color-text-primary: rgba(255, 255, 255, .87);--color-text-secondary: #bbb;--color-text-placeholder: #aaa;--color-text-heading: #e0e0e0;--color-text-button-secondary: rgba(255, 255, 255, .87);--color-text-link: #a0a0ff;--color-text-link-hover: #c0c0ff;--color-primary: #2323be;--color-primary-hover: #3a3ad1;--color-primary-highlight: #a0a0ff;--color-primary-highlight-bg: rgba(160, 160, 255, .2);--color-border-primary: #444;--color-border-secondary: #555;--color-danger: #cc3300;--color-danger-hover-bg: #cc33007a;--button-primary-bg: var(--color-primary);--button-primary-hover-bg: var(--color-primary-hover);--button-secondary-bg: var(--color-background-button-secondary);--font-family-base: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;--line-height-base: 1.5;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-xs: 4px;--spacing-s: 8px;--spacing-m: 12px;--spacing-l: 16px;--spacing-xl: 20px;--spacing-xxl: 30px;--border-radius-small: 4px;--border-radius-medium: 6px;--border-radius-large: 8px;--box-shadow-standard: 0 4px 8px rgba(0, 0, 0, .2);font-family:var(--font-family-base);line-height:var(--line-height-base);font-weight:var(--font-weight-normal);color-scheme:dark;color:var(--color-text-primary);background-color:var(--color-background-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:var(--font-weight-medium);color:var(--color-text-link);text-decoration:inherit;transition:color .2s ease}a:hover{color:var(--color-text-link-hover)}body{margin:0;min-width:320px;min-height:100vh}h1,h2,h3,h4{color:var(--color-text-heading)}button{border-radius:var(--border-radius-large);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:var(--font-weight-medium);font-family:inherit;background-color:var(--button-secondary-bg);color:var(--color-text-button-secondary);cursor:pointer;transition:border-color .25s,background-color .2s ease}.game-list-container{padding:0}.game-list-container h2{font-size:1.5em;margin-bottom:var(--spacing-xl);color:var(--color-text-heading)}.game-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-xl)}.game-item{border:none;border-radius:var(--border-radius-large);text-align:left;cursor:pointer;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;display:flex;flex-direction:column;background-color:transparent;padding:0}.game-item:hover,.game-item:focus{transform:translateY(-4px);box-shadow:var(--box-shadow-standard);outline:none}.game-item:focus-visible{outline:2px solid var(--color-text-link);outline-offset:2px}.game-cover{width:100%;height:auto;aspect-ratio:2 / 3;object-fit:cover;margin-bottom:var(--spacing-m);border-radius:var(--border-radius-medium);background-color:var(--color-background-card)}.game-name{font-size:.95em;font-weight:var(--font-weight-medium);color:var(--color-text-heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;margin-top:auto}.loading,.error,.no-results-message{text-align:center;padding:40px var(--spacing-xl);font-size:1.1em;color:var(--color-text-placeholder)}.error{color:var(--color-danger);font-weight:var(--font-weight-bold)}.pagination-wrapper{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl);margin-top:var(--spacing-xl);padding-top:var(--spacing-l)}.pagination-info-controls{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-l)}.results-per-page-selector{display:flex;align-items:center;gap:var(--spacing-s)}.results-per-page-selector label{font-size:.9em;color:var(--color-text-secondary);white-space:nowrap}.results-per-page-selector select{padding:var(--spacing-xs) var(--spacing-s);font-size:.9em;border-radius:var(--border-radius-small);background-color:var(--color-background-input);color:var(--color-text-primary);border:1px solid var(--color-border-secondary);cursor:pointer;min-width:60px}.results-count-display{font-size:.9em;color:var(--color-text-secondary);margin:0;white-space:nowrap}.pagination-wrapper>.pagination-nav{flex-shrink:0}@media (min-width: 600px){.game-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (min-width: 900px){.game-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (min-width: 1200px){.game-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (max-width: 599px){.pagination-wrapper{flex-direction:column;align-items:stretch}.pagination-info-controls{justify-content:center;width:100%}}.home-page{align-items:center;display:flex;flex-direction:column}.home-section{margin-bottom:40px}.home-section h2{font-size:1.3em;color:#ccc;margin-bottom:15px;font-weight:500;padding-bottom:8px}ul.game-list.home-row{display:flex;overflow-x:auto;padding-bottom:15px;gap:15px;-ms-overflow-style:none;scrollbar-width:none}.home-row::-webkit-scrollbar{display:none}ul.game-list.home-row .game-item{flex:0 0 auto;width:160px}ul.game-list.home-row .game-name{font-size:.9em}.home-page .loading,.home-page .error{padding:60px 20px}@media (max-width: 768px){.home-page{display:block}ul.game-list.home-row .game-item{width:135px}}@media (max-width: 480px){ul.game-list.home-row .game-item{width:100px}}.lightbox-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1100;cursor:pointer}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;justify-content:center;align-items:center;cursor:default;-webkit-user-select:none;user-select:none}.lightbox-content img{display:block;width:100%;height:100%;max-width:80%;max-height:80%;object-fit:contain}.lightbox-content iframe{display:block;border:none;max-width:100%;max-height:100%;object-fit:contain;aspect-ratio:16 / 9;width:80vw;height:auto;max-height:80vh}.lightbox-close{position:absolute;top:-15px;right:-15px;background:none;border:none;color:#fff;font-size:2em;font-weight:700;line-height:1;border-radius:50%;cursor:pointer;display:flex;justify-content:center;align-items:center;z-index:1102}.lightbox-nav{position:relative;background:none;color:#fff;border:none;border-radius:50%;font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1101;display:flex;justify-content:center;align-items:center;transition:background-color .2s ease}.lightbox-nav:disabled{opacity:.3;cursor:default}.embla{position:relative;padding:0;margin-left:auto;margin-right:auto}.embla__viewport{overflow:hidden}.embla__container{display:flex;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-webkit-tap-highlight-color:transparent;margin-left:-10px}.embla__slide{position:relative;flex:0 0 15%;min-width:0;padding-left:10px}.embla__slide__img,.embla__slide .video-thumbnail-container{display:block;height:130px;width:100%;object-fit:cover;border-radius:8px;background-color:#2a2a2a}.embla__slide .video-thumbnail-container img{border-radius:8px}.embla__buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;align-items:center}.embla__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;touch-action:manipulation;text-decoration:none;cursor:pointer;border:0;padding:0;margin:0;box-shadow:inset 0 0 0 1px #444;background-color:#2a2a2a;color:#ccc;width:2rem;height:2rem;z-index:1;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease}.embla__button:disabled{color:#555;cursor:default;opacity:.5}.embla__button:hover:not(:disabled){background-color:#333;color:#fff}.embla__button__svg{width:40%;height:40%}@media (max-width: 599px){.embla__slide{flex:0 0 50%}}.log-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:baseline}.form-row>.form-group{min-width:150px;width:max-content;max-width:250px;align-items:flex-start}.form-row>.form-group.hours-group{min-width:auto;width:auto;flex-grow:0;max-width:100px}.form-group.review-group{width:100%;margin-top:1rem}.form-group{display:flex;flex-direction:column;gap:.3rem}.form-group label{font-weight:700;margin-bottom:.2rem;font-size:.9em;color:var(--color-text-secondary)}.log-form input[type=text],.log-form input[type=number],.log-form input[type=date],.log-form select,.log-form textarea{padding:.6rem 1rem;border:none;border-radius:var(--border-radius-small, 4px);font-size:1rem;box-sizing:border-box;background-color:var(--color-background-input);color:var(--color-text-primary);font-family:inherit;height:40px}.log-form textarea{height:auto;min-height:100px;resize:vertical;width:100%}.log-form input:focus,.log-form select:focus,.log-form textarea:focus{outline:none}.log-form select option{border:none;border-radius:50px;background-color:var(--color-background-input)}.log-form input[type=checkbox]{margin-right:.5rem;cursor:pointer}.review-options{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:var(--spacing-xs, .5rem)}.review-options label{font-weight:400;margin-bottom:0;display:flex;align-items:center;font-size:.9em;cursor:pointer}.form-actions{display:flex;gap:.5rem;margin-top:1rem;justify-content:flex-end;padding-top:var(--spacing-l)}.error-message{color:var(--color-error, #d32f2f);font-size:.85em;margin-top:var(--spacing-xxs)}.log-form .form-group.rating-group .MuiRating-root{margin-top:0}.rating-input-container{display:flex;align-items:center;gap:var(--spacing-s, 8px);justify-content:space-between;margin-top:.3rem}.clear-rating-button{background:none;border:none;color:var(--color-text-placeholder, #aaa);cursor:pointer;padding:0 4px;font-size:1.6em;line-height:1;height:auto;width:auto;margin:0;transition:color .2s ease}.clear-rating-button:hover{color:var(--color-danger, #cc3300)}.btn-primary{background-color:var(--button-primary-bg, var(--color-primary, #2323be));color:var(--color-text-on-primary, white);border:none}.btn-primary:hover{background-color:var(--button-primary-hover-bg, var(--color-primary-hover, #3a3ad1));color:var(--color-text-on-primary, white)}#hoursPlayed{min-width:auto;width:auto;flex-grow:0;max-width:100px}.log-modal-content{padding:var(--spacing-l, 20px);max-width:600px;width:90%}.game-details-page-content{padding:0;margin:0 auto;background-color:var(--color-background-primary);color:var(--color-text-primary)}.back-link{display:inline-block;margin:var(--spacing-xl) 0 0 var(--spacing-xl);color:var(--color-primary-highlight);text-decoration:none;font-weight:var(--font-weight-medium);font-size:.95em;position:absolute;top:0;left:0;z-index:10;background:#0000004d;padding:var(--spacing-xs) var(--spacing-m);border-radius:0 0 var(--border-radius-small) 0}.back-link:hover{text-decoration:underline;color:var(--color-text-link-hover)}.details-hero-image{width:100%;height:20vh;max-height:450px;overflow:hidden;margin-bottom:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.details-hero-image:after{content:"";position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,#121212,#12121200)}.details-hero-image img{width:100%;height:100%;object-fit:cover;object-position:center center}.details-main-title{font-size:1.5em;font-weight:var(--font-weight-bold);color:var(--color-text-heading);margin:var(--spacing-xl) var(--spacing-xl) var(--spacing-xl) var(--spacing-xl);padding-bottom:var(--spacing-l)}.details-info-box{display:flex;flex-direction:column;gap:var(--spacing-xl);padding:0 var(--spacing-xl) var(--spacing-xl) var(--spacing-xl)}.info-box-left{flex-shrink:0;width:150px;margin:0 auto var(--spacing-l) auto}.info-box-cover{width:100%;height:auto;box-shadow:var(--box-shadow-standard);border-radius:var(--border-radius-medium)}.info-box-right{flex-grow:1}.info-box-right .info-section{margin-bottom:var(--spacing-m)}.info-box-right .info-section h4{margin:0 0 var(--spacing-xs) 0;font-size:.8em;color:var(--color-text-heading);text-transform:uppercase;letter-spacing:.8px;font-weight:var(--font-weight-semibold)}.info-box-right .info-section p{margin:0;font-size:.95em;color:var(--color-text-secondary)}.info-box-right .rating-score{font-size:1.6em;font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0}.info-box-right .rating-count{font-size:.7em;color:var(--color-text-heading);margin-left:var(--spacing-xs)}.info-box-right .genre-tags{gap:var(--spacing-s)}.info-box-right .genre-tag{background-color:#333;color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-m);font-size:.75em;border-radius:var(--border-radius-small)}.details-summary-section{margin:0 var(--spacing-xl);padding:var(--spacing-xl) 0}.details-summary-section h3{margin-top:0;margin-bottom:var(--spacing-m);font-size:1.3em;color:var(--color-text-heading)}.details-summary-section p{line-height:1.7;color:var(--color-text-heading);margin:0;font-size:.95em}.summary-toggle{cursor:pointer;margin-left:var(--spacing-s);white-space:nowrap;color:var(--color-text-placeholder);font-weight:var(--font-weight-normal);text-decoration:none}.summary-toggle:hover{color:var(--color-text-secondary);text-decoration:none}.details-media-section{margin-top:var(--spacing-xxl);margin-bottom:var(--spacing-xl);padding:0 var(--spacing-xl)}.media-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-l)}.media-section-header h3{margin:0;font-size:1.4em;color:var(--color-text-heading);font-weight:var(--font-weight-semibold)}.media-controls{display:flex;gap:var(--spacing-m)}.gallery-thumbnail{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;border-radius:var(--border-radius-medium);overflow:hidden;display:block;background-color:var(--color-background-card)}.gallery-thumbnail:hover{transform:scale(1.03);box-shadow:var(--box-shadow-standard)}.video-thumbnail-container{position:relative;border:none;display:block;width:100%;height:auto;border-radius:var(--border-radius-medium);background-color:var(--color-background-card)}.video-thumbnail-container img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--border-radius-medium);opacity:.8;transition:opacity .2s ease}.video-thumbnail-container:hover img{opacity:1}.video-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.8em;color:#ffffffe6;background-color:#00000080;border-radius:50%;width:40px;height:40px;display:flex;justify-content:center;align-items:center;line-height:1;pointer-events:none;transition:background-color .2s ease}.video-thumbnail-container:hover .video-play-icon{background-color:#000000b3}.video-name{position:absolute;bottom:var(--spacing-xs);left:var(--spacing-xs);right:var(--spacing-xs);background-color:#0009;color:var(--color-text-heading);font-size:.7em;padding:var(--spacing-xs) var(--spacing-s);text-align:left;border-radius:var(--border-radius-small);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.details-similar-section{margin-top:40px;padding:var(--spacing-xl) var(--spacing-xl)}.details-similar-section .media-section-header{border-bottom:none;margin-bottom:var(--spacing-xl)}.library-status-section{margin-top:var(--spacing-l);padding-top:var(--spacing-l);position:relative}.library-status-section h4{margin-bottom:var(--spacing-s)}.library-controls-wrapper{display:flex;align-items:center;gap:var(--spacing-m, 1rem);background-color:transparent;padding:0;margin-top:var(--spacing-m)}.view-log-button-link{padding:.6rem 1.2rem;border:none;border-radius:var(--border-radius-small, 4px);cursor:pointer;font-size:.9rem;text-decoration:none;transition:background-color .2s ease,opacity .2s ease;white-space:nowrap;display:inline-block;background-color:var(--button-primary-bg, var(--color-primary, #2323be));color:var(--color-text-on-primary, white)}.view-log-button-link:hover{background-color:var(--button-primary-hover-bg, var(--color-primary-hover, #3a3ad1));color:var(--color-text-on-primary, white);opacity:.9;text-decoration:none}.user-rating-section .star-rating-container{margin-top:4px}.details-similar-section h3{font-size:1.4em;color:var(--color-text-heading);font-weight:var(--font-weight-semibold);margin:0}.details-links-section{margin-top:40px;padding:var(--spacing-xl) var(--spacing-xl)}.details-links-section h3{font-size:1.4em;color:var(--color-text-heading);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-l) 0}.external-links-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--spacing-m)}.external-links-list li a{color:var(--color-text-link);text-decoration:none;font-size:.9em;background-color:var(--color-background-card);padding:var(--spacing-s) var(--spacing-l);border-radius:var(--border-radius-medium);transition:background-color .2s ease,border-color .2s ease;display:inline-block}.external-links-list li a:hover{background-color:#333;color:var(--color-text-link-hover)}.details-loading,.details-error{text-align:center;padding:60px var(--spacing-xl);font-size:1.1em;color:var(--color-text-placeholder)}.details-error{color:var(--color-danger);font-weight:var(--font-weight-bold)}@media (min-width: 768px){.details-info-box{flex-direction:row;align-items:flex-start;gap:var(--spacing-xxl)}.info-box-left{width:220px;margin:0}.info-box-right{flex:1}}.add-activity-button{display:block;width:100%;margin-top:var(--spacing-l);padding:var(--spacing-m);font-size:1em;font-weight:var(--font-weight-medium);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--border-radius-small);cursor:pointer;transition:background-color .2s ease}.add-activity-button:hover{background-color:var(--color-primary-hover)}.details-review-section{margin:var(--spacing-xxl) var(--spacing-xl);padding-top:var(--spacing-xl)}.details-review-section h3{margin-top:0;margin-bottom:var(--spacing-l);font-size:1.3em;color:var(--color-text-heading)}.review-content{background-color:var(--color-background-card);padding:var(--spacing-l);border-radius:var(--border-radius-medium)}.review-text{line-height:1.7;color:var(--color-text-primary);margin:0 0 var(--spacing-m) 0;font-size:.95em;white-space:pre-wrap}.review-meta{font-size:.8em;color:var(--color-text-placeholder);text-align:right;margin:0}.review-placeholder{font-style:italic;color:var(--color-text-placeholder);background-color:var(--color-background-card);padding:var(--spacing-l);border-radius:var(--border-radius-medium);text-align:center}.review-placeholder a{color:var(--color-text-link);text-decoration:underline}.review-placeholder a:hover{color:var(--color-text-link-hover)}.spoiler-warning{font-style:italic;color:var(--color-text-placeholder);font-size:.9em;margin-bottom:var(--spacing-xs);display:inline-block}.rating-controls-wrapper{display:flex;align-items:center;margin-top:var(--spacing-m);gap:var(--spacing-m)}@media (max-width: 599px){.details-hero-image{display:none}.info-box-left{width:max-content;margin:0 auto}.library-controls-wrapper{flex-direction:column;align-items:flex-start}}.tags-container{display:flex;flex-wrap:wrap;gap:8px}.tag-box{display:inline-block;background-color:#333;color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-m);font-size:.75em;border-radius:var(--border-radius-small);border:none;margin-bottom:4px}.no-data-text{color:#6c757d;font-style:italic}.pagination-nav{display:flex;justify-content:center;align-items:center;gap:var(--spacing-s);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.pagination-button{min-width:38px;height:38px;padding:0 var(--spacing-s);display:inline-flex;justify-content:center;align-items:center;font-size:.9em;font-weight:var(--font-weight-medium);border:1px solid #383840;background-color:#2a2a2e;color:var(--color-text-secondary);border-radius:var(--border-radius-medium);cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.pagination-button:disabled{opacity:.4;cursor:default;background-color:#2a2a2e;color:#666;border-color:#383840}.pagination-button:not(:disabled):hover{background-color:#3a3a40;border-color:#555;color:var(--color-text-primary)}.pagination-button.active{background-color:var(--button-primary-bg);border-color:var(--button-primary-bg);color:#fff;font-weight:var(--font-weight-bold);cursor:default}.pagination-button.active:hover{background-color:var(--button-primary-bg);border-color:var(--button-primary-bg)}.pagination-ellipsis{display:none}.pagination-button.prev-next,.pagination-button.first-last{font-weight:var(--font-weight-bold);padding:0 var(--spacing-m)}.go-to-page-control.integrated{display:flex;align-items:center;gap:var(--spacing-s);margin-left:var(--spacing-l)}.go-to-page-control .go-to-page-input{width:45px;height:38px;padding:var(--spacing-xs);font-size:.9em;font-weight:var(--font-weight-medium);border-radius:var(--border-radius-medium);background-color:var(--color-background-secondary);color:var(--color-text-secondary);border:1px solid #383840;text-align:center;box-sizing:border-box}.go-to-page-control .go-to-page-input::-webkit-outer-spin-button,.go-to-page-control .go-to-page-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.go-to-page-control .go-to-page-input[type=number]{-moz-appearance:textfield}.go-to-page-control .go-to-page-input:focus{outline:1px solid var(--color-text-link);border-color:var(--color-text-link)}.go-to-page-control .total-pages-display{font-size:.9em;color:var(--color-text-secondary);margin-left:var(--spacing-xs)}.pagination-container{display:flex;justify-content:center;align-items:center;gap:var(--spacing-s)}@media (max-width: 767px){.pagination-container{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}}.App{display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-background-primary);color:var(--color-text-primary)}.App-header{padding:var(--spacing-l) var(--spacing-xl);color:var(--color-text-heading);display:flex;align-items:center;justify-content:space-between;background-color:var(--color-background-primary);position:sticky;top:0;z-index:100}.App-header .home-link{color:var(--color-text-heading);text-decoration:none;font-size:1em;font-weight:var(--font-weight-bold);margin:0;line-height:1;display:inline-block}.search-container{margin:0 var(--spacing-xl);display:flex;position:relative;align-items:center;max-width:200px;width:100%}.search-input{padding:var(--spacing-s) var(--spacing-l) var(--spacing-s) 35px;font-size:.95em;border-radius:var(--spacing-xl);border:none;background-color:var(--color-background-input);color:var(--color-text-heading);width:100%;max-width:200px;outline:none;transition:border-color .2s ease,background-color .2s ease}.search-icon{position:absolute;left:var(--spacing-m);top:50%;transform:translateY(-50%);color:var(--color-text-placeholder);pointer-events:none}.search-input::placeholder{color:var(--color-text-placeholder)}.search-input:focus{background-color:#333}.auth-nav{display:flex;align-items:center;gap:var(--spacing-l)}.auth-nav .auth-link{color:var(--color-text-secondary);text-decoration:none;padding:var(--spacing-xs) 0}.auth-nav .auth-link:hover{color:var(--color-text-primary);text-decoration:underline}.auth-nav button.auth-link{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9em;padding:var(--spacing-xs) 0}.auth-nav button.auth-link:hover{color:var(--color-text-primary);text-decoration:underline}.hamburger-menu{display:none;background:none;border:none;cursor:pointer;padding:var(--spacing-xs);margin-left:var(--spacing-l)}.header-right-content{display:flex;align-items:center;gap:var(--spacing-l);flex-grow:1;justify-content:flex-end}main{flex-grow:1;width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-l);box-sizing:border-box;display:flex;flex-direction:column}.App-footer{background-color:var(--color-background-secondary);padding:var(--spacing-l);color:var(--color-text-placeholder);text-align:center;font-size:.85em;border-top:1px solid var(--color-border-primary);margin-top:auto;width:100%;box-sizing:border-box}.logo,.logo:hover,.logo.react:hover,.card,.read-the-docs{display:none}@media (max-width: 768px){.App-header{justify-content:space-between;padding:var(--spacing-m) var(--spacing-l);position:sticky}.App-header .home-link{font-size:1em}.hamburger-menu{display:block}.header-right-content{display:none;position:absolute;top:100%;left:0;width:100%;background-color:var(--color-background-primary);flex-direction:column;align-items:center;padding:var(--spacing-l) 0;box-shadow:var(--box-shadow-standard);z-index:99;gap:var(--spacing-l)}.header-right-content.open{display:flex}.search-container{width:90%;margin:0;display:flex;order:1}.search-input{width:100%}.auth-nav{width:100%;justify-content:center;order:2;flex-direction:column;gap:var(--spacing-m)}}@media (max-width: 480px){.App-header .home-link{font-size:1.3em}.auth-nav{gap:var(--spacing-m);font-size:.9em}.search-input{font-size:.9em;padding:var(--spacing-s) var(--spacing-m) var(--spacing-s) 30px}.search-icon{left:var(--spacing-s);width:16px;height:16px}main{padding:0 var(--spacing-s)}.App-footer{font-size:.75em;padding:var(--spacing-m)}}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 150px);padding:2rem;background-color:#121212;color:#fff;box-sizing:border-box}.auth-page h2{margin-bottom:2rem;font-size:2rem;font-weight:700}.auth-form{width:100%;max-width:400px;display:flex;flex-direction:column;gap:1.5rem}.auth-form div{display:flex;flex-direction:column;gap:.5rem}.auth-form label{font-size:.9rem;color:#e0e0e0}.auth-form input[type=text],.auth-form input[type=email],.auth-form input[type=password]{background-color:#333;border:1px solid #444444;color:#fff;padding:.8rem 1rem;border-radius:8px;font-size:1rem}.auth-form input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.auth-button{background-color:#0052cc;color:#fff;border:none;padding:.9rem 1rem;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s ease;margin-top:1rem}.auth-button:hover{background-color:#0041a3}.auth-link-text{margin-top:1.5rem;font-size:.9rem;color:#ccc}.auth-link-text a,.forgot-password-link a{color:#4dabf7;text-decoration:none;font-weight:700}.auth-link-text a:hover,.forgot-password-link a:hover{text-decoration:underline}.forgot-password-link{text-align:right;margin-top:-1rem;font-size:.9rem}.App-header .auth-nav a{color:inherit;text-decoration:none}.App-header .auth-nav a:hover{text-decoration:underline}.App-header .auth-nav button{background:none;border:none;color:inherit;cursor:pointer;font:inherit;padding:0}.App-header .auth-nav button:hover{text-decoration:underline}@media (max-width: 600px){.auth-page{padding:2rem 1rem 1rem;min-height:calc(100vh - 120px)}.auth-page h2{font-size:1.5rem;margin-bottom:1.5rem}.auth-form{max-width:100%;gap:1rem}.auth-form input[type=text],.auth-form input[type=email],.auth-form input[type=password]{padding:.7rem .9rem;font-size:.9rem}.auth-button{padding:.8rem .9rem;font-size:.9rem}.auth-link-text,.forgot-password-link{font-size:.8rem}.forgot-password-link{margin-top:-.5rem}}.user-library-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-xl);padding:var(--spacing-xl) 0;justify-content:flex-start}.user-library-list{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-m) 0}@media (max-width: 599px){.user-library-grid{justify-content:center}}.library-item-card--grid{flex:0 1 108px;max-width:108px;border-radius:var(--border-radius-medium);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;position:relative;background-color:var(--color-background-card)}.library-item-card--grid:hover{transform:scale(1.03);box-shadow:var(--box-shadow-standard)}.library-item-card--grid .library-item-link{text-decoration:none;color:inherit;display:block}.library-item-image-wrapper{position:relative;width:100%;padding-top:142.8%;background-color:#333}.library-item-card--grid .library-item-cover{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.library-item-overlay{position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(to top,#000000e6 10%,#00000080 50%,#0000001a);color:var(--color-text-primary);opacity:0;transition:opacity .2s ease;pointer-events:none;display:flex;justify-content:center;align-items:center;text-align:center}.overlay-content{padding:var(--spacing-m)}.library-item-card--grid:hover .library-item-overlay{opacity:1}.library-item-title--overlay{font-size:.95em;font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-xs) 0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.library-item-status--overlay{font-size:.8em;color:var(--color-text-heading);background-color:#0006;padding:var(--spacing-xs) var(--spacing-s);border-radius:var(--border-radius-small);display:inline-block;margin-top:var(--spacing-xs)}.library-item-rating--grid{padding:0 var(--spacing-s) var(--spacing-xs);text-align:center}.library-item-rating--grid .star-rating-container{justify-content:center;font-size:.9em}.library-item-rating--grid .star{margin:0}.library-item-row--list{background-color:var(--color-background-card);border-radius:var(--border-radius-medium);overflow:hidden;transition:background-color .2s ease}.library-item-row--list:hover{background-color:#3a3a40}.library-item-link--list{text-decoration:none;color:inherit;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-m) var(--spacing-l);min-height:60px}.library-item-row__left{display:flex;align-items:center;gap:var(--spacing-l);flex:1;min-width:0}.library-item-cover--list{width:40px;height:56px;object-fit:cover;border-radius:var(--border-radius-small);flex-shrink:0;background-color:#333}.library-item-title--list{font-size:1em;font-weight:var(--font-weight-medium);margin:0;color:var(--color-text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-item-row__right{display:flex;align-items:center;gap:var(--spacing-m);flex-shrink:0;margin-left:var(--spacing-xl)}.library-item-rating--list .star-rating-container{font-size:.9em}.library-item-rating--list .star{margin:0}.library-item-status--list{font-size:.85em;color:var(--color-text-secondary);background-color:#383838;padding:var(--spacing-xs) var(--spacing-s);border-radius:var(--border-radius-small);white-space:nowrap}.user-library-page{margin:var(--spacing-xl) auto;padding:0 var(--spacing-xl);color:var(--color-text-primary);width:85%}.user-library-page h1{font-size:2.2em;margin-bottom:var(--spacing-xl);color:var(--color-text-heading);padding-bottom:var(--spacing-m);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-l)}.view-mode-switcher{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);border-radius:var(--border-radius-medium);margin-bottom:var(--spacing-xl);background-color:#333}.view-mode-switcher button{background-color:transparent;border:none;color:var(--color-text-placeholder);padding:var(--spacing-s) var(--spacing-s);border-radius:var(--border-radius-small);cursor:pointer;transition:background-color .2s ease,color .2s ease;display:flex;align-items:center;justify-content:center}.view-mode-switcher button:hover{color:var(--color-text-primary);background-color:var(--color-border-primary)}.view-mode-switcher button.active{background-color:var(--color-border-secondary);color:var(--color-text-primary)}.view-mode-switcher button svg{width:16px;height:16px}@media (max-width: 767px){.view-mode-switcher{display:none}}.library-filters h4{margin-top:var(--spacing-l);margin-bottom:var(--spacing-s);font-size:.9em;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:var(--font-weight-semibold)}.library-filters h4:first-of-type{margin-top:0}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-s)}.rating-filter-group{display:flex;align-items:center;gap:var(--spacing-xs)}.library-filters .rating-filter-group .clear-rating-filter{background:none;border:none;color:var(--color-text-placeholder);cursor:pointer;padding:0 var(--spacing-xs);font-size:1.5em;line-height:1;width:auto;height:auto;text-align:center;order:-1}.library-filters .rating-filter-group .clear-rating-filter:hover{color:var(--color-danger);background-color:transparent}.library-filters .rating-filter-group .clear-rating-filter:focus{outline:none;box-shadow:none}.filter-modal-content .rating-filter-group .clear-rating-filter{background:none;border:none;color:var(--color-text-placeholder);cursor:pointer;padding:0 var(--spacing-xs);font-size:1.5em;line-height:1;width:auto;height:auto;text-align:center;order:-1}.filter-modal-content .rating-filter-group .clear-rating-filter:hover{color:var(--color-danger);background-color:transparent}.filter-modal-content .rating-filter-group .clear-rating-filter:focus{outline:none;box-shadow:none}.filter-modal-group{display:flex;flex-wrap:wrap;gap:var(--spacing-s);margin-bottom:var(--spacing-l)}.library-layout{display:flex;gap:var(--spacing-xxl)}.library-content-area{flex:1;min-width:0}.library-filters{width:180px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l);background-color:#2a2a2e;border-radius:var(--border-radius-large);align-self:flex-start}.library-filters h3{font-size:1.1em;color:var(--color-text-heading);margin-bottom:var(--spacing-m);padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-primary)}.library-filters button{width:100%;padding:var(--spacing-m) var(--spacing-m);font-size:.95em;background-color:transparent;color:var(--color-text-secondary);border:none;border-radius:var(--border-radius-small);text-align:left;cursor:pointer;transition:background-color .2s ease,color .2s ease}.library-filters button:hover{background-color:#ffffff1a;color:var(--color-text-primary)}.library-filters button.active{background-color:var(--color-primary-highlight-bg);color:var(--color-primary-highlight);font-weight:var(--font-weight-bold)}.library-loading,.library-error,.library-empty{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;padding:40px var(--spacing-xl);font-size:1.1em;color:var(--color-text-placeholder)}.library-error{color:var(--color-danger);font-weight:var(--font-weight-bold)}.library-content{min-height:200px}.show-filters-button{display:none;padding:var(--spacing-m) var(--spacing-xl);font-size:1em;background-color:var(--button-primary-bg);color:#fff;border:none;border-radius:var(--border-radius-medium);cursor:pointer;margin-bottom:var(--spacing-xl);position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);z-index:100;box-shadow:var(--box-shadow-standard)}.show-filters-button:hover{background-color:var(--button-primary-hover-bg)}@media (max-width: 599px){.library-layout{flex-direction:column;gap:0}.library-filters{display:none}.library-content-area{width:100%}.show-filters-button{display:block}}.filter-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.filter-modal-content{background-color:#2c2c34;padding:var(--spacing-xl);border-radius:var(--border-radius-large);width:90%;max-width:400px;box-shadow:0 5px 15px #00000080;display:flex;flex-direction:column;gap:var(--spacing-m)}.filter-modal-content h3{margin:0 0 var(--spacing-l) 0;color:var(--color-text-heading);text-align:center;border-bottom:1px solid var(--color-border-primary);padding-bottom:var(--spacing-m)}.filter-modal-content button{width:100%;padding:var(--spacing-m) var(--spacing-l);font-size:1em;background-color:#383840;color:var(--color-text-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-medium);text-align:left;cursor:pointer;transition:background-color .2s ease,color .2s ease}.filter-modal-content button:hover{background-color:#4a4a52;color:var(--color-text-primary)}.filter-modal-content button.active{background-color:var(--color-primary-highlight);color:var(--color-background-primary);border-color:var(--color-primary-highlight);font-weight:var(--font-weight-bold)}.filter-modal-content .close-modal-button{margin-top:var(--spacing-l);background-color:var(--color-border-secondary);text-align:center;font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.filter-modal-content .close-modal-button:hover{background-color:#666}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-content{background-color:var(--color-background-primary);padding:var(--spacing-xl) var(--spacing-xxl);border-radius:var(--border-radius-large);box-shadow:0 5px 15px #0000004d;width:90%;max-width:450px;text-align:center;animation:fadeIn .2s ease-out}.modal-title{margin-top:0;margin-bottom:var(--spacing-m);color:var(--color-text-heading);font-size:1.4em}.modal-message{margin-bottom:var(--spacing-xl);color:var(--color-text-secondary);line-height:1.6}.modal-actions{display:flex;justify-content:center;gap:var(--spacing-l);margin-top:var(--spacing-l)}.modal-button{padding:var(--spacing-m) var(--spacing-xl);border-radius:var(--border-radius-medium);border:none;font-size:1em;font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color .2s ease,opacity .2s ease;min-width:100px}.modal-button.confirm{background-color:var( --color-danger );color:#fff}.modal-button.confirm:hover{background-color:#d32f2f;opacity:.9}.modal-button.cancel{background-color:var( --color-border-secondary );color:var(--color-text-primary)}.modal-button.cancel:hover{background-color:#666;opacity:.9}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.activity-modal-content{padding:var(--spacing-l);text-align:left;max-width:600px}.activity-modal-content .modal-actions{display:none}.activity-modal-content .modal-title{text-align:center;margin-bottom:var(--spacing-l)}.user-game-log-page{margin:var(--spacing-xxl) auto;padding:var(--spacing-xl);color:var(--color-text-primary);border-radius:0;width:90%;max-width:1200px}.log-page-top-section{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-bottom:var(--spacing-xxl)}.log-page-game-info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-m);flex-shrink:0}.log-game-cover{width:150px;height:auto;object-fit:cover;border-radius:var(--border-radius-small);margin-bottom:var(--spacing-s)}.log-page-game-info h1{font-size:1.8em;margin:0;color:var(--color-text-heading)}.log-details-link{color:var(--color-text-link);text-decoration:none;font-size:.9em}.log-details-link:hover{text-decoration:underline}.log-form-section{flex-grow:1}.log-form-section h2{font-size:1.4em;margin-top:0;margin-bottom:var(--spacing-l);color:var(--color-text-heading)}@media (min-width: 768px){.log-page-top-section{flex-direction:row;align-items:flex-start;gap:var(--spacing-xxl)}.log-page-game-info{width:200px;top:var(--spacing-xl)}.log-game-cover{width:100%}}.log-header{display:none}.log-rating-section{margin-top:15px}.log-rating-section h4{margin:0 0 5px;font-size:.9em;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.rating-error-message{color:var(--color-error, #d32f2f);font-size:.8em;margin-top:4px}.log-status-changer{margin-top:var(--spacing-xl)}.log-status-changer h4{font-size:1em;color:var(--color-text-secondary);margin-bottom:var(--spacing-s)}.log-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-xxl)}.log-review-section h2,.log-history h2{font-size:1.4em;margin-bottom:var(--spacing-l);color:var(--color-text-heading);padding-bottom:var(--spacing-s)}.log-review-section textarea{width:95%;min-height:150px;padding:var(--spacing-m);background-color:var(--color-background-input);border:none;border-radius:var(--border-radius-small);color:var(--color-text-heading);font-size:1em;line-height:var(--line-height-base);resize:vertical;margin-bottom:var(--spacing-l);font-family:var(--font-family-base)}.save-review-button{padding:var(--spacing-m) var(--spacing-xl);font-size:1em;background-color:var(--button-primary-bg);color:#fff;border:none;border-radius:var(--border-radius-small);cursor:pointer;transition:background-color .2s ease}.save-review-button:hover{background-color:var(--button-primary-hover-bg)}.review-controls{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-m)}.privacy-toggle{display:flex;align-items:center;gap:var(--spacing-s)}.privacy-toggle label{font-size:.9em;color:var(--color-text-secondary);cursor:pointer}.privacy-toggle input[type=checkbox]{cursor:pointer}.review-updated-date{font-size:.8em;color:var(--color-text-placeholder);margin-top:var(--spacing-m);text-align:right}@media (max-width: 767px){.log-content{grid-template-columns:1fr}.log-header{flex-direction:column;align-items:center;text-align:center}.log-game-cover{width:auto}.log-review-section{display:flex;flex-direction:column}.log-review-section textarea{align-self:center}}.btn{border-radius:var(--border-radius-small, 4px);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:var(--font-weight-medium, 500);font-family:inherit;cursor:pointer;transition:border-color .25s,background-color .2s ease,color .2s ease;text-decoration:none;display:inline-block;text-align:center}.btn.btn-danger{background-color:var(--color-danger, #d32f2f);color:var(--color-text-primary, white);border-color:transparent}.btn.btn-danger:hover{background-color:var(--color-danger-hover-bg, #a02424);color:var(--color-text-primary, white);border-color:transparent}.log-page-game-info .remove-game-button{margin-top:var(--spacing-l);width:100%}
