:root{color-scheme:light dark;--bg:#f4f5f7;--panel:#fff;--text:#18232d;--muted:#53616e;--line:#cbd3db;--accent:#1745b5;--field:#fff;--error:#9d2424;--error-bg:#fff1f1}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:1rem/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:clamp(1rem,5vw,3rem) 1rem}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}.brand{max-width:29rem;margin:0 auto 1.5rem}.brand a{font-size:1.5rem;letter-spacing:-.06em;font-weight:800;color:var(--text);text-decoration:none}.brand span{color:var(--muted);font-weight:500}.panel{max-width:29rem;margin:auto;background:var(--panel);border:1px solid var(--line);border-radius:1.25rem;padding:clamp(1.3rem,5vw,2.25rem);box-shadow:0 8px 30px #14243308}h1{font-size:clamp(1.75rem,6vw,2.15rem);line-height:1.15;letter-spacing:-.04em;margin:0 0 .75rem}.intro{color:var(--muted);margin:0 0 1.8rem}form{display:grid;gap:.55rem}label{font-size:.9rem;font-weight:650;margin-top:.45rem}input{width:100%;min-height:3rem;border:1px solid var(--line);border-radius:.6rem;padding:.7rem .8rem;background:var(--field);color:var(--text);font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.7rem 1rem;border:1px solid transparent;border-radius:.6rem;background:var(--accent);color:#fff;font:inherit;font-weight:650;text-decoration:none;cursor:pointer}button{width:100%;margin-top:1.1rem}.secondary{color:var(--text);background:transparent;border-color:var(--line)}:where(a,button,input):focus-visible{outline:3px solid var(--accent);outline-offset:3px}.hint{color:var(--muted);font-size:.83rem;margin:0 0 .6rem}.notice{background:var(--error-bg);color:var(--error);padding:.8rem 1rem;border-radius:.6rem;font-size:.92rem}.switch{text-align:center;font-size:.9rem;margin:1.5rem 0 0}footer{max-width:29rem;margin:1.5rem auto;color:var(--muted);font-size:.8rem;text-align:center}dt{color:var(--muted);font-size:.85rem}dd{margin:.2rem 0 1.5rem;overflow-wrap:anywhere}.actions{display:grid;gap:.75rem}
@media(prefers-color-scheme:dark){:root{--bg:#11161c;--panel:#191f27;--text:#edf1f6;--muted:#a9b5c3;--line:#3a4654;--accent:#9bb9ff;--field:#11161c;--error:#ffd0d0;--error-bg:#442525}button,.button{background:#305fcf}.secondary{background:transparent}}
.dashboard-page .brand{max-width:64rem}.dashboard{max-width:64rem}.dashboard-top{display:flex;gap:1rem;align-items:baseline;justify-content:space-between;margin-bottom:1.6rem}.dashboard-top .intro{margin:0}.dashboard-top>a{white-space:nowrap;font-size:.9rem}h2{font-size:1.1rem;letter-spacing:-.02em;margin:0 0 1rem}.create-box{border:1px solid var(--line);border-radius:.85rem;padding:1.25rem;margin:0 0 2rem}.create-form{grid-template-columns:minmax(0,1fr) 9rem auto;align-items:end;gap:.8rem}.create-form label{display:block;margin:0 0 .4rem}.create-form button{width:auto;margin:0;white-space:nowrap}.create-box>.hint{margin:.8rem 0 0}select{width:100%;min-height:3rem;border:1px solid var(--line);border-radius:.6rem;padding:.7rem;background:var(--field);color:var(--text);font:inherit}:where(select,summary):focus-visible{outline:3px solid var(--accent);outline-offset:3px}.success{padding:.8rem 1rem;border:1px solid var(--line);border-radius:.6rem;color:var(--text);background:var(--bg)}.section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.section-heading>a{font-size:.85rem}.link-table{border-collapse:collapse;width:100%;table-layout:fixed;text-align:left;font-size:.87rem}.link-table th{color:var(--muted);font-size:.76rem;font-weight:600;padding:0 .65rem .7rem}.link-table th:first-child{width:48%}.link-table th:nth-child(2){width:10%}.link-table th:nth-child(3){width:27%}.link-table th:last-child{width:15%}.link-table td{vertical-align:top;border-top:1px solid var(--line);padding:1rem .65rem;overflow-wrap:anywhere}.short-url{font-weight:650;font-size:.95rem}.destination{color:var(--muted);font-size:.8rem;margin:.35rem 0 .6rem;overflow-wrap:anywhere}.badge{display:inline-block;padding:.08rem .5rem;border:1px solid var(--line);border-radius:1rem;color:var(--muted);font-size:.72rem}.expired{color:var(--error);background:var(--error-bg);border-color:transparent}summary{color:var(--error);cursor:pointer;font-weight:600}.link-actions .hint{margin-top:.6rem}.link-actions button{font-size:.8rem;padding:.45rem .6rem;min-height:2.5rem;margin:.5rem 0 0}.danger{background:#9d2424;color:#fff}.pagination{text-align:right;padding-top:1rem}.empty{padding:2rem 1rem;text-align:center;border:1px dashed var(--line);border-radius:.75rem;color:var(--muted)}.empty p{margin:0 0 .5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:650px){.dashboard-top{display:block}.dashboard-top .intro{margin-bottom:.6rem}.create-form{grid-template-columns:minmax(0,1fr) auto}.create-form .url-field{grid-column:1/-1}.create-form button{padding:.7rem .8rem}.create-box{padding:1rem}.link-table thead{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.link-table tbody,.link-table tr{display:block}.link-table tr{padding:1rem 0;border-top:1px solid var(--line)}.link-table td{display:block;padding:.2rem 0;border:0}.link-table td[data-label]::before{content:attr(data-label) ": ";color:var(--muted);font-size:.8rem}.link-table .link-actions{margin-top:.7rem}.link-actions details[open]{max-width:16rem}.link-actions button{font-size:.9rem}.dashboard{padding:1.25rem}}
@media(max-width:420px){.create-form{grid-template-columns:minmax(0,1fr)}.create-form .url-field{grid-column:auto}.create-form button{width:100%}}
[hidden]{display:none!important}.security-settings{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.security-settings>p{font-size:.9rem}#delete-confirmation{margin-top:1.5rem}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1.5rem;width:calc(100% - 2rem);max-width:29rem;max-height:calc(100dvh - 2rem);overflow:auto}dialog::backdrop{background:#0009}dialog #delete-confirmation{margin:0}dialog h2{font-size:1.4rem}dialog .secondary{margin-top:.75rem}button:disabled{opacity:.55;cursor:default}
.invite-code{font-family:ui-monospace,monospace;font-size:.85rem}.security-settings p,.success p{overflow-wrap:anywhere}
.local-banner{max-width:64rem;margin:0 auto 1rem;padding:.65rem 1rem;background:var(--bg);border:1px dashed var(--accent);border-radius:.6rem;color:var(--muted);font-size:.85rem;text-align:center}
.admin-nav,.admin-stats{display:flex;flex-wrap:wrap;gap:1rem}.admin-nav{margin-bottom:1.5rem}.admin-stats{padding:1rem;background:var(--bg);border-radius:.7rem}.admin-stats strong{display:block;font-size:1.5rem}.admin-card{border:1px solid var(--line);border-radius:.8rem;padding:1rem;margin:1rem 0;overflow-wrap:anywhere}.admin-card h3{font-size:1rem;margin:0 0 .4rem}.admin-form{margin:1rem 0}.admin-form label{display:block}.admin-form label>input,.admin-form label>select,.admin-form label>textarea{display:block;margin-top:.3rem}.admin-search{grid-template-columns:minmax(0,1fr) auto;align-items:end}.admin-search label{grid-column:1/-1}.admin-search button{margin:0}.checkbox{display:flex!important;align-items:center;gap:.6rem}.checkbox input{width:1.15rem;min-height:1.15rem;margin:0!important}.admin-form textarea{width:100%;min-height:6rem;background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:.6rem;font:inherit;padding:.7rem}.sponsor{margin:1.5rem 0;padding:1.2rem;border:1px solid var(--line);border-radius:.75rem}.sponsor h2{margin-bottom:.4rem}.alias-field{grid-column:1/-1}.alias-field .hint{margin-top:.4rem}.create-form:has(.alias-field) button{grid-column:1/-1}
@media(max-width:420px){.admin-search{grid-template-columns:minmax(0,1fr)}.admin-search button{width:100%}}
:root{--confirm-red:#c62828}@media(prefers-color-scheme:dark){:root{--confirm-red:#ff6b6b}}.confirm-invalid{outline:2px solid var(--confirm-red);outline-offset:2px;border-color:var(--confirm-red)}.confirm-shake{animation:confirm-shake .4s ease-in-out}.confirm-hint{display:block;margin-top:.3rem;color:var(--confirm-red);font-size:.9rem;font-weight:600}@keyframes confirm-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}@media(prefers-reduced-motion:reduce){.confirm-shake{animation:none}}
