:root{--bg: #120a24;--panel: #1c1235;--panel-2: #160e2b;--border: #2f2350;--text: #f1ecfb;--muted: #a595c8;--accent: #8b5cf6;--accent-2: #6d28d9;--danger: #ff5a7a;--ok: #34d399;--warn: #fbbf24}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #f7f4fd;--panel: #ffffff;--panel-2: #f1ecfb;--border: #e6ddf7;--text: #1c1235;--muted: #6b5b8f}}:root[data-theme=light]{--bg: #f7f4fd;--panel: #ffffff;--panel-2: #f1ecfb;--border: #e6ddf7;--text: #1c1235;--muted: #6b5b8f}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}input{outline:none}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--border)}.topbar h1{font-size:1.2rem;margin:0;flex:1;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.iconbtn{font-size:1.05rem;padding:6px;border-radius:10px;flex-shrink:0}.syncdot{width:9px;height:9px;border-radius:50%;background:var(--ok);flex-shrink:0;transition:background .2s}.syncdot.on{background:var(--warn);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.4}}.userchip{flex-shrink:0;display:flex;align-items:center;padding:2px;border-radius:50%;border:1px solid var(--border)}.useravatar{width:28px;height:28px;border-radius:50%;object-fit:cover;display:block}.useravatar.fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:800;font-size:.85rem}.usermenuwrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70}.usermenu{position:absolute;top:calc(54px + env(safe-area-inset-top));right:14px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px;min-width:230px;box-shadow:0 14px 40px #00000073;display:flex;flex-direction:column;gap:8px}.usermenuname{font-weight:700}.usermenuemail{font-size:.78rem;color:var(--muted);word-break:break-all}.usermenuhint{font-size:.74rem;color:var(--accent);margin:2px 0 6px}.main{flex:1;overflow-y:auto;padding:16px 16px 40px;max-width:560px;width:100%;margin:0 auto}.signinmain{display:flex;align-items:center;justify-content:center}.signin{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:430px}.signinicon img{filter:drop-shadow(0 8px 24px rgba(109,40,217,.55))}.signin h2{margin:0;font-size:1.5rem}.signin p{color:var(--muted);line-height:1.55;margin:0}.empty{color:var(--muted);text-align:center;margin-top:40px}.hint{color:var(--muted);font-size:.8rem;line-height:1.5}.center{text-align:center}.daylabel{font-size:.74rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:16px 2px 8px}.cardview{display:flex;flex-direction:column;align-items:center}.vcard{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:0 14px 40px #00000040}.vcardtop{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;padding:26px 22px 22px;text-align:center}.vavatar{width:76px;height:76px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;margin:0 auto 12px;border:2px solid rgba(255,255,255,.5)}.vname{font-size:1.5rem;font-weight:800}.vtitle{font-size:.9rem;opacity:.95;margin-top:3px}.vtagline{font-size:.82rem;opacity:.85;margin-top:8px;font-style:italic}.vrows{padding:8px 14px 14px}.crow{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}.crow:last-child{border-bottom:none}.crowicon{font-size:1.2rem;flex-shrink:0;width:26px;text-align:center}.crowmeta{display:flex;flex-direction:column;min-width:0}.crowlabel{font-size:.68rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.crowval{font-size:.95rem;font-weight:600;word-break:break-word}.cardactions{display:flex;gap:10px;width:100%;margin-top:16px}.editlink{margin-top:12px}.editor{display:flex;flex-direction:column}.editsection{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:14px}.editfield{display:flex;flex-direction:column;gap:5px}.editlabel{font-size:.76rem;font-weight:700;color:var(--muted)}.editlabel em{font-weight:500;font-style:normal;opacity:.8}.editfield input{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:.92rem}.linkedit{display:flex;gap:8px;align-items:center}.linklabel{width:38%;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:9px 10px;font-size:.86rem}.linkurl{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:9px 10px;font-size:.86rem}.editbtns{margin-top:18px}.sheetwrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0009;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);border:1px solid var(--border);border-bottom:none;border-radius:22px 22px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));width:100%;max-width:560px;max-height:90dvh;overflow-y:auto}.sheethead h3{margin:0 0 12px;font-size:1.08rem;text-align:center}.qrsheet{text-align:center}.qrwrap{display:flex;justify-content:center;padding:10px}.qrcanvas{width:250px;height:250px;border-radius:16px;background:#fff;padding:12px}.btn{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-radius:12px;padding:12px 18px;font-weight:700}.btn.small{padding:8px 14px;font-size:.85rem}.btn.big{padding:14px 28px;font-size:1rem}.btn.ghost{background:var(--panel);border:1px solid var(--border);color:var(--text)}.btn.fullw{flex:1}.btn:disabled{opacity:.55}.linkbtn{color:var(--accent);font-weight:600;padding:6px;font-size:.85rem}.linkbtn.danger{color:var(--danger);flex-shrink:0}.row{display:flex;gap:10px}.install{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:14px;margin:12px 16px 0;padding:10px 14px;font-size:.85rem;max-width:560px;align-self:center;width:calc(100% - 32px)}
