:root{color:#111827;background:#f7f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:linear-gradient(180deg,#ffffffeb,#f7f8fbf5),radial-gradient(circle at top left,rgba(20,184,166,.16),transparent 34%),#f7f8fb}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(17,24,39,.08);background:#ffffffe0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.header-inner{display:flex;align-items:center;justify-content:space-between;width:min(100%,960px);min-height:64px;margin:0 auto;padding:10px 16px;gap:12px}.header-title-row{display:flex;align-items:center;min-width:0;gap:8px}.site-header h1{margin:0;overflow:hidden;color:#101827;font-size:20px;font-weight:800;letter-spacing:0;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.page-shell{width:min(100%,960px);margin:0 auto;padding:18px 16px 32px}.intro-band{padding:10px 0 18px}.intro-band p{margin:0 0 8px;color:#0f766e;font-size:13px;font-weight:700}.intro-band h2{max-width:520px;margin:0;color:#111827;font-size:26px;font-weight:850;letter-spacing:0;line-height:1.22}.app-grid{display:grid;gap:14px}.app-card{display:grid;grid-template-columns:1fr;gap:18px;padding:18px;border:1px solid rgba(17,24,39,.08);border-radius:8px;background:#fff;box-shadow:0 12px 30px #1118270f}.app-card.is-disabled{background:#ffffffb3}.app-card-main{display:grid;gap:14px}.app-card h2{margin:0 0 7px;color:#111827;font-size:22px;line-height:1.2}.app-card p{margin:0;color:#64748b;font-size:14px;line-height:1.55}.platform-list{display:flex;flex-wrap:wrap;gap:8px}.platform-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:#e6fffb;color:#0f766e;font-size:12px;font-weight:800}.platform-pill.muted{background:#f1f5f9;color:#64748b}.app-card-actions{display:grid;grid-template-columns:1fr 52px;gap:10px}.primary-button,.danger-button,.secondary-button,.icon-text-button,.icon-button,.square-button{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.primary-button{min-height:52px;padding:0 18px;border-radius:8px;background:#111827;color:#fff;font-weight:800;gap:8px;box-shadow:0 12px 22px #11182729}.primary-button:active,.danger-button:active,.secondary-button:active,.icon-text-button:active,.icon-button:active,.square-button:active{transform:translateY(1px)}.primary-button.disabled,.primary-button:disabled{cursor:not-allowed;background:#cbd5e1;box-shadow:none}.primary-button.full{width:100%}.danger-button{min-height:52px;padding:0 18px;border-radius:8px;background:#fee2e2;color:#b91c1c;font-weight:800;gap:8px}.secondary-button{min-height:52px;padding:0 18px;border-radius:8px;background:#eef2f7;color:#111827;font-weight:800}.icon-text-button{min-height:42px;padding:0 13px;border-radius:8px;background:#111827;color:#fff;font-weight:800;gap:7px}.icon-button,.square-button{width:44px;height:44px;flex:0 0 44px;border-radius:8px;background:#eef2f7;color:#111827}.square-button{width:52px;height:52px;flex-basis:52px}.square-button:disabled{cursor:not-allowed;color:#94a3b8}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:18px;background:#0f172a7a}.modal-panel{position:relative;width:min(100%,380px);padding:24px 18px 20px;border-radius:8px;background:#fff;box-shadow:0 26px 70px #0f172a47}.modal-panel.compact{width:min(100%,350px)}.modal-panel.wide{width:min(100%,520px)}.modal-panel h2{margin:0;padding-right:38px;color:#111827;font-size:21px;line-height:1.25}.modal-subtitle{margin:7px 0 18px;color:#64748b;font-size:14px}.modal-close{position:absolute;top:12px;right:12px;display:grid;width:36px;height:36px;place-items:center;border:0;border-radius:8px;background:#f1f5f9;color:#111827;cursor:pointer}.qr-frame{display:grid;width:min(100%,292px);aspect-ratio:1;margin:0 auto 16px;place-items:center;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.qr-frame img{display:block;width:min(88%,260px);height:auto}.link-text{display:block;overflow-wrap:anywhere;color:#0f766e;font-size:13px;line-height:1.45;text-align:center}.key-form,.admin-form{display:grid;gap:14px;margin-top:18px}.key-form input,.admin-form input,.admin-app-card input{width:100%;min-height:48px;padding:0 13px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#111827;outline:none}.key-form input:focus,.admin-form input:focus,.admin-app-card input:focus{border-color:#0f766e;box-shadow:0 0 0 4px #14b8a61f}.admin-shell{display:grid;gap:22px;padding-top:20px}.admin-section{display:grid;gap:14px}.admin-section h2{margin:0;color:#111827;font-size:20px;line-height:1.25}.admin-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-section-title p{margin:5px 0 0;color:#64748b;font-size:13px}.admin-section-title span{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:#eef2f7;color:#475569;font-size:12px;font-weight:800}.admin-form{width:min(100%,520px);margin:0 auto;padding:18px;border:1px solid rgba(17,24,39,.08);border-radius:8px;background:#fff;box-shadow:0 12px 30px #1118270f}.modal-form{width:100%;margin-top:18px;box-shadow:none}.admin-form label,.admin-app-card label{display:grid;gap:8px}.admin-form label span,.admin-app-card label span{color:#334155;font-size:14px;font-weight:800}.admin-form input[type=file],.admin-app-card input[type=file]{min-height:auto;padding:11px;color:#475569}.admin-message{width:min(100%,720px);margin-inline:auto}.admin-app-list{display:grid;gap:14px}.admin-list-panel{display:grid;gap:10px}.admin-list-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;min-height:72px;padding:14px;border:1px solid rgba(17,24,39,.08);border-radius:8px;background:#fff;box-shadow:0 10px 24px #1118270d}.admin-list-row h3{min-width:0;margin:0;overflow:hidden;color:#111827;font-size:17px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.row-action-group{display:flex;align-items:center;gap:8px}.danger-icon{background:#fee2e2;color:#b91c1c}.admin-app-card{display:grid;gap:16px;padding:16px;border:1px solid rgba(17,24,39,.08);border-radius:8px;background:#fff;box-shadow:0 12px 30px #1118270f}.package-editor-list{display:grid;gap:12px}.package-editor-list small,.admin-form small{overflow-wrap:anywhere;color:#64748b;font-size:12px;line-height:1.45}.detail-link-list{display:grid;gap:12px;margin-top:18px}.detail-link-item{display:grid;gap:7px;padding:13px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.detail-link-item span{color:#334155;font-size:13px;font-weight:800}.detail-link-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.copy-link-button{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 9px;border:0;border-radius:8px;background:#e6fffb;color:#0f766e;cursor:pointer;font-size:12px;font-weight:800;gap:5px}.copy-link-button span{color:inherit;font-size:inherit;font-weight:inherit}.detail-link-item p{margin:0;overflow-wrap:anywhere;color:#64748b;font-size:13px;line-height:1.45}.confirm-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}.admin-card-actions{display:grid;grid-template-columns:1fr;gap:10px}.empty-admin-list{margin:0;padding:18px;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;text-align:center}.form-error,.form-success{margin:0;font-size:14px;line-height:1.45}.form-error{color:#dc2626}.form-success{color:#0f766e}@media(min-width:720px){.header-inner{min-height:72px;padding-inline:24px}.page-shell{padding:28px 24px 48px}.intro-band h2{font-size:34px}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-card-actions,.confirm-actions{grid-template-columns:1fr 1fr}}
