:root{--bg-color: #f6f6ef;--header-bg: #1db954;--text-color: #000;--text-muted: #828282;--link-color: #000;--link-hover: #1db954;--vote-color: #828282;--vote-active: #1db954;--border-color: #e0e0e0;--white: #fff;--error-color: #ff6600}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Verdana,Geneva,sans-serif;font-size:10pt;background-color:var(--bg-color);color:var(--text-color);line-height:1.4}a{color:var(--link-color);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none}.layout{max-width:85%;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:10px 0;background:var(--bg-color)}.header{background-color:var(--header-bg);padding:2px}.header-content{display:flex;justify-content:space-between;align-items:center;padding:2px 4px}.header-left{display:flex;align-items:center;gap:10px}.logo{font-weight:700;color:var(--white);font-size:14pt}.logo:hover{text-decoration:none}.nav{display:flex;gap:10px}.nav a{color:var(--white)}.nav a.active{color:var(--white);font-weight:700}.header-right{display:flex;align-items:center;gap:8px;color:var(--white)}.username{color:var(--white)}.karma{color:var(--white);opacity:.9}.login-btn,.logout-btn{color:var(--white);background:none;border:none;cursor:pointer;text-decoration:underline}.loading-text{color:var(--white)}.footer{text-align:center;padding:20px;color:var(--text-muted);border-top:2px solid var(--header-bg);margin-top:20px}.playlist-list{display:flex;flex-direction:column}.playlist-item{display:flex;align-items:flex-start;padding:5px 0;gap:4px}.rank{color:var(--text-muted);min-width:25px;text-align:right;padding-right:5px}.vote-button{display:flex;flex-direction:column;align-items:center;min-width:30px}.vote-arrow{color:var(--vote-color);font-size:10px;padding:0;line-height:1;background:none;border:none;cursor:pointer}.vote-arrow:hover,.vote-arrow.voted{color:var(--vote-active)}.vote-arrow:disabled{cursor:not-allowed;opacity:.5}.points{font-size:8pt;color:var(--text-muted)}.playlist-content{flex:1}.playlist-title{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.title-link{font-size:10pt}.domain{font-size:8pt;color:var(--text-muted)}.playlist-meta{font-size:8pt;color:var(--text-muted);margin-top:2px}.playlist-meta a{color:var(--text-muted)}.playlist-meta a:hover{color:var(--link-hover)}.empty-state{padding:20px;text-align:center;color:var(--text-muted)}.load-more-btn{display:block;margin:20px auto;padding:8px 20px;background:var(--header-bg);color:var(--white);border-radius:3px}.load-more-btn:hover{opacity:.9}.load-more-btn:disabled{opacity:.5;cursor:not-allowed}.page-title{font-size:12pt;margin-bottom:10px;padding-bottom:5px;border-bottom:1px solid var(--border-color)}.submit-page{max-width:600px}.submit-form{padding:10px 0}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:700}.form-group input{width:100%;padding:8px;font-family:inherit;font-size:inherit;border:1px solid var(--border-color);border-radius:3px}.form-group input:focus{outline:none;border-color:var(--header-bg)}.submit-btn{padding:8px 20px;background:var(--header-bg);color:var(--white);border-radius:3px}.submit-btn:hover{opacity:.9}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.form-hint{margin-top:10px;font-size:8pt;color:var(--text-muted)}.error-message{color:var(--error-color);margin-bottom:10px;padding:8px;background:#fff5f0;border-radius:3px}.login-required{text-align:center;padding:40px 20px}.login-required h2{margin-bottom:10px}.login-required p{margin-bottom:20px;color:var(--text-muted)}.login-required .login-btn{display:inline-block;padding:10px 20px;background:var(--header-bg);color:var(--white);border-radius:3px;text-decoration:none}.playlist-page{max-width:800px}.playlist-detail{margin-bottom:20px}.playlist-header{display:flex;gap:10px;margin-bottom:15px}.playlist-info{flex:1}.playlist-info h1{font-size:14pt;margin-bottom:5px}.playlist-info h1 a{color:var(--link-color)}.playlist-info h1 a:hover{color:var(--link-hover)}.playlist-description{color:var(--text-muted);margin-bottom:10px;font-size:9pt}.delete-btn{color:var(--text-muted);text-decoration:underline;cursor:pointer}.delete-btn:hover{color:var(--error-color)}.playlist-cover{margin-top:15px}.playlist-cover img{max-width:200px;border-radius:4px}.open-spotify-btn{display:inline-block;margin-top:10px;padding:8px 16px;background:var(--header-bg);color:var(--white);border-radius:20px;font-size:9pt}.open-spotify-btn:hover{opacity:.9;text-decoration:none}.comments-section{border-top:1px solid var(--border-color);padding-top:15px}.comments-section h2{font-size:11pt;margin-bottom:15px}.comment-form,.reply-form{margin-bottom:20px}.comment-form textarea,.reply-form textarea{width:100%;padding:8px;font-family:inherit;font-size:inherit;border:1px solid var(--border-color);border-radius:3px;resize:vertical}.comment-form textarea:focus,.reply-form textarea:focus{outline:none;border-color:var(--header-bg)}.comment-form button,.reply-form button{margin-top:8px;padding:6px 12px;background:var(--header-bg);color:var(--white);border-radius:3px}.reply-actions{display:flex;gap:8px}.reply-actions button:last-child{background:var(--text-muted)}.login-prompt{padding:15px;background:#fff;border:1px solid var(--border-color);border-radius:3px;margin-bottom:20px}.login-prompt button{color:var(--header-bg);text-decoration:underline}.no-comments{color:var(--text-muted);font-style:italic}.comment{padding:8px 0;border-bottom:1px solid var(--border-color)}.comment:last-child{border-bottom:none}.comment-header{font-size:8pt;margin-bottom:4px}.comment-author{font-weight:700;color:var(--link-color)}.comment-time{color:var(--text-muted);margin-left:5px}.comment-content{font-size:9pt;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.comment-actions{margin-top:4px;font-size:8pt}.action-btn{color:var(--text-muted);text-decoration:underline;margin-right:8px}.action-btn:hover{color:var(--link-hover)}.action-btn.delete:hover{color:var(--error-color)}.user-page{max-width:800px}.user-header{margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--border-color)}.user-info{display:flex;gap:15px;align-items:flex-start}.avatar{width:60px;height:60px;border-radius:50%}.user-details h1{font-size:14pt;margin-bottom:5px}.user-stats{font-size:9pt;color:var(--text-muted);margin-bottom:5px}.user-stats span{margin-right:10px}.user-counts{font-size:9pt;color:var(--text-muted)}.user-submissions h2{font-size:11pt;margin-bottom:10px}.submission-list{display:flex;flex-direction:column}.submission-item{display:flex;padding:5px 0;gap:8px}.submission-content{flex:1}.submission-title{font-size:10pt}.submission-meta{font-size:8pt;color:var(--text-muted)}.no-submissions{color:var(--text-muted);font-style:italic}.login-page{display:flex;justify-content:center;align-items:center;min-height:60vh}.login-container{text-align:center;max-width:400px;padding:40px;background:var(--white);border-radius:8px;box-shadow:0 2px 10px #0000001a}.login-container h1{font-size:18pt;margin-bottom:10px}.login-description{color:var(--text-muted);margin-bottom:20px}.spotify-login-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;background:var(--header-bg);color:var(--white);border-radius:25px;font-size:11pt;font-weight:700}.spotify-login-btn:hover{opacity:.9;text-decoration:none}.spotify-login-btn:disabled{opacity:.5;cursor:not-allowed}.spotify-login-btn svg{flex-shrink:0}.login-terms{margin-top:20px;font-size:8pt;color:var(--text-muted)}.spotify-unavailable{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;color:var(--text-muted);font-size:9pt}.demo-login-section{margin-bottom:20px;padding:20px;background:#f0f9f0;border-radius:8px;border:1px solid var(--header-bg)}.demo-login-section h3{margin-bottom:8px;color:var(--header-bg)}.demo-note{font-size:9pt;color:var(--text-muted);margin-bottom:15px}.demo-login-form{display:flex;gap:10px}.demo-login-form input{flex:1;padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:10pt}.demo-login-form input:focus{outline:none;border-color:var(--header-bg)}.demo-login-form button{padding:10px 20px;background:var(--header-bg);color:var(--white);border-radius:4px;font-weight:700}.demo-login-form button:disabled{opacity:.5;cursor:not-allowed}.login-divider{display:flex;align-items:center;margin:20px 0;color:var(--text-muted)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.login-divider span{padding:0 15px;font-size:9pt}.mode-toggle{display:flex;gap:0;margin-bottom:20px;border:1px solid var(--border-color);border-radius:4px;overflow:hidden}.mode-toggle button{flex:1;padding:10px 15px;background:var(--white);border:none;color:var(--text-muted);font-size:9pt;cursor:pointer;transition:all .2s}.mode-toggle button:first-child{border-right:1px solid var(--border-color)}.mode-toggle button.active{background:var(--header-bg);color:var(--white)}.mode-toggle button:hover:not(.active){background:#f0f0f0}.form-group textarea{width:100%;padding:8px;font-family:inherit;font-size:inherit;border:1px solid var(--border-color);border-radius:3px;resize:vertical}.form-group textarea:focus{outline:none;border-color:var(--header-bg)}.loading,.error-page{padding:40px;text-align:center;color:var(--text-muted)}.error-page{color:var(--error-color)}.tracks-section{margin-top:20px;padding-top:15px;border-top:1px solid var(--border-color)}.tracks-section h2{font-size:11pt;margin-bottom:10px}.track-list{list-style:none;background:var(--white);border:1px solid var(--border-color);border-radius:4px}.track-item{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-color);gap:12px}.track-item:last-child{border-bottom:none}.track-item:hover{background:#f9f9f9}.track-number{color:var(--text-muted);font-size:8pt;min-width:20px;text-align:right}.track-info{flex:1;display:flex;flex-direction:column;min-width:0}.track-title{font-size:9pt;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-artist{font-size:8pt;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-duration{font-size:8pt;color:var(--text-muted);min-width:40px;text-align:right}@media (max-width: 768px){.layout{max-width:100%;padding:0 10px}.header-content{flex-direction:column;gap:8px}.header-left{width:100%;justify-content:space-between}.header-right{width:100%;justify-content:center;flex-wrap:wrap}.playlist-cover img{max-width:100%}.user-info{flex-direction:column;align-items:center;text-align:center}}
