.home-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:40px 20px}.home-header{text-align:center;color:#fff;margin-bottom:50px}.home-header h1{font-size:3rem;margin-bottom:10px;text-shadow:0 4px 12px rgba(0,0,0,.3)}.home-header p{font-size:1.2rem;opacity:.95}.app-selector{max-width:1000px;margin:0 auto;background:#fff;border-radius:20px;padding:30px;box-shadow:0 20px 60px #0000004d}.selector-header{text-align:center;margin-bottom:30px}.selector-header h2{font-size:2rem;color:#333;margin-bottom:8px}.selector-header p{color:#666;font-size:1.1rem}.app-tabs{display:flex;gap:10px;margin-bottom:30px;flex-wrap:wrap;justify-content:center}.app-tab{padding:15px 25px;border:2px solid #e0e0e0;background:#fff;border-radius:12px;cursor:pointer;transition:all .3s ease;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:120px}.app-tab:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea33}.app-tab.active{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 8px 20px #667eea66}.app-tab.voted{background:#f0f7ff;border-color:#4caf50}.app-tab.voted.active{background:linear-gradient(135deg,#667eea,#764ba2)}.app-number{font-size:1.1rem}.vote-badge{font-size:.85rem;color:#4caf50;font-weight:700}.app-tab.active .vote-badge{color:#c8ffc8}.current-app-card{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:30px;border-radius:16px;margin-bottom:20px}.app-info h3{font-size:1.5rem;color:#333;margin-bottom:8px}.app-id{font-size:.9rem;color:#666;font-weight:600;letter-spacing:1px}.action-buttons{margin-top:20px;display:flex;gap:12px;justify-content:center}.btn-preview{padding:15px 40px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 6px 20px #667eea66}.btn-preview:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea80}.progress-info{text-align:center;padding:20px;background:#f0f7ff;border-radius:12px;border:2px dashed #667eea}.progress-info p{color:#333;font-weight:600;font-size:1.1rem}.complete-msg{color:#4caf50;font-size:1.3rem!important;margin-top:10px}.home-footer{text-align:center;color:#fff;margin-top:40px;padding:20px}.home-footer p{margin:5px 0;opacity:.9}.home-footer .muted{opacity:.7;font-size:.9rem}.vote-panel{position:fixed;top:0;right:0;width:400px;height:100vh;background:#fff;box-shadow:-4px 0 20px #00000026;z-index:1002;display:flex;flex-direction:column;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.vote-panel-header{padding:25px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;align-items:center}.vote-panel-header h3{margin:0;font-size:1.4rem}.close-btn{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .2s}.close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.vote-form{flex:1;padding:30px;overflow-y:auto;display:flex;flex-direction:column;gap:30px}.score-section{display:flex;flex-direction:column;gap:15px}.score-section label{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.label-text{font-weight:600;color:#333;font-size:1.1rem}.score-value{font-size:2rem;font-weight:700;color:#667eea}.score-slider{width:100%;height:8px;border-radius:5px;outline:none;-webkit-appearance:none;background:linear-gradient(to right,#f44,#fa0,#fd0,#8c0,#4c0)}.score-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 2px 8px #0000004d;border:3px solid #667eea}.score-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 2px 8px #0000004d;border:3px solid #667eea}.score-labels{display:flex;justify-content:space-between;font-size:.85rem;color:#666}.comment-section{display:flex;flex-direction:column;gap:10px}.comment-input{width:100%;padding:15px;border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .3s}.comment-input:focus{outline:none;border-color:#667eea}.char-count{text-align:right;font-size:.85rem;color:#999}.existing-vote-notice{padding:15px;background:#fff3cd;border:1px solid #ffc107;border-radius:8px;color:#856404;font-size:.95rem}.submit-btn{padding:18px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.submit-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 1200px){.vote-panel{width:100%;max-width:500px}}@media (max-width: 600px){.vote-panel{width:100%}.vote-form{padding:20px}}.vote-page{position:relative;min-height:100vh}.vote-nav-bar{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 20px #0000004d;position:sticky;top:0;z-index:1000;border-bottom:2px solid rgba(255,255,255,.2)}.back-button{padding:12px 24px;background:#fff;color:#667eea;border:2px solid white;border-radius:10px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0003}.back-button:hover{background:#f0f0f0;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.vote-button-float{padding:12px 30px;background:gold;color:#333;border:2px solid #ffd700;border-radius:50px;font-size:1rem;font-weight:900;cursor:pointer;box-shadow:0 4px 15px #00000040;transition:all .3s ease}.vote-button-float:hover{background:#ffed4e;border-color:#ffed4e;transform:translateY(-2px);box-shadow:0 6px 20px #00000059}.app-preview{width:100%;min-height:calc(100vh - 70px);transition:all .3s ease}.app-preview.with-panel{padding-right:420px}@media (max-width: 1200px){.app-preview.with-panel{padding-right:0}.vote-nav-bar{flex-direction:column;gap:10px;padding:12px 15px}.back-button,.vote-button-float{width:100%;text-align:center}}.results-container{min-height:100vh;background:linear-gradient(135deg,#1e3c72,#2a5298);padding:40px 20px;position:relative}.results-header{text-align:center;color:#fff;margin-bottom:40px}.results-header h1{font-size:2.5rem;margin-bottom:15px;text-shadow:0 4px 12px rgba(0,0,0,.3)}.total-voters{font-size:1.2rem;background:#fff3;padding:12px 30px;border-radius:25px;display:inline-block;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stats-grid{max-width:1200px;margin:0 auto 50px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:25px}.stat-card{background:#fff;border-radius:16px;padding:25px;box-shadow:0 8px 30px #0003;transition:all .3s ease;cursor:pointer;position:relative;border:3px solid transparent}.stat-card:hover{transform:translateY(-5px);box-shadow:0 12px 40px #0000004d}.stat-card.selected{border-color:#667eea;box-shadow:0 12px 40px #667eea66}.rank{position:absolute;top:15px;right:15px;width:50px;height:50px;background:linear-gradient(135deg,gold,#ffed4e);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:900;color:#333;box-shadow:0 4px 12px #ffd70066}.stat-card h3{font-size:1.3rem;color:#333;margin-bottom:8px;padding-right:60px}.app-id-label{font-size:.85rem;color:#666;font-weight:600;letter-spacing:1px;margin-bottom:20px}.score-display{text-align:center;margin:20px 0}.avg-score{font-size:3.5rem;font-weight:900;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.score-range{font-size:.9rem;color:#666;margin-top:8px}.vote-count{text-align:center;font-size:1.1rem;color:#999;margin:15px 0}.score-bar{height:10px;background:#e0e0e0;border-radius:10px;overflow:hidden;margin-top:15px}.score-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .5s ease}.votes-section{max-width:1200px;margin:0 auto;background:#fff;border-radius:20px;padding:30px;box-shadow:0 10px 40px #0003}.votes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;flex-wrap:wrap;gap:15px}.votes-header h2{font-size:1.8rem;color:#333}.filter-clear{padding:10px 20px;background:#f44;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.filter-clear:hover{background:#c00}.filter-badge{padding:10px 20px;background:#667eea;color:#fff;border-radius:8px;font-weight:600}.votes-list{display:flex;flex-direction:column;gap:20px;max-height:600px;overflow-y:auto;padding:10px}.no-votes{text-align:center;padding:40px;color:#999;font-size:1.2rem}.vote-item{padding:20px;background:#f9f9f9;border-left:4px solid #667eea;border-radius:10px;transition:all .2s}.vote-item:hover{background:#f0f0f0;box-shadow:0 4px 12px #0000001a}.vote-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.vote-app{display:flex;flex-direction:column;gap:4px}.vote-app strong{color:#333;font-size:1.1rem}.vote-app-id{font-size:.85rem;color:#666;font-weight:600;letter-spacing:.5px}.vote-score-badge{padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px;font-weight:700;font-size:1.1rem}.vote-comment{padding:15px;background:#fff;border-radius:8px;margin:12px 0;font-style:italic;color:#555;line-height:1.6;border-left:3px solid #ddd}.vote-meta{display:flex;justify-content:space-between;font-size:.85rem;color:#999;margin-top:10px}.vote-ip{font-family:Courier New,monospace;background:#f0f0f0;padding:4px 10px;border-radius:4px}.loading,.error{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.5rem;color:#fff}@media (max-width: 1200px){.vote-panel{width:100%}}@media (max-width: 600px){.vote-panel-header,.vote-form{padding:20px}.results-container{padding:20px 10px}.stats-grid{grid-template-columns:1fr}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
