:root{--bg-primary:#0f1419;--bg-secondary:#1a1f2e;--bg-tertiary:#252a35;--text-primary:#e8eaed;--text-secondary:#9aa0a6;--accent-primary:#8ab4f8;--accent-hover:#aecbfa;--border-color:#3c4043;--success:#81c995;--error:#f28b82;--warning:#fdd663}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:0 20px}.header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:2rem 0;margin-bottom:2rem}.logo{font-size:2.5rem;font-weight:700;color:var(--accent-primary);margin-bottom:.5rem}.tagline{color:var(--text-secondary);margin-bottom:1rem}.submit-btn{background:var(--accent-primary);color:var(--bg-primary);border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;transition:background .2s}.submit-btn:hover{background:var(--accent-hover)}.filters{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color)}.filter-group{display:flex;flex-direction:column;gap:.5rem;flex:1 1;min-width:200px}.filter-group label{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.filter-group select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);padding:.5rem;border-radius:6px;font-size:1rem;cursor:pointer}.submissions-list{display:grid;grid-template-columns:1fr;grid-gap:1.5rem;gap:1.5rem;margin-bottom:2rem}@media (min-width:768px){.submissions-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1200px){.submissions-list{grid-template-columns:repeat(3,1fr)}}.submission-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;transition:border-color .2s;display:grid;grid-template-columns:1fr auto;grid-gap:1rem;gap:1rem;height:100%}.submission-card:hover{border-color:var(--accent-primary)}.submission-content{display:flex;flex-direction:column;min-width:0}.submission-meta{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.badge{display:inline-block;padding:.25rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge-category{background:var(--accent-primary);color:var(--bg-primary)}.badge-model{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);display:flex;align-items:center;gap:.5rem}.manufacturer-logo{display:inline-flex;align-items:center;justify-content:center}.manufacturer-logo svg{width:100%;height:100%}.model-date{font-size:.75rem;opacity:.7;font-weight:400}.vote-section{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.25rem;flex-shrink:0;min-width:50px}.vote-btn{background:none;border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;border-radius:4px;font-size:1rem;transition:all .2s}.vote-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.vote-count{font-weight:700}.submission-title,.vote-count{font-size:1.25rem;color:var(--text-primary)}.submission-title{display:block;text-decoration:none;font-weight:600;margin:0 0 .75rem;line-height:1.4;transition:color .2s}.submission-title:hover{color:var(--accent-primary)}.submission-description{color:var(--text-secondary);margin-bottom:1rem}.submission-date{color:var(--text-secondary);font-size:.875rem;margin-top:auto;padding-top:.5rem}.pagination{display:flex;justify-content:center;gap:.5rem;margin:2rem 0}.page-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s}.page-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary)}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-btn.active{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.8)}.modal.show{display:block}.modal-content{background-color:var(--bg-secondary);margin:5% auto;padding:2rem;border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:600px}.close{color:var(--text-secondary);float:right;font-size:2rem;font-weight:700;cursor:pointer;line-height:1}.close:hover{color:var(--text-primary)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:1rem;font-family:inherit}.form-group textarea{resize:vertical;min-height:100px}.form-group small{display:block;margin-top:.25rem;color:var(--text-secondary);font-size:.875rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.btn-primary{background:var(--accent-primary);color:var(--bg-primary)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-secondary)}.error-message{color:var(--error);margin-top:1rem;padding:.75rem;background:rgba(242,139,130,.1);border-radius:6px;display:none}.error-message.show{display:block}.anonymous-notice{color:var(--warning);margin-top:1rem;padding:.75rem;background:rgba(253,214,99,.1);border:1px solid rgba(253,214,99,.3);border-radius:6px;font-size:.9rem;text-align:center}.anonymous-notice a{color:var(--accent-primary);text-decoration:none;font-weight:600}.anonymous-notice a:hover{text-decoration:underline}.logged-in-notice{color:var(--success);margin-top:1rem;padding:.75rem;background:rgba(129,201,149,.1);border:1px solid rgba(129,201,149,.3);border-radius:6px;font-size:.9rem;text-align:center}.logged-in-notice strong{color:var(--text-primary)}.empty-state,.loading{padding:3rem}.empty-state,.footer,.loading{text-align:center;color:var(--text-secondary)}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:2rem 0;margin-top:4rem}.footer-links{margin-top:1rem}.footer-links a{color:var(--accent-primary);text-decoration:none;margin:0 .5rem}.footer-links a:hover{text-decoration:underline}.content-page{max-width:800px;margin:0 auto;padding:2rem 0}.content-page h2{font-size:2rem}.content-page h2,.content-page h3{color:var(--text-primary);margin-bottom:1rem}.content-page h3{margin-top:2rem;font-size:1.5rem}.content-page p{color:var(--text-secondary);line-height:1.8;margin-bottom:1rem}.content-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color)}.platforms-list{margin:2rem 0}.platform-group{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.platform-name{color:var(--accent-primary);font-size:1.25rem;margin-bottom:1rem;font-weight:600}.domain-list{list-style:none;padding:0;margin:0}.domain-list li{padding:.75rem 0;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.domain-list li:last-child{border-bottom:none}.domain-list code{background:var(--bg-tertiary);color:var(--accent-primary);padding:.25rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem}.domain-example{color:var(--text-secondary);font-size:.875rem;font-style:italic}.platform-stats{text-align:center;margin-top:3rem;padding:1.5rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color)}.platform-stats p{color:var(--text-primary);font-size:1.1rem;margin:0}.submission-detail{margin-bottom:3rem}.submission-card-detail{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:2rem}.submission-header{margin-bottom:2rem}.submission-title-detail{font-size:2rem;margin:1rem 0;color:var(--text-primary)}.submission-description-detail{color:var(--text-secondary);font-size:1.125rem;line-height:1.7;margin:1rem 0}.submission-info{display:flex;gap:1.5rem;margin-top:1rem;color:var(--text-secondary);font-size:.875rem}.vote-info{font-weight:600}.submission-actions{display:flex;gap:1.5rem;align-items:center;padding-top:1.5rem;border-top:1px solid var(--border-color)}.vote-section-detail{display:flex;align-items:center;gap:.5rem}.comments-section{margin-top:3rem}.comments-section h2,.comments-section h3{color:var(--text-primary);margin-bottom:1.5rem}.comments-section h2{font-size:1.75rem}.comments-section h3{font-size:1.25rem}.comments-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.comment{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.25rem}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.comment-author{display:flex;align-items:center;gap:.75rem;flex:1 1}.comment-author strong{color:var(--text-primary);font-weight:600}.comment-author em{color:var(--text-secondary);font-style:normal}.comment-date{color:var(--text-secondary);font-size:.875rem}.comment-vote{display:flex;flex-direction:column;align-items:center;gap:.25rem}.comment-vote-btn{padding:.25rem .5rem;font-size:.875rem}.comment-vote .vote-count{font-size:.875rem;font-weight:600}.comment-content{color:var(--text-primary);line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.comment-meta{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.comment-form-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:2rem;margin-top:2rem}.success-message{color:var(--success);margin-top:1rem;padding:.75rem;background:rgba(129,201,149,.1);border-radius:6px;display:none}.success-message.show{display:block}@media (max-width:768px){.logo{font-size:2rem}.filters{flex-direction:column}.submission-card{grid-template-columns:1fr 50px}.vote-btn{padding:.2rem .4rem;font-size:.875rem}.vote-count{font-size:1rem}.modal-content{margin:10% auto;width:95%;padding:1.5rem}.submission-title-detail{font-size:1.5rem}.submission-actions{flex-direction:column;align-items:flex-start}.comment-form-container{padding:1.5rem}}.header-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.header-left{flex:1 1}.header-right{display:flex;align-items:center;gap:1rem}#authSection,#userSection{display:flex;align-items:center;gap:.75rem}.auth-btn{padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary)}.auth-btn:hover{background:var(--bg-secondary)}.auth-btn.primary,.auth-btn:hover{border-color:var(--accent-primary)}.auth-btn.primary{background:var(--accent-primary);color:var(--bg-primary)}.auth-btn.primary:hover{background:var(--accent-hover)}.username-display{color:var(--text-secondary);font-size:.9rem}.username-display strong{color:var(--text-primary)}.auth-switch{text-align:center;margin-top:1.5rem;color:var(--text-secondary);font-size:.9rem}.auth-switch a{color:var(--accent-primary);text-decoration:none}.auth-switch a:hover{text-decoration:underline}.oauth-buttons{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s;border:1px solid var(--border-color)}.oauth-btn-google{background:white;color:#1f1f1f}.oauth-btn-google:hover{background:#f8f8f8;box-shadow:0 2px 4px rgba(0,0,0,.1)}.oauth-btn-github{background:#24292e;color:white;border-color:#24292e}.oauth-btn-github:hover{background:#2f363d}.divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:var(--text-secondary);font-size:.875rem}.divider:after,.divider:before{content:"";flex:1 1;border-bottom:1px solid var(--border-color)}.divider span{padding:0 1rem}@media (max-width:768px){.header-top{flex-direction:column;gap:1rem}.header-right{width:100%;justify-content:space-between}}