:root{--blue:#5fbf73;--ink:#161a24;--muted:#93949f;--bg:#f4f4f8;--field:#f0eff5;--line:#e5e6ec;--radius:24px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{text-decoration:none;color:inherit}input,textarea,select{outline:none}input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px #5fbf735050}h1,h2,h3,p{margin-top:0}h1{font-size:38px;letter-spacing:-.035em}h2{font-size:23px}p{line-height:1.55}
.catalog-header{height:114px;padding-top:28px;background:#5fbf73;color:white}.catalog-top{max-width:960px;height:70px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 18px}.catalog-top strong{font-size:21px}.circle-mark{display:grid;place-items:center;border-radius:50%;border:1px solid #4fa863;background:#bfecc8;width:44px;height:44px;color:#1e3f58;font-size:15px}.pill{background:#bfecc8;border:1px solid #4fa863;padding:9px 23px;border-radius:40px;font-size:16px;color:#092a43}
.catalog-wrap{max-width:760px;margin:auto;padding:23px 18px 60px}.search-wrap{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #d8d8e1;box-shadow:0 4px 12px #161a240a;border-radius:40px;height:58px;padding:0 22px}.search-wrap input{border:0;flex:1;min-width:0;font-size:18px;background:transparent}.search-wrap input:focus{box-shadow:none}.search-icon{font-size:35px;line-height:0;color:#18202e;transform:rotate(-18deg)}.catalog-count{text-align:center;color:#999ba6;margin:26px 0 20px;font-size:14px}.welcome-card{background:white;text-align:center;padding:25px 20px;border-radius:28px;margin-bottom:14px}.welcome-card b{font-size:19px}.welcome-card p{color:#8e929c;margin:10px 0 0;white-space:pre-wrap}.app-panel{background:#fff;border-radius:30px;padding:10px 24px 20px}.catalog-item{padding:19px 0 17px;border-bottom:1px solid var(--line)}.catalog-item:last-child{border-bottom:0}.app-row{display:flex;align-items:center;gap:13px}.app-icon{width:72px;height:72px;object-fit:cover;border-radius:17px;flex-shrink:0;background:#e8e8ef}.app-info{flex:1;min-width:0}.app-name{font-size:20px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-developer{color:#9899a1;margin:3px 0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-meta{color:#a0a1aa;font-size:12px;line-height:1.6}.download-button{border-radius:50px;background:var(--blue);color:white;padding:9px 20px;flex-shrink:0;font-weight:600}.download-button:hover{background:#4aa860}.app-subtitle{margin:15px 0 0;padding-top:12px;border-top:1px solid #eee;color:#454851;font-size:14px;white-space:pre-wrap}.catalog-foot{text-align:center;color:#a4a5ac;font-size:12px;margin-top:24px}.empty{text-align:center;color:#9399a4;padding:38px 20px}
dialog{border:0;box-shadow:0 22px 80px #1115;border-radius:26px;max-width:calc(100vw - 22px)}dialog::backdrop{background:#141a2c70}.filter-dialog{width:380px;padding:25px}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px}.dialog-head h2,.dialog-head h3{margin:0}.icon-button{background:transparent;border:0;font-size:28px;color:#989ba5}.filter-choices{display:flex;flex-wrap:wrap;gap:10px}.filter-choice{border:1px solid #e1e1e6;background:#f4f5fa;padding:10px 17px;border-radius:18px}.filter-choice.active{background:#e2f5e7;color:#4fa863;border-color:#a8d9b2}
.admin-page{background:linear-gradient(#e8f5ea 0,#f4f4f8 480px);min-height:100vh}.admin-width{max-width:900px;margin:auto;padding:0 20px}.admin-hero{padding:67px 0 64px;background:radial-gradient(circle at 68% 30%,#f0faf2 0,#dff3e4 45%,#d0e0ff00 85%)}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.admin-heading h1{margin:9px 0 12px;font-size:42px}.admin-heading p{color:#9496a2;margin:0}.eyebrow{font-size:11px;letter-spacing:.18em;color:#5ba56c;font-weight:700}.logout-button{border:0;border-radius:50%;background:white;box-shadow:0 4px 15px #242d4712;color:#f25050;padding:16px}.admin-content{margin-top:-24px;padding-bottom:60px}.surface{background:#fff;border-radius:26px;box-shadow:0 8px 22px #3339590c}.source-card{padding:29px 30px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.section-head h2{margin:0}.success-badge{background:#e1faea;border-radius:30px;color:#18a157;padding:8px 15px;font-weight:600}.source-url{background:#f0eff5;padding:19px 20px;border-radius:18px;line-height:1.6;overflow-wrap:anywhere;color:#454855}.action-wrap{display:flex;gap:9px;flex-wrap:wrap;margin-top:19px}.soft-button{display:inline-block;background:#e4f6e7;color:#4fa863;border:0;border-radius:30px;padding:11px 17px;font-weight:600;font-size:14px}.soft-button:hover{background:#d6efd9}.soft-button.neutral{background:#f0eff5;color:#555963}.manage-section{margin-top:42px}.manage-section>h2{margin-bottom:21px}.app-admin-list{overflow:hidden}.admin-app-row{display:flex;align-items:center;gap:17px;padding:18px 27px;border-bottom:1px solid var(--line)}.admin-app-row:last-child{border-bottom:0}.admin-app-icon{width:65px;height:65px;object-fit:cover;border-radius:17px;background:#e5e7ee}.admin-app-text{flex:1;min-width:0}.admin-app-text strong{display:block;font-size:18px;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-app-text span{color:#9a9ca4;font-size:14px}.row-tool{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;padding:5px 9px;color:#7f8794;line-height:0}.row-tool svg{width:24px;height:24px;display:block;fill:currentColor}.row-tool.edit{color:#58b06c}.row-tool.remove{color:#f54a53}.settings-form{padding:29px 30px}.settings-form label,.app-form label,.login-card label{display:block;font-size:15px;font-weight:600;color:#494a56;margin-bottom:22px}.settings-form input,.settings-form textarea,.app-form input:not([type="radio"]):not([type="file"]),.app-form textarea,.app-form select,.login-card input{display:block;margin-top:10px;width:100%;background:var(--field);border:1px solid transparent;border-radius:17px;padding:17px 18px;color:#252631}.settings-form textarea,.app-form textarea{resize:vertical}.settings-form label:last-of-type{margin-bottom:14px}.form-end{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.primary{color:white;border:0;border-radius:17px;background:var(--blue);padding:14px 24px;font-weight:700}.primary:hover{background:#4aa860}.wide{width:100%}.form-message{min-height:20px;font-size:13px;color:#e64545;margin:6px 0 0}.admin-foot{text-align:center;color:#9299a5;font-size:12px;margin-top:35px}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{background:white;padding:42px;max-width:420px;width:100%;border-radius:28px;box-shadow:0 12px 50px #60678922}.login-card h1{font-size:28px;margin:20px 0 8px}.login-card .muted{color:#9699a3;margin-bottom:28px}.logo-block{display:grid;place-items:center;width:55px;height:55px;background:linear-gradient(145deg,#6fd184,#4fa863);color:white;border-radius:16px;font-size:30px}
.app-dialog{width:670px;padding:30px 30px 28px;max-height:92vh;overflow:auto}.app-dialog .dialog-head{position:sticky;top:-30px;background:white;z-index:1;padding-top:7px;padding-bottom:10px}.app-form label{margin-bottom:20px}.app-form .two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.app-form input[type="file"]{display:block;margin-top:10px;width:100%;padding:16px;border-radius:16px;background:var(--field);font-size:13px;color:#757784}.app-form input[type="file"]::file-selector-button{background:#e4f6e7;border:0;border-radius:10px;padding:9px;color:#4fa863;margin-right:15px}.choice-title{color:#4b4c59;font-weight:700;margin-bottom:13px}.segmented{display:flex;background:var(--field);padding:5px;border-radius:18px;margin-bottom:24px}.segmented label{flex:1;margin:0;cursor:pointer}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented span{display:block;text-align:center;border-radius:14px;padding:12px;color:#9a9ca7}.segmented input:checked+span{background:white;color:#58b06c;box-shadow:0 2px 8px #25263513}.hint{font-size:12px;color:#969aa5;margin:-8px 0 22px}.upload-progress{margin-bottom:20px}.progress-text{font-size:13px;color:#58b06c;margin-bottom:8px}progress{display:block;width:100%;height:12px;accent-color:var(--blue)}
@media(max-width:540px){.catalog-header{height:100px;padding-top:18px}.catalog-wrap{padding:19px 13px 45px}.catalog-top{padding:0 12px}.app-panel{padding:6px 17px 15px}.app-icon{width:60px;height:60px;border-radius:15px}.app-name{font-size:18px}.app-developer{font-size:13px}.app-meta{font-size:11px}.download-button{padding:8px 16px;font-size:14px}.app-row{gap:10px}.admin-hero{padding:43px 0 62px}.admin-heading h1{font-size:34px}.admin-content{margin-top:-28px}.source-card,.settings-form{padding:22px}.section-head h2{font-size:20px}.manage-section{margin-top:34px}.admin-app-row{padding:15px;gap:10px}.admin-app-icon{width:52px;height:52px;border-radius:12px}.admin-app-text strong{font-size:15px}.admin-app-text span{font-size:12px}.row-tool{padding:3px}.row-tool svg{width:22px;height:22px}.app-dialog{padding:20px 19px 24px;max-height:95vh}.app-form .two-col{gap:9px}.app-form .two-col input{padding:13px 10px}.login-card{padding:30px 24px}.action-wrap{gap:7px}.soft-button{font-size:12px;padding:11px 14px}}
.row-tool.copy-file{color:#58b06c}