:root{--bg:#f5f7fb;--card:rgba(255,255,255,.84);--text:#172033;--muted:#697386;--line:rgba(32,50,79,.10);--primary:#5a67f2;--primary2:#7b5cf0;--shadow:0 22px 60px rgba(33,45,78,.10);--radius:24px;--ok:#0c8b5f;--danger:#c23b3b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:linear-gradient(180deg,#f7f8fc 0,#f3f6fb 55%,#f7f8fc 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;min-height:100vh}.bg-orb{position:fixed;border-radius:999px;filter:blur(1px);pointer-events:none;z-index:-1}.orb-a{width:520px;height:520px;right:-180px;top:-210px;background:radial-gradient(circle,rgba(112,93,245,.16),rgba(112,93,245,0) 70%)}.orb-b{width:500px;height:500px;left:-260px;top:380px;background:radial-gradient(circle,rgba(65,180,210,.12),rgba(65,180,210,0) 72%)}a{color:inherit;text-decoration:none}.shell{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px}.site-header{position:sticky;top:0;z-index:50;background:rgba(247,248,252,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(38,54,84,.07)}.nav-wrap{height:74px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:white;font-size:20px;font-weight:900;background:linear-gradient(145deg,var(--primary),var(--primary2));box-shadow:0 10px 24px rgba(92,91,235,.28)}.brand strong{display:block;font-size:17px}.brand small{display:block;margin-top:1px;color:#98a0af;font-size:10px;letter-spacing:1.8px;text-transform:uppercase}.nav{display:flex;align-items:center;gap:6px}.nav a{padding:9px 13px;border-radius:11px;color:#596477;font-size:14px;font-weight:650}.nav a:hover{background:white;color:#263149}.nav .admin-link{background:#202a3c;color:white}.hero{padding:82px 0 48px;text-align:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid rgba(90,103,242,.16);background:rgba(255,255,255,.72);color:#5965ce;border-radius:999px;font-size:12px;font-weight:800;box-shadow:0 8px 30px rgba(44,55,91,.05)}.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:#6d75ef;box-shadow:0 0 0 4px rgba(109,117,239,.12)}.hero h1{max-width:850px;margin:20px auto 14px;font-size:clamp(42px,7vw,74px);line-height:1.03;letter-spacing:-3.5px}.hero h1 span{background:linear-gradient(100deg,#5967ec,#845be8);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{max-width:650px;margin:0 auto;color:var(--muted);font-size:17px;line-height:1.8}.hero-search{max-width:620px;margin:31px auto 0;display:flex;align-items:center;background:rgba(255,255,255,.88);border:1px solid rgba(33,48,78,.09);padding:7px;border-radius:18px;box-shadow:0 17px 44px rgba(42,52,82,.09)}.hero-search span{padding-left:14px;color:#9098a8}.hero-search input{flex:1;border:0;outline:0;background:transparent;padding:12px;font:inherit;color:inherit}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:16px 0 20px}.section-head h2{margin:0;font-size:26px;letter-spacing:-.7px}.section-head p{margin:5px 0 0;color:var(--muted);font-size:14px}.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-bottom:80px}.tool-card{position:relative;display:flex;flex-direction:column;min-height:245px;padding:24px;border:1px solid rgba(34,48,78,.08);border-radius:24px;background:var(--card);backdrop-filter:blur(14px);box-shadow:0 12px 35px rgba(40,50,79,.06);transition:.22s ease;overflow:hidden}.tool-card:after{content:"";position:absolute;width:150px;height:150px;right:-55px;bottom:-65px;background:radial-gradient(circle,rgba(101,102,239,.13),transparent 68%);transition:.2s}.tool-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(40,50,79,.11);border-color:rgba(90,103,242,.18)}.tool-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#f0f2ff,#ecebff);color:#5964dd;font-weight:900;font-size:18px;border:1px solid rgba(91,99,220,.10)}.tool-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.tool-badge{font-size:11px;font-weight:800;color:#6359cc;background:#f1efff;border:1px solid #e3dfff;padding:6px 8px;border-radius:999px}.tool-card h3{margin:20px 0 8px;font-size:19px}.tool-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.65;flex:1}.tool-meta{display:flex;align-items:center;justify-content:space-between;margin-top:24px;font-size:12px;color:#939baa}.tool-open{color:#535fd7;font-weight:800}.empty{grid-column:1/-1;padding:44px;text-align:center;color:var(--muted);border:1px dashed #ccd2df;border-radius:20px;background:rgba(255,255,255,.55)}.notice-strip{margin-bottom:38px;padding:14px 17px;border-radius:15px;background:rgba(232,248,242,.72);border:1px solid rgba(37,158,115,.14);color:#287457;font-size:13px}.site-footer{border-top:1px solid rgba(39,53,83,.08);background:rgba(255,255,255,.38);color:#8a93a3;font-size:12px}.footer-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-links{display:flex;gap:17px}.footer-links a:hover{color:#5965ce}.page{padding:44px 0 80px}.page-title{margin:0 0 8px;font-size:34px;letter-spacing:-1.1px}.page-sub{margin:0 0 28px;color:var(--muted)}.panel{background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:24px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d5dae4;background:white;color:#344055;padding:10px 14px;border-radius:11px;font:inherit;font-size:14px;font-weight:750;cursor:pointer}.btn:hover{background:#f8f9fc}.btn.primary{border-color:#5a67f2;background:#5a67f2;color:white}.btn.danger{border-color:#ffd1d1;color:#a93636;background:#fff8f8}.form-grid{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center}.form-grid label{font-size:13px;font-weight:750}.input,.textarea,.select{width:100%;padding:11px 12px;border:1px solid #d5dbe5;border-radius:11px;background:white;font:inherit;color:inherit;outline:none}.input:focus,.textarea:focus,.select:focus{border-color:#8d95f0;box-shadow:0 0 0 3px rgba(102,112,238,.11)}.flash{margin-bottom:18px;padding:13px 15px;border-radius:12px;font-size:13px}.flash.ok{color:#176a4e;background:#ecf9f3;border:1px solid #ccebdd}.flash.error{color:#9b3434;background:#fff2f2;border:1px solid #f3d1d1}@media(max-width:900px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{letter-spacing:-2.5px}}@media(max-width:620px){.shell{padding-left:16px;padding-right:16px}.nav-wrap{height:66px}.nav a:not(.admin-link){display:none}.hero{padding:58px 0 38px}.hero h1{font-size:45px;letter-spacing:-2.5px}.hero p{font-size:15px}.tool-grid{grid-template-columns:1fr}.footer-inner{flex-direction:column;justify-content:center;padding-top:20px;padding-bottom:20px}.form-grid{grid-template-columns:1fr;gap:7px}}

/* v2 admin / installer */
.admin-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.back-link{font-size:13px;color:#7c8494}.version-pill,.spec-badge{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#f0efff;color:#5e5dcc;border:1px solid #dfdefd;font-size:12px;font-weight:800;white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--line);background:rgba(255,255,255,.82);border-radius:19px;box-shadow:0 12px 32px rgba(40,50,79,.05)}.stat-card span{font-size:12px;color:#788295;font-weight:750}.stat-card strong{font-size:30px;letter-spacing:-1px}.stat-card small{color:#9aa2b1}.install-card{background:linear-gradient(145deg,#f5f4ff,#eef1ff);border-color:#dedffc}.install-card:hover{transform:translateY(-2px)}.panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-title-row strong{font-size:16px}.panel-title-row p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{padding:10px;text-align:left;color:#7b8495;font-weight:750;white-space:nowrap}.admin-table td{padding:14px 10px;border-top:1px solid #edf0f4;vertical-align:middle}.admin-table .right{text-align:right}.subline{display:block;color:#9aa1ae;margin-top:3px;font-size:11px}.source-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f3f5f8;color:#6e7787;font-size:10px;font-weight:800;text-transform:uppercase}.state-ok{color:#13815d;font-weight:750}.state-warn{color:#a16f35;font-weight:750}.state-bad{color:#b23b3b;font-weight:750}.install-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.75fr);gap:18px;margin-bottom:18px}.install-panel{min-height:300px}.upload-zone{min-height:190px;border:1.5px dashed #bfc7d5;border-radius:18px;background:#fafbfe;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:28px;cursor:pointer;transition:.2s}.upload-zone:hover,.upload-zone.drag{border-color:#6d75ef;background:#f5f5ff}.upload-zone.has-file{border-style:solid;border-color:#aeb5f5;background:#f7f7ff}.upload-icon{width:46px;height:46px;border-radius:14px;background:#eeefff;color:#5964dd;display:grid;place-items:center;font-size:22px;font-weight:900}.upload-zone strong{font-size:16px}.upload-zone span:last-child{font-size:12px;color:#8d96a5}.install-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.soft-note{font-size:12px;line-height:1.65;color:#7d8797}.checks-panel strong{display:block;margin-bottom:14px}.check-list{display:grid;gap:4px}.check-list>div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #eef0f4;font-size:12px}.check-list b{font-size:11px}.check-dot{width:8px;height:8px;border-radius:50%;background:#d2d7df}.check-dot.ok{background:#23a26d;box-shadow:0 0 0 4px rgba(35,162,109,.10)}.check-dot.bad{background:#d65050;box-shadow:0 0 0 4px rgba(214,80,80,.10)}.mini-info{margin-top:14px;color:#8c95a4;font-size:11px;line-height:1.7}.code-sample{margin:0;background:#172033;color:#e8ecf4;border-radius:15px;padding:18px;overflow:auto;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.spec-panel code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.history-message{max-width:420px;color:#6d7687}.muted-cell{text-align:center;color:#9aa2b1!important;padding:28px!important}.managed-strip{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px;padding:12px 14px;border:1px solid #e1e3fb;background:#f7f7ff;border-radius:13px;font-size:12px;color:#626b7b}.managed-strip a{margin-left:auto;color:#5863d9;font-weight:800}.status-dot{width:9px;height:9px;border-radius:50%;background:#d2d7df}.status-dot.good{background:#20a66a;box-shadow:0 0 0 5px rgba(32,166,106,.10)}
@media(max-width:820px){.stat-grid{grid-template-columns:1fr}.install-layout{grid-template-columns:1fr}.admin-head{align-items:flex-start;flex-direction:column}.install-actions{align-items:stretch;flex-direction:column}.install-actions .btn{width:100%}.panel-title-row{align-items:flex-start}.admin-table{min-width:720px}}

.downgrade-check{display:flex;align-items:center;gap:7px;margin-top:13px;color:#6d7687;font-size:12px}.downgrade-check input{accent-color:#5a67f2}

.security-warning{display:flex;gap:12px;align-items:flex-start;margin-top:15px;padding:13px 14px;border-radius:13px;background:#fff8ec;border:1px solid #f1dfbd;color:#7d5a20;font-size:12px;line-height:1.6}.security-warning strong{white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}
