:root{--bg:#f5f3ee;--surface:#fffdf9;--surface-2:#efebe3;--text:#1c1b18;--muted:#6f6b63;--border:#e2ddd3;--border-strong:#d3ccbe;--accent-a:#34322e;--accent-b:#121211;--accent:color-mix(in srgb, var(--accent-a), var(--accent-b));--accent-text:color-mix(in srgb, var(--accent) 62%, var(--text));--accent-on:#fffef9;--danger:#b4453f;--ok:#3f7a5b;--shadow:0 18px 46px #2e271817;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0c0e0f;--surface:#141819;--surface-2:#1b2123;--text:#f0efe9;--muted:#959b9e;--border:#252d30;--border-strong:#333c40;--accent-a:#f0ede5;--accent-b:#cfcbc2;--accent-text:color-mix(in srgb, var(--accent) 62%, var(--text));--accent-on:#161513;--danger:#ff8b84;--ok:#7cc59d;--shadow:0 22px 60px #0000006b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(70% 60% at 8% 0%, color-mix(in srgb, var(--surface-2) 75%, transparent), transparent 62%), radial-gradient(60% 55% at 96% 100%, color-mix(in srgb, var(--surface-2) 60%, transparent), transparent 58%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:14px/1.55 Segoe UI Variable,Segoe UI,system-ui,-apple-system,Microsoft YaHei,sans-serif}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}h1{letter-spacing:-.025em;font-size:clamp(24px,3.4vw,34px);line-height:1.15}h2{letter-spacing:-.01em;font-size:16px}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:10;border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);align-items:center;gap:24px;padding:12px clamp(16px,4vw,40px);display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.mark{width:32px;height:32px;color:var(--accent-on);background:linear-gradient(135deg, var(--accent-a), var(--accent-b));border-radius:9px;place-items:center;font-weight:700;display:grid;box-shadow:inset 0 1px #ffffff59,0 6px 14px #00000029}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text small{color:var(--muted);font-size:11px}.nav{gap:4px;margin-left:8px;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:7px 11px;font-size:13px;font-weight:550}.nav a:hover{background:color-mix(in srgb, var(--surface-2) 70%, transparent);color:var(--text);text-decoration:none}.nav a.active{background:var(--surface-2);color:var(--text)}.top-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.content{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:clamp(24px,5vw,54px) clamp(16px,4vw,32px)}.footer{text-align:center;color:var(--muted);padding:24px;font-size:12px}.page{flex-direction:column;gap:18px;display:flex}.page.narrow{max-width:460px;margin:4vh auto 0}.page.hero{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.hero-copy{flex-direction:column;gap:14px;padding-top:12px;display:flex}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:650}.lede{color:var(--muted);max-width:56ch;font-size:15px}.feature-list{color:var(--muted);flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.feature-list li{padding-left:22px;position:relative}.feature-list li:before{content:"";background:linear-gradient(135deg, var(--accent-a), var(--accent-b));border-radius:50%;width:7px;height:7px;position:absolute;top:8px;left:4px}.card{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--shadow);padding:20px}.stack{flex-direction:column;gap:14px;display:flex}.center{text-align:center;align-items:center}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:12px}.note{background:var(--surface-2);color:var(--muted);border-radius:9px;padding:10px 12px;font-size:12.5px}.note.danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface))}.actions{flex-wrap:wrap;gap:8px;display:flex}.row{align-items:center;gap:8px;display:flex}.button{border:1px solid var(--border-strong);background:var(--surface);height:38px;color:var(--text);font:inherit;cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:600;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.button:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 16px #0000001a}.button:active{box-shadow:none;transform:translateY(0)}.button:disabled{opacity:.55;cursor:default;box-shadow:none;transform:none}.button.primary{color:var(--accent-on);background:linear-gradient(135deg, var(--accent-a), var(--accent-b));border-color:#0000;box-shadow:inset 0 1px #ffffff47,0 5px 14px #0000002e}.button.ghost{color:var(--muted);background:0 0;border-color:#0000}.button.ghost:hover{background:var(--surface-2);color:var(--text);box-shadow:none}.button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--border));background:0 0}.button.small{height:32px;padding:0 12px;font-size:12px}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.field input{border:1px solid var(--border-strong);background:var(--bg);height:42px;color:var(--text);font:inherit;border-radius:9px;outline:none;padding:0 12px;font-size:14px}.field input:focus{border-color:var(--accent-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.code-input{text-align:center;letter-spacing:.24em;text-transform:uppercase;font-family:ui-monospace,Consolas,monospace!important;font-size:20px!important}.badge{border:1px solid var(--border-strong);background:var(--surface-2);height:24px;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:0 9px;font-size:11px;font-weight:650;display:inline-flex}.badge.accent{color:var(--accent-text);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;display:flex}.page-head p{margin-top:4px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.device-card{flex-direction:column;gap:10px;display:flex;position:sticky;top:92px}.list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.list li{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);justify-content:space-between;align-items:center;gap:14px;padding:10px 2px;display:flex}.list li:last-child{border-bottom:0}.list li>div{flex-direction:column;gap:2px;min-width:0;display:flex}.list strong{overflow-wrap:anywhere;font-size:13px}.list small{font-size:11.5px}.danger{color:var(--danger)}.spinner{border:2.5px solid var(--border);border-top-color:var(--accent-text);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.check{width:52px;height:52px;color:var(--ok);border:1px solid color-mix(in srgb, var(--ok) 35%, var(--border));background:color-mix(in srgb, var(--ok) 12%, var(--surface));border-radius:50%;place-items:center;font-size:24px;display:grid}@media (width<=820px){.page.hero{grid-template-columns:1fr}.device-card{position:static}.grid.two{grid-template-columns:1fr}.topbar{flex-wrap:wrap;gap:10px}.nav{order:3;width:100%;margin-left:0;overflow-x:auto}}.note.ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 10%, var(--surface))}.mono{font-family:ui-monospace,Consolas,monospace}.wrap{overflow-wrap:anywhere}.upload-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.upload-row input[type=file]{border:1px dashed var(--border-strong);background:var(--bg);color:var(--muted);font:inherit;border-radius:9px;flex:240px;padding:9px 10px;font-size:12.5px}.package-list{flex-direction:column;gap:6px;display:flex}.package-row{border:1px solid var(--border);color:var(--text);background:color-mix(in srgb, var(--bg) 55%, transparent);border-radius:11px;justify-content:space-between;align-items:center;gap:16px;padding:12px;transition:border-color .12s,background .12s;display:flex}.package-row:hover{border-color:var(--border-strong);background:var(--surface-2);text-decoration:none}.package-row>div{flex-direction:column;gap:2px;min-width:0;display:flex}.package-row small{font-size:11.5px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:12.5px}.table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:10.5px;font-weight:650}.table td{border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);vertical-align:top;padding:10px}.table tr:last-child td{border-bottom:0}.notes-cell{flex-direction:column;gap:3px;max-width:360px;display:flex}.tabs{border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 60%, transparent);border-radius:10px;align-self:flex-start;gap:3px;padding:3px;display:inline-flex}.tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 14px;font-size:12.5px;font-weight:600}.tab.is-on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.review-layout{grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.review-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.review-item{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.review-item:hover{background:var(--surface-2)}.review-item.is-on{border-color:var(--border-strong);background:var(--surface-2)}.review-item div{flex-direction:column;gap:2px;min-width:0;display:flex}.review-item small{font-size:11px}.review-thumb{object-fit:cover;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;width:100%;max-height:240px}.meta-grid{grid-template-columns:96px minmax(0,1fr);gap:6px 12px;margin:0;font-size:12px;display:grid}.meta-grid dt{color:var(--muted)}.meta-grid dd{min-width:0;margin:0}.field textarea{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font:inherit;resize:vertical;border-radius:9px;outline:none;padding:10px 12px;font-size:13px}.field textarea:focus{border-color:var(--accent-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.badge.warn{color:#8a5a13;background:#d9a44129;border-color:#d9a44180}.badge.status-pending{color:#8a5a13;background:#d9a44124;border-color:#d9a44180}.badge.status-published,.badge.status-approved{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 35%, var(--border));background:color-mix(in srgb, var(--ok) 10%, var(--surface))}.badge.status-rejected{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--surface))}.badge.status-draft,.badge.status-archived{color:var(--muted)}@media (width<=900px){.review-layout{grid-template-columns:1fr}.package-row{flex-direction:column;align-items:flex-start;gap:8px}}.grant-form{grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) 96px minmax(0,1fr) auto;align-items:end;gap:10px;padding-top:4px;display:grid}.grant-form .field input,.grant-form .field select{min-width:0;height:38px}.field select{border:1px solid var(--border-strong);background:var(--bg);height:38px;color:var(--text);font:inherit;border-radius:9px;outline:none;padding:0 10px;font-size:13px}.badge.status-revoked{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 30%, var(--border))}@media (width<=900px){.grant-form{grid-template-columns:1fr 1fr}}.dropzone{border:1.5px dashed var(--border-strong);background:color-mix(in srgb, var(--bg) 60%, transparent);min-height:160px;color:var(--text);text-align:center;cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:22px;transition:border-color .14s,background .14s,transform .14s;display:flex}.dropzone:hover,.dropzone:focus-visible{border-color:color-mix(in srgb, var(--accent) 55%, var(--border-strong));background:var(--surface-2);outline:none}.dropzone.is-over{border-color:var(--accent-text);background:color-mix(in srgb, var(--accent) 9%, var(--surface));transform:scale(1.005)}.dropzone.is-busy{opacity:.6;cursor:default}.dropzone-input{display:none}.dropzone-icon{border:1px solid var(--border-strong);background:var(--surface);width:34px;height:34px;color:var(--muted);border-radius:50%;place-items:center;font-size:17px;display:grid}.dropzone strong{font-size:14px}.dropzone small{font-size:12px}.dropzone-file{background:var(--surface);border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:100%;margin-top:4px;padding:5px 10px;overflow:hidden;color:var(--text)!important}.preview-frame{aspect-ratio:16/9;border:1px solid var(--border);background:#05070a;border-radius:12px;width:100%}
