:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#2563eb;--accent-bg:#2563eb1a;--accent-border:#2563eb73;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#60a5fa;--accent-bg:#60a5fa26;--accent-border:#60a5fa80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:start;box-sizing:border-box;flex-direction:column;width:100%;max-width:1200px;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app-shell{text-align:start;flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:14px 20px;display:flex;position:sticky;top:0}.app-brand{color:var(--text-h);font-size:1.05rem;font-weight:600;text-decoration:none}.app-brand:hover{color:var(--accent)}.app-nav{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.nav-link{color:var(--text);border-radius:6px;padding:6px 10px;font-size:.95rem;text-decoration:none}.nav-link:hover{color:var(--text-h);background:var(--code-bg)}.nav-link.active{color:var(--accent);background:var(--accent-bg)}.nav-user{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:.9rem;overflow:hidden}.app-main{flex:1;padding:24px 20px 32px}.site-footer{text-align:center;color:var(--text);border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;padding:14px 20px 18px;font-size:.85rem;line-height:1.4}.site-footer-beian{color:inherit;text-decoration:none}.site-footer-beian:hover{color:var(--accent);text-decoration:underline}.page{max-width:1100px;margin:0 auto}.page-title{letter-spacing:-.02em;margin:0 0 8px;font-size:1.75rem}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:20px;display:flex}.page-header-row .page-title{margin-bottom:0}.page-lead{max-width:52rem;margin:0 0 24px}.home-page .page-title{text-align:center}.home-actions{flex-direction:column;align-items:center;gap:16px;margin:28px 0;padding:0;list-style:none;display:flex}.home-actions li{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.muted{color:var(--text);opacity:.92}.small{font-size:.88rem}.card{border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);border-radius:10px;padding:18px 20px}.form-card{flex-direction:column;gap:14px;max-width:400px;margin:0 auto;display:flex}.auth-page .page-title{text-align:center}.field input[readonly]{cursor:default;background:var(--code-bg);color:var(--text-h)}.auth-boot-msg{text-align:center;margin:48px 0}.field{text-align:start;flex-direction:column;gap:6px;display:flex}.field span{color:var(--text-h);font-size:.88rem}.field input,.field textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:8px 10px}.field.compact input{box-sizing:border-box;border-radius:8px;min-height:44px;padding:10px 14px;font-size:1rem}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:8px 14px;transition:border-color .2s,background .2s}a.btn{box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.btn-primary:hover:not(:disabled){filter:brightness(1.05)}.btn-ghost{color:var(--text-h);background:var(--code-bg);border-color:var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--accent-border)}.btn-danger{color:#b91c1c;background:#b91c1c14;border-color:#b91c1c59}@media (prefers-color-scheme:dark){.btn-danger{color:#fca5a5;background:#f871711f;border-color:#f8717159}}.btn-sm{padding:4px 10px;font-size:.85rem}.form-error{color:#b91c1c;margin:0;font-size:.9rem}.form-success{color:#15803d;margin:0;font-size:.9rem}@media (prefers-color-scheme:dark){.form-error{color:#fca5a5}.form-success{color:#86efac}}.form-footer{text-align:center;margin:0;font-size:.9rem}.form-footer a{color:var(--accent)}.banner-error{color:#b91c1c;background:#b91c1c1a;border:1px solid #b91c1c40;border-radius:8px;padding:10px 14px}@media (prefers-color-scheme:dark){.banner-error{color:#fecaca;background:#f871711f;border-color:#f871714d}}.filters{margin-bottom:16px}.filters-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 18px;margin-bottom:14px;display:grid}.filters-actions{gap:10px;display:flex}.profile-card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-top:4px;display:grid}.profile-card-empty{text-align:center;color:var(--text);border:1px dashed var(--border);background:var(--bg);border-radius:10px;grid-column:1/-1;padding:48px 24px}.profile-card{text-align:start;flex-direction:column;padding:0;display:flex;position:relative;overflow:visible}:is(.profile-card:has(.profile-card-qr-wrap:hover),.profile-card:has(.profile-card-qr-wrap:focus-within)){z-index:5}.profile-card-media{aspect-ratio:4/3;background:var(--code-bg);border-bottom:1px solid var(--border);border-radius:10px 10px 0 0;overflow:hidden}.profile-card-media img{object-fit:contain;width:100%;height:100%;display:block}.profile-card-placeholder{height:100%;min-height:120px;color:var(--text);justify-content:center;align-items:center;font-size:.9rem;display:flex}.profile-card-body{flex-direction:column;flex:1;gap:6px;padding:14px 16px 16px;display:flex;overflow:visible}.profile-card-title-row{align-items:flex-start;gap:8px;min-width:0;display:flex}.profile-card-title{min-width:0;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;overflow:hidden}.profile-card-qr-wrap{flex-shrink:0;margin-top:-2px;position:relative}.profile-card-qr-wrap:after{content:"";height:12px;position:absolute;top:100%;left:-4px;right:-168px}.profile-card-qr-trigger{width:32px;height:32px;color:var(--text);cursor:default;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.profile-card-qr-wrap:hover .profile-card-qr-trigger,.profile-card-qr-wrap:focus-within .profile-card-qr-trigger{background:var(--code-bg);color:var(--text-h)}.profile-card-qr-svg{display:block}.profile-card-qr-popover{z-index:30;border:1px solid var(--border);background:var(--bg);opacity:0;visibility:hidden;pointer-events:none;border-radius:10px;padding:12px;transition:opacity .15s,visibility .15s;position:absolute;top:calc(100% + 4px);left:0;right:auto;box-shadow:0 8px 24px #0000001f}.profile-card-qr-wrap:hover .profile-card-qr-popover,.profile-card-qr-wrap:focus-within .profile-card-qr-popover{opacity:1;visibility:visible;pointer-events:auto}.profile-card-qr-inner{box-sizing:border-box;background:#fff;border-radius:6px;padding:6px;line-height:0;overflow:visible}.profile-card-qr-inner svg{width:128px;max-width:none;height:128px;display:block}.profile-card-qr-hint{color:var(--text);text-align:center;white-space:nowrap;margin:8px 0 0;font-size:.78rem}.profile-card-meta{color:var(--text);margin:0;font-size:.88rem;line-height:1.35}.profile-card-path{font-family:var(--mono);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.78rem;line-height:1.35;overflow:hidden}.profile-card-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:10px;display:flex}.profile-card-actions-detail{margin-left:auto}.pager{font-family:var(--sans);color:var(--text);flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;font-size:.92rem;line-height:1.45;display:flex}.pager-stat,.pager-page-label,.pager-page-suffix{font:inherit;color:inherit}.pager-page-size{font:inherit;color:inherit;align-items:center;gap:6px;display:inline-flex}.pager-page-size select{font:inherit;font-size:inherit;line-height:inherit;border:1px solid var(--border);background:var(--bg);min-width:3.25rem;color:inherit;cursor:pointer;border-radius:6px;padding:6px 8px}.pager-page-size select:disabled{opacity:.55;cursor:not-allowed}.pager .btn{font:inherit;font-size:inherit;line-height:inherit}.modal-backdrop{z-index:50;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:420px;max-height:90vh;overflow:auto}.modal-title{color:var(--text-h);margin:0 0 16px;font-size:1.15rem}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}#root.certificate-root{background:var(--bg);box-sizing:border-box;flex-direction:column;min-height:100dvh;display:flex;border:none!important;width:100%!important;max-width:none!important;margin:0!important}.certificate-page{flex-direction:column;flex:1;min-width:0;min-height:100dvh;display:flex}.certificate-page-body{box-sizing:border-box;flex:1;justify-content:center;align-items:center;min-height:0;padding:16px;display:flex}.certificate-page-msg{max-width:36rem;margin:0;padding:12px 16px}#root.certificate-root .certificate-standalone-img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:min(100vh - 120px,100dvh - 120px);margin:0;display:block}
