:root{--bg:#fafaf8;--card-bg:#fff;--text:#1a1a18;--text-secondary:#6b6b63;--accent:#d14b28;--accent-hover:#b8401f;--tag-bg:#f0efeb;--tag-text:#4a4a44;--border:#e8e7e3;--font-body:"DM Sans", sans-serif;--font-heading:"Fraunces", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-size:16px;line-height:1.6;display:flex}a{color:inherit;text-decoration:none}.header{background:var(--card-bg);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.header-logo{font-family:var(--font-heading);color:var(--accent);font-size:22px;font-weight:700;text-decoration:none}.header-logo:hover{color:var(--accent-hover)}.header-actions{align-items:center;gap:12px;display:flex}.header-user{color:var(--text-secondary);font-size:14px}.header-user a{color:var(--text);font-weight:500}.header-user a:hover{color:var(--accent)}.btn{font-family:var(--font-body);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);color:#fff}.btn-secondary{color:var(--text);border:1px solid var(--border);background:0 0}.btn-secondary:hover{background:var(--tag-bg)}.btn-ghost{color:var(--text-secondary);background:0 0;padding:4px 8px}.btn-ghost:hover{background:var(--tag-bg);color:var(--text)}.btn-sm{padding:4px 10px;font-size:14px}.hero{text-align:center;max-width:720px;margin:0 auto;padding:64px 24px 40px}.hero-title{font-family:var(--font-heading);color:var(--text);margin-bottom:16px;font-size:clamp(22px,3.5vw,32px);font-weight:700;line-height:1.2}.hero-title span{color:var(--accent)}.hero-subtitle{color:var(--text-secondary);max-width:480px;margin-bottom:32px;margin-left:auto;margin-right:auto;font-size:18px}.search-container{max-width:560px;margin:0 auto 32px;position:relative}.search-input{border:1.5px solid var(--border);width:100%;font-family:var(--font-body);background:var(--card-bg);color:var(--text);border-radius:12px;outline:none;padding:14px 20px 14px 48px;font-size:16px;transition:border-color .15s}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--text-secondary)}.search-icon{color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.filters{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:40px;padding:0 24px;display:flex}.filter-pill{cursor:pointer;border:1.5px solid var(--border);background:var(--card-bg);color:var(--text-secondary);font-size:14px;font-weight:500;font-family:var(--font-body);border-radius:20px;padding:6px 14px;transition:all .15s}.filter-pill:hover{border-color:var(--accent);color:var(--accent)}.filter-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.main-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:0 24px 64px}.app-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.empty-state{text-align:center;color:var(--text-secondary);grid-column:1/-1;padding:64px 24px}.empty-state h3{font-family:var(--font-heading);color:var(--text);margin-bottom:8px;font-size:24px}.app-card{background:var(--card-bg);border:1.5px solid var(--border);border-radius:16px;flex-direction:column;gap:12px;padding:20px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.app-card:hover{border-color:#d0cfc9;box-shadow:0 4px 16px #0000000f}.app-card-header{align-items:flex-start;gap:12px;display:flex}.app-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.app-card-title-row{flex:1;min-width:0}.app-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.app-name a{color:var(--text);text-decoration:none}.app-name a:hover{color:var(--accent)}.app-author{color:var(--text-secondary);margin-top:2px;font-size:14px}.app-author a{color:var(--accent);font-weight:500}.app-author a:hover{text-decoration:underline}.app-description{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.app-card-footer{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.app-tags{flex-wrap:wrap;gap:6px;display:flex}.app-tag{background:var(--tag-bg);color:var(--tag-text);border-radius:20px;padding:3px 10px;font-size:14px;font-weight:500}.upvote-btn{border:1.5px solid var(--border);background:var(--card-bg);color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;border-radius:8px;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.upvote-btn:hover{border-color:var(--accent);color:var(--accent)}.upvote-btn.upvoted{background:var(--accent);border-color:var(--accent);color:#fff}.card-owner-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:12px;right:12px}.app-card:hover .card-owner-actions{opacity:1}.card-icon-btn{border:1px solid var(--border);background:var(--card-bg);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.card-icon-btn:hover{background:var(--tag-bg);color:var(--text)}.card-icon-btn.delete:hover{color:#dc2626;background:#fee2e2;border-color:#fecaca}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border-radius:20px;width:100%;max-width:480px;max-height:90vh;padding:32px;overflow-y:auto;box-shadow:0 20px 60px #00000026}.modal-title{font-family:var(--font-heading);color:var(--text);margin-bottom:8px;font-size:24px;font-weight:700}.modal-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:14px}.modal-close{background:var(--tag-bg);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;top:16px;right:16px}.modal-close:hover{background:var(--border);color:var(--text)}.form-group{margin-bottom:16px}.form-label{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-input,.form-select,.form-textarea{border:1.5px solid var(--border);width:100%;font-family:var(--font-body);color:var(--text);background:var(--bg);appearance:none;border-radius:10px;outline:none;padding:10px 14px;font-size:15px;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-secondary)}.form-textarea{resize:vertical;min-height:100px;line-height:1.5}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B6B63' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}.form-error{color:#dc2626;margin-top:4px;font-size:14px}.form-hint{color:var(--text-secondary);margin-top:4px;font-size:14px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.icon-preview-row{align-items:flex-end;gap:12px;display:flex}.icon-preview{border:1.5px solid var(--border);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.modal-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.toggle-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.toggle-label{font-size:15px;font-weight:500}.toggle-description{color:var(--text-secondary);margin-top:2px;font-size:14px}.toggle{flex-shrink:0;width:44px;height:24px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--border);border-radius:24px;transition:background-color .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;bottom:3px;left:3px}.toggle input:checked+.toggle-slider{background-color:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translate(20px)}.profile-header{width:100%;max-width:1200px;margin:0 auto;padding:48px 24px 32px}.profile-info{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.profile-avatar{background:var(--accent);color:#fff;width:72px;height:72px;font-family:var(--font-heading);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:28px;font-weight:700;display:flex}.profile-details{flex:1}.profile-name{font-family:var(--font-heading);color:var(--text);font-size:28px;font-weight:700}.profile-username{color:var(--text-secondary);margin-top:2px;font-size:15px}.profile-meta{flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;display:flex}.profile-stat{color:var(--text-secondary);font-size:14px}.profile-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.settings-panel{background:var(--card-bg);border:1.5px solid var(--border);border-radius:16px;width:100%;max-width:1200px;margin-bottom:24px;margin-left:auto;margin-right:auto;padding:24px}.settings-title{font-family:var(--font-heading);margin-bottom:16px;font-size:18px;font-weight:600}.static-page{max-width:720px;margin:0 auto;padding:48px 24px 80px}.static-page h1{font-family:var(--font-heading);color:var(--text);margin-bottom:8px;font-size:40px;font-weight:700}.static-page .page-meta{color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:40px;padding-bottom:24px;font-size:14px}.static-page h2{font-family:var(--font-heading);color:var(--text);margin-top:36px;margin-bottom:12px;font-size:22px;font-weight:600}.static-page p{color:var(--text-secondary);margin-bottom:16px;line-height:1.7}.static-page ul{color:var(--text-secondary);margin-bottom:16px;padding-left:20px;line-height:1.7}.static-page a{color:var(--accent)}.static-page a:hover{text-decoration:underline}.app-detail{width:100%;max-width:860px;margin:0 auto;padding:32px 24px 64px}.app-detail-breadcrumb{color:var(--text-secondary);margin-bottom:20px;font-size:13px}.app-detail-breadcrumb a{color:var(--accent)}.app-detail-breadcrumb a:hover{text-decoration:underline}.app-detail-main{background:var(--card-bg);border:1.5px solid var(--border);border-radius:16px;margin-bottom:20px;padding:28px 32px}.app-detail-header{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.app-detail-icon{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:30px;display:flex}.app-detail-meta{flex:1}.app-detail-name{font-family:var(--font-heading);color:var(--text);margin-bottom:4px;font-size:24px;font-weight:700;line-height:1.2}.app-detail-creator{color:var(--text-secondary);font-size:13px}.app-detail-creator a{color:var(--accent);font-weight:500}.app-detail-creator a:hover{text-decoration:underline}.app-detail-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.app-detail-divider{border:none;border-top:1px solid var(--border);margin:0 0 20px}.app-detail-desc{color:var(--text-secondary);margin-bottom:20px;font-size:15px;line-height:1.7}.app-detail-pills{flex-wrap:wrap;gap:8px;display:flex}.app-detail-pills .app-tag:hover{background:var(--border);color:var(--text)}.app-detail-section{background:var(--card-bg);border:1.5px solid var(--border);border-radius:16px;margin-bottom:20px;padding:22px 24px}.app-detail-section-header{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.app-detail-section-title{color:var(--text);font-size:15px;font-weight:700}.app-detail-see-all{color:var(--accent);font-size:13px}.app-detail-see-all:hover{text-decoration:underline}.mini-cards-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mini-cards-grid.single{grid-template-columns:1fr;max-width:420px}.mini-card{background:var(--card-bg);border:1.5px solid var(--border);cursor:pointer;color:inherit;border-radius:12px;flex-direction:column;gap:8px;padding:16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.mini-card:hover{border-color:#d0cfc9;box-shadow:0 2px 8px #0000000f}.mini-card-top{align-items:center;gap:10px;display:flex}.mini-card-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.mini-card-name{color:var(--text);font-size:14px;font-weight:600;line-height:1.3}.mini-card-creator{color:var(--text-secondary);margin-top:1px;font-size:12px}.mini-card-creator span{color:var(--accent);font-weight:500}.mini-card-desc{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.mini-card-footer{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.mini-card-tags{flex-wrap:wrap;gap:6px;display:flex}.mini-card-tag{background:var(--tag-bg);color:var(--tag-text);border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.mini-card-votes{color:var(--text-secondary);flex-shrink:0;font-size:12px}.mini-card-votes.has-votes{color:var(--accent)}.footer{background:var(--card-bg);border-top:1px solid var(--border);padding:24px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;display:flex}.footer-logo{font-family:var(--font-heading);color:var(--accent);font-size:18px;font-weight:700}.footer-links{flex-wrap:wrap;gap:20px;display:flex}.footer-links a{color:var(--text-secondary);font-size:14px;transition:color .15s}.footer-links a:hover{color:var(--text)}.footer-copy{color:var(--text-secondary);text-align:center;width:100%;margin-top:8px;font-size:13px}.contact-form{background:var(--card-bg);border:1.5px solid var(--border);border-radius:16px;margin-top:24px;padding:32px}.loading{text-align:center;color:var(--text-secondary);padding:80px 24px;font-size:16px}.result-count{color:var(--text-secondary);text-align:center;margin-bottom:16px;font-size:14px}.success-modal{background:var(--card-bg);text-align:center;border-radius:20px;width:100%;max-width:400px;padding:40px 32px 32px;animation:.2s successPop;position:relative;box-shadow:0 20px 60px #00000026}@keyframes successPop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.success-modal-emoji{margin-bottom:14px;font-size:44px;line-height:1}.success-modal-title{font-family:var(--font-heading);color:var(--text);margin-bottom:8px;font-size:26px;font-weight:700}.success-modal-body{color:var(--text-secondary);margin-bottom:20px;font-size:15px;line-height:1.5}.success-modal-share{background:var(--tag-bg);border:1.5px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:10px 10px 10px 14px;display:flex}.success-modal-url{color:var(--text);text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;font-size:13px;overflow:hidden}.success-modal-copy{background:var(--accent);color:#fff;font-size:13px;font-family:var(--font-body);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;min-width:64px;padding:6px 14px;font-weight:500;transition:background .15s}.success-modal-copy:hover{background:var(--accent-hover)}@media (max-width:640px){.hero{padding:40px 16px 24px}.hero-title{font-size:20px}.hero-subtitle{font-size:16px}.main-content{padding:0 16px 48px}.app-grid{grid-template-columns:1fr}.modal{padding:24px}.header{padding:0 16px}.form-row{grid-template-columns:1fr}.footer-inner{flex-direction:column;align-items:flex-start}.profile-header{padding:32px 16px 24px}.app-detail{padding:24px 16px 48px}.app-detail-main{padding:20px}.app-detail-header{flex-wrap:wrap}.app-detail-actions{width:100%}.mini-cards-grid{grid-template-columns:1fr}.mini-cards-grid.single{max-width:100%}}
