:root{--bg:#f6f6f9;--surface:#fff;--surface-2:#f0f0f5;--text:#1b1b29;--muted:#6b6b80;--border:#e2e2ea;--accent:#5b5bd6;--accent-text:#fff;--accent-soft:#ebebfc;--danger:#d43c3c;--ok:#1f8a4c;--warn:#b26b00;--radius:14px;--shadow:0 1px 2px #0000000d, 0 4px 16px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101017;--surface:#1a1a24;--surface-2:#23232f;--text:#ececf3;--muted:#9a9aae;--border:#2e2e3c;--accent:#8282f0;--accent-text:#0c0c14;--accent-soft:#26264a;--danger:#ff6b6b;--ok:#4ad189;--warn:#f0b04a;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#101017;--surface:#1a1a24;--surface-2:#23232f;--text:#ececf3;--muted:#9a9aae;--border:#2e2e3c;--accent:#8282f0;--accent-text:#0c0c14;--accent-soft:#26264a;--danger:#ff6b6b;--ok:#4ad189;--warn:#f0b04a;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{-webkit-tap-highlight-color:transparent}button,a,summary,label{touch-action:manipulation}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);padding-bottom:calc(72px + env(safe-area-inset-bottom));margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}h1{margin:0;font-size:1.5rem}h2{margin:0 0 4px;font-size:1.2rem}h3{margin:0 0 8px}hr{border:0;border-top:1px solid var(--border);margin:8px 0}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.err{color:var(--danger)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;top:0;left:0;overflow:hidden}.topbar{z-index:10;padding:calc(10px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 10px calc(16px + env(safe-area-inset-left));background:var(--bg);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:16px;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:8px;font-size:1.1rem;font-weight:700;text-decoration:none;display:flex}.brand .logo{background:var(--accent);width:30px;height:30px;color:var(--accent-text);border-radius:9px;place-items:center;font-size:18px;display:grid}#nav{gap:4px;margin-left:auto;display:flex}#nav a{color:var(--muted);white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:8px 12px;font-weight:500;text-decoration:none;display:flex}#nav a:hover{background:var(--surface-2);color:var(--text)}#nav a.active{background:var(--accent-soft);color:var(--accent)}@media (max-width:760px){.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}#nav{background:var(--surface);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;margin:0;position:fixed;bottom:0;left:0;right:0}#nav a{text-align:center;flex-direction:column;flex:1;gap:0;padding:4px 8px;font-size:.72rem}#nav a span:last-child{text-overflow:ellipsis;max-width:80px;overflow:hidden}.nav-icon{font-size:1.2rem}}main{max-width:1180px;margin:0 auto;padding:16px}.btn{min-height:40px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-text)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn.ghost:hover:not(:disabled){border-color:var(--accent)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent);background:0 0}.btn.danger:hover{background:color-mix(in srgb, var(--danger) 10%, transparent)}.btn.link{color:var(--accent);background:0 0;min-height:0;padding:4px;font-weight:500}.btn.sm{min-height:32px;padding:4px 10px;font-size:.85rem}.btn.grow{flex:1}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.export .row>select{flex:120px;min-width:0}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}input:not([type=checkbox]):not([type=color]):not([type=range]),select,textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;appearance:none;border-radius:10px;min-height:44px;padding:10px 12px;font-size:16px}select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px;padding-right:32px}input[type=datetime-local]{min-width:0}textarea{resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.lbl{color:var(--muted);justify-content:space-between;font-size:.82rem;font-weight:500;display:flex}.lbl output{color:var(--text);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent)}.check{cursor:pointer;align-items:center;gap:8px;min-height:36px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent)}.field.color{cursor:pointer;flex-direction:row;align-items:center;gap:8px}input[type=color]{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;width:40px;height:40px;padding:2px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;min-height:34px;padding:6px 12px;font-size:.88rem;display:inline-flex}.chip:hover{border-color:var(--accent)}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.chip.add{border-style:dashed}.chip.user{padding:0;overflow:hidden}.chip.user button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 4px 6px 12px}.x{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px 10px;font-size:1.2rem;line-height:1}.x:hover{color:var(--danger)}.create{grid-template-columns:minmax(300px,420px) 1fr;align-items:start;gap:20px;display:grid}.preview-col{position:sticky;top:76px}@media (max-width:860px){.create{grid-template-columns:1fr}.preview-col{position:static}}.preview-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:16px;display:flex}.qr-wrap{aspect-ratio:1;background:repeating-conic-gradient(var(--surface-2) 0 25%, var(--surface) 0 50%) 0 0 / 20px 20px;border-radius:12px;place-items:center;width:100%;max-width:380px;margin:0 auto;display:grid;overflow:hidden}.qr-img{object-fit:contain;width:100%;height:100%;display:block}.qr-empty{color:var(--muted);text-align:center;padding:24px}.payload{color:var(--muted);word-break:break-all;text-align:center;min-height:1em;font:.78rem/1.3 ui-monospace,monospace}.warnings{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.warnings li{background:color-mix(in srgb, var(--warn) 12%, transparent);color:var(--warn);border-radius:8px;padding:8px 10px;font-size:.83rem}.warnings:empty{display:none}.export{flex-direction:column;gap:8px;display:flex}.export select{flex:1}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px}.panel>summary{cursor:pointer;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:650;list-style:none;display:flex}.panel>summary::-webkit-details-marker{display:none}.panel>summary:after{content:"›";color:var(--muted);font-size:1.3rem;transition:transform .2s;transform:rotate(90deg)}.panel[open]>summary:after{transform:rotate(-90deg)}.panel-body{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.fields{flex-wrap:wrap;gap:10px;display:flex}.fields>*{flex:100%}.fields>.half{flex:calc(50% - 5px)}.types .chip{font-size:.85rem}.short:empty{display:none}.short-form,.short-active{background:var(--accent-soft);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.short-head{flex-direction:column;display:flex}.short-active{flex-flow:wrap;justify-content:space-between;align-items:center}.short-active strong{word-break:break-all}.logo-thumb{object-fit:contain;background:var(--surface-2);border-radius:8px;width:44px;height:44px}.emoji-logos{flex-wrap:wrap}.history{flex-direction:column;gap:6px;display:flex}.hist-item{border:1px solid var(--border);border-radius:10px;align-items:center;gap:4px;display:flex}.hist-open{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.hist-open img,.hist-ph{object-fit:contain;background:#fff;border-radius:6px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.hist-text{flex-direction:column;min-width:0;display:flex}.hist-text strong{white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.page{flex-direction:column;gap:16px;display:flex}.page.narrow{max-width:560px;margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-head .row input{min-width:220px}@media (max-width:560px){.page-head .row{width:100%}.page-head .row input{min-width:0}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:18px;display:flex}.card>summary{cursor:pointer;font-weight:650}.note{background:var(--accent-soft);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:10px 12px;display:flex}.note p{flex-basis:100%;margin:0}.note.warn{background:color-mix(in srgb, var(--warn) 12%, transparent)}.tabs{background:var(--surface-2);border-radius:12px;gap:4px;padding:4px;display:flex}.tabs button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:8px;font-weight:600}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.empty{color:var(--muted);text-align:center;padding:32px 16px}.link-list,.user-list{flex-direction:column;gap:10px;display:flex}.link-card,.user-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.link-card.missing,.user-row.disabled{opacity:.65}.link-main,.user-main{flex-direction:column;flex:280px;gap:2px;min-width:0;display:flex}.short-url{word-break:break-all;font-weight:650;text-decoration:none}.link-title{font-weight:500}.long-url{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.meta{flex-wrap:wrap;gap:12px;display:flex}.link-side{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.visits{flex-direction:column;align-items:center;min-width:56px;display:flex}.visits strong{font-variant-numeric:tabular-nums;font-size:1.3rem}.badges{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:.74rem;font-weight:600}.badge.ok{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok)}.badge.warn{background:color-mix(in srgb, var(--warn) 14%, transparent);color:var(--warn)}.badge.bad{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.user-actions{justify-content:flex-end}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;padding:14px;display:flex}.stat strong{font-variant-numeric:tabular-nums;font-size:1.5rem}.stat span{color:var(--muted);font-size:.83rem}.stat.bad strong{color:var(--danger)}.pager{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.owner-filter:empty{display:none}.owner-filter{margin:8px 0}.visits{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:4px 8px}.visits:hover:not(:disabled){background:var(--surface-2)}.scan-frame{aspect-ratio:4/3;background:var(--surface-2);border-radius:12px;place-items:center;display:grid;position:relative;overflow:hidden}.scan-frame:not(.live):before{content:"⌖";color:var(--muted);opacity:.5;font-size:64px}.scan-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scan-frame:not(.live) .scan-video,.scan-frame:not(.live) .scan-reticle{display:none}.scan-reticle{aspect-ratio:1;outline-offset:-3px;border-radius:18px;outline:3px solid #fffd;width:62%;position:absolute;box-shadow:0 0 0 100vmax #0006}.scan-actions{justify-content:center}.scan-head{align-items:center;gap:12px;display:flex}.scan-head h2{word-break:break-word;margin-top:4px}.scan-icon{background:var(--surface-2);border-radius:12px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:30px;display:grid}.scan-fields{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;display:grid}.scan-fields dt{color:var(--muted);font-size:.85rem}.scan-fields dd{word-break:break-all;white-space:pre-wrap;margin:0}.scan-result:empty{display:none}.selftest{text-align:center;border-radius:8px;padding:8px 10px;font-size:.83rem;font-weight:600}.selftest.ok{background:color-mix(in srgb, var(--ok) 12%, transparent);color:var(--ok)}.selftest.bad{background:color-mix(in srgb, var(--warn) 12%, transparent);color:var(--warn);font-weight:500}.selftest:empty{display:none}.sheet{background:var(--bg);width:min(980px,100vw);max-width:100vw;height:min(92vh,100%);max-height:100dvh;color:var(--text);border:0;border-radius:18px;margin:auto;padding:0;overflow:auto;box-shadow:0 20px 60px #0006}.sheet::backdrop{background:#0008}@media (max-width:760px){.sheet{border-radius:0;width:100vw;height:100dvh}}.sheet-head{z-index:2;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.sheet-title{flex-direction:column;min-width:0;display:flex}.sheet-title a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats-filters{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px 0;display:flex}.tabs.range{flex:0 420px}.stats-body{padding:12px 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;transition:opacity .15s;display:flex}.stats-body.loading{opacity:.5}.stats-body h3{margin:0;font-size:.95rem}.chart{width:100%;position:relative}.chart svg{max-width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--border);stroke-width:1px}.chart .axis{stroke:var(--muted);stroke-width:1px;opacity:.5}.chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .mark{fill:var(--accent)}.chart .hit{fill:#0000}.chart .bar{cursor:pointer;outline:none}.chart .bar.on .mark,.chart .bar:focus-visible .mark{filter:brightness(1.15)}.chart .bar.on .hit,.chart .bar:focus-visible .hit{fill:var(--accent-soft);fill-opacity:.6}.chart-tip{pointer-events:none;z-index:3;background:var(--surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:.85rem;position:absolute;transform:translate(-50%,-100%);box-shadow:0 4px 16px #0002}.toplists{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.toplist ol{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tl-row{justify-content:space-between;gap:8px;font-size:.88rem;display:flex}.tl-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tl-val{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.tl-val .muted{font-weight:400}.tl-track{background:var(--surface-2);border-radius:3px;height:6px;margin-top:3px;overflow:hidden}.tl-bar{background:var(--accent);border-radius:3px;min-width:2px;height:100%}.update-banner{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:50;background:var(--surface);border:1px solid var(--accent);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:560px;margin:0 auto;padding:12px 14px;display:flex;position:fixed;box-shadow:0 8px 30px #0003}.update-text{flex-direction:column;min-width:0;display:flex}@media (min-width:761px){.update-banner{bottom:24px}}.install-steps{flex-direction:column;gap:4px;margin:0;padding-left:20px;font-size:.9rem;display:flex}.ios-share{vertical-align:-3px;width:18px;height:18px;color:var(--accent)}.install-hint{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:flex-start;gap:8px;max-width:480px;margin:0 auto;padding:12px 8px 12px 14px;display:flex;position:fixed;box-shadow:0 8px 30px #0003}.install-hint .install-steps{margin-top:6px}.mini-preview{right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:30;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:14px;width:84px;height:84px;padding:4px;position:fixed;box-shadow:0 6px 24px #0003}.mini-preview img{object-fit:contain;border-radius:10px;width:100%;height:100%;display:block}@media (min-width:861px){.mini-preview{display:none!important}}.short-more>summary{cursor:pointer;color:var(--muted);padding:2px 0;font-size:.88rem}.short-more[open]>summary{margin-bottom:8px}.footer-links a{white-space:nowrap}.config-box>summary{align-items:center;gap:8px;display:flex}.config-box .scan-fields dd{word-break:break-word}@media (pointer:coarse){.chip{min-height:40px}.btn.sm{min-height:38px}.x{min-width:40px;min-height:40px}}@media (max-width:400px){main{padding:12px}.grid2{grid-template-columns:1fr}.fields>.half{flex-basis:100%}.panel-body{padding:0 12px 14px}.panel>summary{padding:14px 12px}.link-side{justify-content:space-between;width:100%}}.modal{background:var(--surface);color:var(--text);border:0;border-radius:16px;width:min(440px,100vw - 32px);padding:22px;box-shadow:0 20px 60px #0005}.modal::backdrop{background:#0007}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}#toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));background:var(--text);color:var(--bg);opacity:0;pointer-events:none;z-index:100;border-radius:10px;max-width:calc(100vw - 32px);padding:10px 16px;font-weight:500;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,20px)}#toast.show{opacity:1;transform:translate(-50%)}#toast.err{background:var(--danger);color:#fff}@media (min-width:761px){body{padding-bottom:24px}#toast{bottom:24px}}
