:root{--bg:#f6f7fb;--surface:#fff;--surface2:#eef0f6;--text:#141824;--muted:#5b6478;--border:#dde1ec;--accent:#4f46e5;--accent2:#7c3aed;--green:#16a34a;--star:#f59e0b;--ad-bg:#fff7e6;--ad-border:#f5c451;--danger:#dc2626;--shadow:0 1px 3px rgba(16,24,40,.08)}[data-theme=dark]{--bg:#0d1017;--surface:#161b26;--surface2:#1e2534;--text:#e8ebf3;--muted:#9aa3b8;--border:#2a3247;--accent:#818cf8;--accent2:#a78bfa;--green:#22c55e;--ad-bg:#241d08;--ad-border:#8a6d1f;--shadow:0 1px 3px rgba(0,0,0,.4)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1120px;margin:0 auto;padding:0 16px}main{padding:8px 0 32px;min-height:60vh}h1{font-size:1.7rem;margin:.6em 0 .3em}h2{font-size:1.25rem;margin:1.2em 0 .6em}h3{font-size:1.05rem}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85em;word-break:break-all}.star{color:var(--star);font-weight:700}.page-sub{color:var(--muted);margin-top:0}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;gap:14px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}.logo{font-size:1.25rem;font-weight:800;color:var(--text);white-space:nowrap}.logo:hover{text-decoration:none}.header-search{flex:1 1;min-width:180px;display:flex}.header-search input{flex:1 1;padding:9px 12px;border:1px solid var(--border);border-right:none;border-radius:10px 0 0 10px;color:var(--text)}.header-search button,.header-search input{background:var(--surface2);font-size:.95rem}.header-search button{padding:9px 14px;border:1px solid var(--border);border-radius:0 10px 10px 0;cursor:pointer}.header-nav{display:flex;align-items:center;gap:14px}.header-nav a{color:var(--text);font-weight:600;font-size:.95rem}.theme-toggle{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:7px 10px;cursor:pointer;font-size:1rem}.hero{background:linear-gradient(120deg,var(--accent),var(--accent2));color:#fff;border-radius:16px;padding:28px 24px;margin:18px 0 8px}.hero h1{margin:0 0 8px;font-size:1.9rem;color:#fff}.hero p{margin:0 0 14px;opacity:.92;max-width:640px}.hero-stats{display:flex;gap:22px;flex-wrap:wrap;font-size:.95rem}.hero-stats strong{font-size:1.15rem}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:12px;gap:12px}.app-card{display:flex;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;color:var(--text);box-shadow:var(--shadow);transition:transform .08s ease}.app-card:hover{text-decoration:none;transform:translateY(-2px)}.app-card-name{font-weight:700;font-size:1rem;line-height:1.25}.app-card-cat{margin:2px 0 6px}.app-card-cat,.app-card-meta{color:var(--muted);font-size:.82rem}.app-card-meta{display:flex;gap:10px;flex-wrap:wrap}.app-card-meta .ver{background:var(--surface2);border-radius:6px;padding:0 6px}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px}.cat-card{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;color:var(--text);box-shadow:var(--shadow)}.cat-card:hover{text-decoration:none}.cat-icon{font-size:1.6rem}.cat-name{font-weight:700}.cat-count{color:var(--muted);font-size:.85rem}.load-more-row{text-align:center;margin:16px 0}.btn{display:inline-block;padding:9px 18px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:600;cursor:pointer;font-size:.95rem}.btn:hover{text-decoration:none;filter:brightness(1.05)}.btn-secondary{background:var(--surface2)}.btn-download{background:var(--green);border-color:var(--green);color:#fff;font-size:1.05rem;padding:13px 22px;border-radius:12px;display:inline-block;font-weight:700}.btn-download:hover{color:#fff}.btn-small{padding:5px 12px;font-size:.85rem}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.breadcrumbs{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:.88rem;margin:14px 0 4px;flex-wrap:wrap}.app-layout{display:grid;grid-template-columns:1fr 300px;grid-gap:24px;gap:24px;align-items:start}@media(max-width:860px){.app-layout{grid-template-columns:1fr}}.app-hero{display:flex;gap:18px;align-items:center;margin:10px 0 18px}.app-hero h1{margin:0;font-size:1.8rem}.app-dev{color:var(--muted);margin:2px 0 6px}.app-hero-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.92rem;color:var(--muted)}.download-note{color:var(--muted);font-size:.88rem;margin:8px 0 0}.app-section{margin-top:26px}.shots{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}@media(max-width:680px){.shots{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px;padding:6px 2px 14px;scrollbar-width:thin}.shots::-webkit-scrollbar{height:4px}.shots::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.shot,.shot-img{flex:0 0 68%;max-width:240px;scroll-snap-align:center}}@media(max-width:540px){.app-hero{gap:14px}.app-hero h1{font-size:1.45rem}.app-hero-meta{gap:8px 12px;font-size:.84rem}.btn-download{display:flex;justify-content:center;align-items:center;width:100%;text-align:center;box-sizing:border-box}}.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.badge-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--text)}.install-steps{padding-left:0;counter-reset:step;list-style:none;margin:14px 0}.install-steps li{position:relative;padding-left:40px;margin:16px 0;line-height:1.6}.install-steps li:before{content:counter(step);counter-increment:step;position:absolute;left:0;top:2px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}.mobile-sticky-bar{display:none}@media(max-width:768px){.mobile-sticky-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:10px 16px;z-index:90;box-shadow:0 -4px 16px rgba(0,0,0,.15);align-items:center;justify-content:space-between;gap:12px}.mobile-sticky-info{display:flex;align-items:center;gap:10px;overflow:hidden}.mobile-sticky-text{display:flex;flex-direction:column;overflow:hidden}.mobile-sticky-title{font-weight:700;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sticky-sub{font-size:.78rem;color:var(--muted)}.mobile-sticky-btn{background:var(--green);color:#fff!important;font-weight:700;font-size:.95rem;padding:9px 18px;border-radius:10px;white-space:nowrap;text-decoration:none;box-shadow:0 2px 8px rgba(22,163,74,.3)}.mobile-sticky-btn:hover{color:#fff}.app-page{padding-bottom:70px}}.shot{aspect-ratio:9/16;border-radius:12px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-weight:700;box-shadow:var(--shadow);text-align:center;padding:6px}.shot small{font-weight:400;opacity:.85}.feature-list{padding-left:20px}.feature-list li{margin:4px 0}.version-list{list-style:none;padding:0;margin:0}.version-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin:8px 0}.version-meta{color:var(--muted);font-size:.85rem;margin-left:10px}.sample-note{color:var(--star);font-size:.9rem}.faq{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin:8px 0}.faq summary{font-weight:600;cursor:pointer}.info-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.info-box dl{display:grid;grid-template-columns:auto 1fr;grid-gap:6px 14px;gap:6px 14px;margin:0}.info-box dt{color:var(--muted);font-size:.88rem}.info-box dd{margin:0;font-weight:600;font-size:.92rem;text-align:right}.app-sidebar{display:flex;flex-direction:column;gap:16px}.ad-slot{border:1.5px dashed var(--ad-border);background:var(--ad-bg);border-radius:12px;padding:10px 14px;margin:16px auto;text-align:center;overflow:hidden}.ad-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:700}.ad-placeholder-text{color:var(--muted);font-size:.9rem;padding:10px 0}.ad-footer,.ad-header{margin-top:14px}.ad-slot iframe,.ad-slot img{max-width:100%}.site-footer{border-top:1px solid var(--border);background:var(--surface);padding:22px 0;margin-top:10px}.site-footer p{margin:4px 0}.footer-note{color:var(--muted);font-size:.88rem}.admin-shell{display:grid;grid-template-columns:200px 1fr;grid-gap:24px;gap:24px;padding-top:18px}@media(max-width:760px){.admin-shell{grid-template-columns:1fr}}.admin-side nav{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.admin-side nav a{padding:8px 10px;border-radius:8px;color:var(--text);font-weight:600}.admin-side nav a:hover{background:var(--surface2);text-decoration:none}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px;margin:14px 0 22px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}.stat-num{font-size:1.6rem;font-weight:800}.admin-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:22px}.admin-table td,.admin-table th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:.92rem;vertical-align:top}.admin-table th{background:var(--surface2)}.login-wrap{display:flex;justify-content:center;padding:40px 0}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px;width:min(380px,100%);box-shadow:var(--shadow);gap:12px}.app-form,.login-card{display:flex;flex-direction:column}.app-form{gap:14px;max-width:760px}.app-form label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.92rem}.app-form label small{font-weight:400;color:var(--muted)}.app-form input,.app-form select,.app-form textarea,.login-card input{padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font-size:.95rem;font-family:inherit}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.check-row{flex-direction:row!important;align-items:center;gap:8px}.form-error{color:var(--danger);font-weight:600}.form-ok{color:var(--green);font-weight:600}.form-notice{border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-weight:600;max-width:760px;margin:0 0 14px}.form-notice-ok{color:var(--green);border-color:var(--green)}.form-notice-error{color:var(--danger);border-color:var(--danger)}.form-actions{display:flex;gap:12px;flex-wrap:wrap}.ad-fieldset{border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.ad-fieldset legend{font-weight:700;padding:0 6px}.upload-box{border:1px solid var(--border,#ccc);border-radius:10px;padding:14px 16px;margin:14px 0}.upload-box legend{font-weight:600;padding:0 6px}.hosted-none,.upload-hint{opacity:.75}.hosted-list{list-style:none;margin:0 0 12px;padding:0}.hosted-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px dashed var(--border,#ddd);flex-wrap:wrap}.upload-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:8px}.upload-msg{margin-top:8px;font-weight:500}.hosted-note{color:#1a9e54;font-weight:500}.shot-img{width:100%;aspect-ratio:9/16;border-radius:12px;display:block}.icon-preview,.shot-img{object-fit:cover;box-shadow:var(--shadow)}.icon-preview{width:64px;height:64px;border-radius:14px;background:var(--surface2)}.media-current{align-items:center}.media-current,.shots-admin{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.thumb-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}.thumb-wrap img{width:84px;aspect-ratio:9/16;object-fit:cover;border-radius:8px;box-shadow:var(--shadow);background:var(--surface2)}.publish-toggle{white-space:nowrap}.publish-toggle .btn{margin-left:6px}.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:12px;gap:12px;margin-bottom:28px}.guide-card{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;color:var(--text);box-shadow:var(--shadow)}.guide-card:hover{text-decoration:none;border-color:var(--accent,#6366f1)}.guide-card-kind{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.guide-card-title{font-weight:700;font-size:1.02rem;line-height:1.35}.guide-card-desc{font-size:.9rem;color:var(--muted);line-height:1.45}.guide-card-date{font-size:.8rem;color:var(--muted)}.article{max-width:760px}.article-kicker{color:var(--muted);font-size:.88rem;font-weight:600;margin:10px 0 4px}.article-lede{font-size:1.08rem;color:var(--muted);line-height:1.55}.article-section{margin:26px 0}.article-section p{line-height:1.65;margin:10px 0}.article-more{margin:28px 0 8px}