:root{--fir:#32b2a7;--text:#48515a;--muted:#89939b;--line:#e4e9ec}
*{box-sizing:border-box}body{margin:0;background:#f6f8f9;color:var(--text);font-family:"Microsoft YaHei",Arial,sans-serif;font-size:15px}a{color:var(--fir);text-decoration:none}button,input,select,textarea{font:inherit}button,.primary{border:1px solid #d3dde1;border-radius:6px;padding:9px 17px;background:#fff;color:var(--text);cursor:pointer}button:hover,a.primary:hover{filter:brightness(.96)}button:disabled{opacity:.6;cursor:wait}.primary{background:var(--fir);border-color:var(--fir);color:white;display:inline-block}.danger{color:#bb3945;border-color:#eabec5}input:not([type=checkbox]):not([type=file]),textarea,select{width:100%;border:1px solid #d5dee2;border-radius:6px;padding:11px 12px;background:white;color:var(--text)}textarea{resize:vertical}label{display:block;margin:16px 0 8px}label input,label textarea{margin-top:7px}h1{font-size:27px;font-weight:600}h2{font-size:21px}h3{font-size:18px}.muted{color:var(--muted)}[hidden]{display:none!important}
.fir-header{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:20px max(24px,calc((100vw - 1180px)/2))}.brand{font-size:22px;color:var(--text);font-weight:600}.fir-header nav{display:flex;gap:24px}.fir-user{margin-left:auto;display:flex;align-items:center;gap:10px}.fir-user img{width:36px;height:36px;border-radius:50%}.fir-user span{max-width:220px;overflow:hidden;text-overflow:ellipsis}.fir-user button{padding:4px 10px;font-size:13px}.fir-container{max-width:1180px;margin:38px auto;padding:0 24px;min-height:68vh}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.page-heading button{margin-left:8px}.filter-bar{display:flex;gap:12px;margin:24px 0}.filter-bar select{width:160px}.filter-bar input{max-width:400px}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.app-card{position:relative;background:#fff;border:1px solid var(--line);padding:30px 22px;border-radius:12px;text-align:center}.app-icon{width:100px;height:100px;object-fit:contain;border-radius:20px}.app-card h2{margin:18px 0 8px}.app-card p{margin:8px 0}.bundle{font-size:13px;color:var(--muted);word-break:break-all}.platform{font-size:13px;color:var(--muted)}.app-card>.platform{position:absolute;right:16px;top:12px}.card-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:22px}.card-actions button{padding:5px 10px;font-size:13px}.copy-link{background:transparent;border:0;color:var(--fir);padding:4px 0;word-break:break-all}.upload-card{border:2px dashed #cddadf;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:320px;background:#fafdfe}.upload-card>span{font-size:56px;color:var(--fir)}.upload-card.dragging{background:#e7f7f4;border-color:var(--fir)}.empty-state{text-align:center;padding:30px;color:var(--muted)}.fir-footer{padding:28px 20px;text-align:center;background:#edf1f2;display:flex;justify-content:center;gap:18px;color:var(--muted);font-size:13px}
.fir-modal{position:fixed;inset:0;background:#0008;z-index:1000;display:flex;justify-content:center;align-items:center;padding:24px}.fir-dialog{position:relative;background:white;width:min(580px,100%);max-height:90vh;overflow:auto;padding:30px;border-radius:12px}.close-dialog{position:absolute;right:12px;top:8px;border:0;font-size:26px;background:transparent}.fir-dialog progress{width:100%;accent-color:var(--fir)}.fir-dialog .primary{width:100%;margin-top:18px}.app-banner{display:flex;align-items:center;gap:26px;background:white;border:1px solid var(--line);border-radius:12px;padding:28px}.app-banner p{margin:7px 0}.banner-actions{margin-left:auto;display:flex;flex-direction:column;gap:16px;text-align:center}.tab-bar{display:flex;gap:12px;margin:26px 0}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:28px;margin-bottom:24px}.panel form{max-width:680px}.panel form+form{margin-top:32px;padding-top:16px;border-top:1px solid var(--line)}.panel>.danger{margin-top:32px}.release-row{padding:20px 0;border-bottom:1px solid var(--line)}.release-row:last-child{border-bottom:0}.release-row .card-actions{justify-content:flex-start;margin-top:14px}.description-form{display:flex;align-items:flex-start;gap:10px}.description-form textarea{flex:1}.description-form button{white-space:nowrap}.candidate-list{display:grid;gap:12px;margin-top:18px}.candidate-card{border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;gap:14px;align-items:center}.candidate-card img{width:48px;height:48px;border-radius:8px}.candidate-card button{margin-left:auto}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.profile-grid .panel{margin:0}.profile-grid>p{grid-column:1/-1}
.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(140deg,#e9f8f5,#f7f9fc)}.auth-card{background:white;padding:38px 40px;border:1px solid var(--line);border-radius:14px;width:min(440px,calc(100% - 32px));box-shadow:0 12px 50px #2244330a}.auth-card>.brand{display:block;text-align:center;margin-bottom:28px}.auth-card h1{font-size:26px}.auth-card>p{color:var(--muted)}.auth-card .primary{width:100%;margin-top:22px}.inline-label{display:flex;gap:9px;align-items:center;font-size:14px}.inline-label input{margin:0}.input-action{display:flex;gap:8px;align-items:center;margin-top:8px}.input-action input{min-width:0;margin:0!important}.input-action button{white-space:nowrap}.input-action img{width:140px;cursor:pointer}.auth-links{display:flex;justify-content:center;gap:26px;margin-top:25px}.fir-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:2000;background:#243c3e;color:white;border-radius:8px;padding:14px 24px;box-shadow:0 4px 20px #0002;max-width:90vw}#page-message{color:#b54740}
.download-page{background:white}.download-container{max-width:840px;text-align:center;margin:0 auto;padding:45px 24px}.site-title{color:var(--muted);margin-bottom:40px}.download-release{padding:28px 0 40px;border-bottom:1px solid var(--line)}.download-release h1{margin:18px 0 10px}.release-description{white-space:pre-wrap;max-width:620px;margin:16px auto}.download-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:14px;margin:25px 0}.download-actions .primary{padding:13px 28px}.stopped{color:#b54740}.qr-section{margin-top:30px}.qr-section p{color:var(--muted);font-size:14px}dialog{max-width:600px;max-height:88vh;border:1px solid var(--line);border-radius:12px;padding:24px}dialog::backdrop{background:#0008}dialog img{max-width:100%}#wechat-notice{position:fixed;inset:0;background:#000b;z-index:1500;text-align:right;padding:25px}#wechat-notice img{max-width:350px;width:75%;display:block;margin-left:auto}#wechat-notice button{margin-bottom:15px}
@media(max-width:900px){.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fir-header{padding:16px 22px;gap:16px}.fir-user span{display:none}.profile-grid{grid-template-columns:1fr}.app-banner{gap:18px}}
@media(max-width:600px){.fir-header{flex-wrap:wrap;gap:12px}.brand{font-size:18px}.fir-header nav{gap:15px;font-size:13px}.fir-user{margin-left:0}.fir-container{margin:24px auto;padding:0 16px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading button{margin-left:0;margin-right:8px}.filter-bar{gap:6px}.filter-bar select{width:120px}.app-grid{grid-template-columns:1fr}.app-banner{flex-wrap:wrap;padding:20px}.banner-actions{margin-left:0;flex-direction:row;align-items:center;width:100%}.tab-bar{gap:6px;flex-wrap:wrap}.tab-bar button{padding:8px 11px}.panel{padding:20px}.description-form{display:block}.description-form button{margin-top:8px}.fir-dialog{padding:26px 20px}.auth-card{padding:30px 26px}.fir-footer{flex-wrap:wrap}.download-container{padding:30px 18px}}
