
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#17202d;background:#f6f8fb;font-synthesis:none;--muted:#697587;--line:#dfe5ed;--surface:#fff;--blue:#087ddd;--wash:#edf5fc;--qr:#f6f8fb}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse 65% 360px at 50% 0,#dceefe80,transparent)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,.file-button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,.file-button:focus-within{outline:3px solid #1b94fc;outline-offset:5px}[hidden]{display:none!important}
.shell{max-width:1000px;margin:auto;padding:0 40px}header{display:flex;align-items:center;justify-content:space-between;height:108px}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:700;letter-spacing:-.8px}.brand img{display:block;width:180px;height:auto}nav{display:flex;align-items:center;gap:24px;font-size:14px;color:var(--muted)}.text-button{border:0;background:none;color:var(--muted);padding:4px 0;font-size:13px}.text-button:hover,nav a:hover{color:var(--blue)}
main{padding-top:48px}.intro{text-align:center;margin-bottom:44px}h1{font-size:clamp(27px,4vw,42px);line-height:1.45;font-weight:650;letter-spacing:-1.4px;margin:17px 0 12px}.intro p{color:var(--muted);font-size:15px;line-height:1.8;margin:0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 8px 36px #17202d04;transition:border-color .2s,transform .2s;scroll-margin-top:24px}.cards.single{grid-template-columns:1fr;max-width:420px;margin:auto}.single .card{padding:30px 36px}.single .card-top{justify-content:center}.single h2{font-size:24px}.group-links{display:grid;grid-template-columns:1fr;max-width:360px;margin:48px auto;gap:16px}.group-links a{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;font-size:18px;color:var(--blue)}.card-top{display:flex;align-items:center;gap:11px}h2{font-size:18px;letter-spacing:-.4px;margin:0;font-weight:600}.service-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:var(--wash);color:var(--blue)}.service-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.qr-box{aspect-ratio:1;max-width:264px;margin:27px auto 20px;border-radius:16px;background:var(--qr);display:grid;place-items:center;overflow:hidden;padding:16px}.qr-box:has(.qr:not([hidden])){background:#fff;border:1px solid #edf0f4}.qr{width:100%;height:100%;min-height:0;object-fit:contain}.empty{text-align:center;color:var(--muted);font-size:13px;line-height:1.8}.empty-mark{display:block;font-size:30px;font-weight:300;color:#a8bfd3;margin-bottom:12px}.empty p{margin:0}.scan{text-align:center;font-size:13px;color:var(--muted);margin:0;line-height:1.6}.updated{font-size:11px;min-height:14px;color:var(--muted);text-align:center;margin:8px 0 0}
#message{text-align:center;line-height:1.6;color:var(--muted);font-size:14px;min-height:23px;margin:20px 0 0}
.login{max-width:520px;margin:0 auto 64px;padding:30px;background:var(--surface);border:1px solid var(--line);border-radius:22px}.login label{font-size:14px;display:block;margin-bottom:12px}.login-row{display:flex;gap:10px}input[type=password]{width:100%;min-width:0;background:var(--qr);border:1px solid var(--line);border-radius:10px;padding:12px;color:inherit}.primary,.publish{border:0;background:var(--blue);color:white;border-radius:11px;font-size:14px;font-weight:550;padding:12px 17px;white-space:nowrap;cursor:pointer}.primary:hover,.publish:hover:not(:disabled){filter:brightness(1.08)}.note,.format{font-size:12px;line-height:1.8;color:var(--muted)}.note{margin:16px 0 0}.controls{display:flex;justify-content:center;gap:10px;margin-top:22px}.file-button{position:relative;background:var(--wash);color:var(--blue)}.file-button input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.file-button:has(input:disabled){opacity:.4;cursor:default}.upload-note{min-height:20px;text-align:center;font-size:12px;line-height:1.7;color:var(--muted)}.card-links{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:16px}.format{text-align:center;margin:22px 0 0}.card[data-draft=true]{border-color:var(--blue)}
@media(prefers-color-scheme:dark){:root{color:#e8edf5;background:#10141b;--muted:#96a4b8;--line:#2a3444;--surface:#171e28;--blue:#74b9fa;--wash:#233448;--qr:#121922}body{background:radial-gradient(ellipse 65% 360px at 50% 0,#20324880,transparent)}.primary:not(.file-button),.publish{background:#86c2ff;color:#102033}}
@media(max-width:640px){.shell{padding:0 20px}header{height:82px}nav{gap:16px}.brand img{width:156px}main{padding-top:28px}.intro{margin-bottom:30px}h1{letter-spacing:-.7px}.intro p{font-size:14px}.cards{grid-template-columns:1fr}.card{padding:24px}.qr-box{max-width:248px}.login{padding:22px}.login-row{flex-direction:column}}
@media(prefers-reduced-motion:no-preference){main{animation:arrive .45s ease-out both}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
