:root{--primary:#0f5acf;--secondary:#684cb3;--tertiary:#e2408b;--tile-bg:#ffffff85;--tile-bg-hover:#ffffffad;--bar-bg:#ffffff1f;--bar-bg-solid:#f0eefcf7;--bar-border:#ffffff4d;--input-bg:#fff9;--input-bg-hover:#ffffffc7;--input-bg-focus:#fffc;--text-url-host:color-mix(in srgb, var(--primary) 80%, #000);--text-url-path:color-mix(in srgb, var(--secondary) 55%, #aaa);--text-url-long:var(--secondary);--text-input:color-mix(in srgb, var(--primary) 80%, #000);--text-placeholder:color-mix(in srgb, var(--secondary) 35%, #bbb);--text-icon:color-mix(in srgb, var(--secondary) 35%, #ccc);--text-empty:color-mix(in srgb, var(--secondary) 50%, #888);--dialog-bg:#fcfbfff7}[data-theme=dark]{--primary:#6fa3f5;--secondary:#b090e0;--tertiary:#f06faf;--tile-bg:#ffffff14;--tile-bg-hover:#ffffff24;--bar-bg:#12102873;--bar-bg-solid:#14122cf7;--bar-border:#ffffff21;--input-bg:#ffffff17;--input-bg-hover:#ffffff24;--input-bg-focus:#ffffff26;--text-url-host:color-mix(in srgb, var(--primary) 85%, #fff);--text-url-path:color-mix(in srgb, var(--secondary) 65%, #ccc);--text-url-long:color-mix(in srgb, var(--secondary) 90%, #fff);--text-input:color-mix(in srgb, var(--primary) 75%, #fff);--text-placeholder:color-mix(in srgb, var(--secondary) 40%, #999);--text-icon:color-mix(in srgb, var(--secondary) 40%, #888);--text-empty:color-mix(in srgb, var(--secondary) 50%, #999);--dialog-bg:#16122ef7}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;background:linear-gradient(160deg, color-mix(in srgb, var(--primary) 18%, white) 0%, color-mix(in srgb, var(--secondary) 14%, white) 50%, color-mix(in srgb, var(--tertiary) 12%, white) 100%);background-attachment:fixed;min-height:100vh}html[data-theme=dark],[data-theme=dark] body{background:linear-gradient(160deg,#0d1a3e 0%,#161233 55%,#0f0e2b 100%) fixed}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){header,footer{background:var(--bar-bg-solid)!important}}.app{flex-direction:column;min-height:100vh;display:flex}.login-screen{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;display:flex}.login-icon{border-radius:14px;width:56px;height:56px}.login-title{letter-spacing:.12em;color:var(--text-input);font-size:28px;font-weight:800}.login-subtitle{color:var(--text-placeholder);margin-bottom:12px;font-size:14px}.avatar-wrap{flex-shrink:0;position:relative}.btn-avatar{cursor:pointer;background:0 0;border:none;border-radius:50%;align-items:center;padding:0;display:flex}.avatar-img{opacity:.85;border-radius:50%;width:30px;height:30px;transition:opacity .15s,transform .15s;display:block}.btn-avatar:hover .avatar-img{opacity:1;transform:scale(1.08)}.avatar-menu{background:var(--dialog-bg);border:1px solid var(--bar-border);z-index:200;border-radius:12px;min-width:172px;padding:6px;animation:.15s cubic-bezier(.34,1.56,.64,1) menu-in;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 8px 32px #00000026}.avatar-menu-name{color:var(--text-url-host);padding:7px 12px 2px;font-size:13px;font-weight:600}.avatar-menu-email{color:var(--text-placeholder);padding:0 12px 8px;font-size:11px}.avatar-menu-divider{background:var(--bar-border);height:1px;margin:2px 6px}.avatar-menu-item{cursor:pointer;width:100%;color:color-mix(in srgb, #c0392b 80%, var(--text-icon));background:0 0;border:none;border-radius:8px;align-items:center;padding:9px 12px;font-size:14px;font-weight:500;transition:background .12s,color .12s;display:flex}.avatar-menu-item:hover{color:#c0392b;background:#c0392b14}@media (width>=680px){.avatar-wrap{position:absolute;top:50%;right:24px;transform:translateY(-50%)}}.content-row{flex-direction:column;width:100%;max-width:680px;margin:0 auto;padding:80px 20px 100px;display:flex}.sidebar{flex-direction:column;gap:6px;display:flex}.sidebar-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-icon);margin-bottom:2px;padding:0 4px;font-size:11px;font-weight:700}.filter-list{flex-direction:column;gap:4px;display:flex}@media (width>=1040px){.sidebar{width:152px;padding-top:16px;position:fixed;top:80px;right:calc(50% + 360px)}}@media (width>=680px){.search-bar{width:min(320px,50% - 24px);position:absolute;left:50%;transform:translate(-50%)}}@media (width<=1039px){.sidebar{scrollbar-width:none;flex-direction:row;align-items:center;gap:8px;padding:4px 0 8px;overflow-x:auto}.sidebar::-webkit-scrollbar{display:none}.sidebar-title{white-space:nowrap;flex-shrink:0}.filter-list{flex-flow:row;gap:6px}.filter-pill{white-space:nowrap;flex-shrink:0}.filter-clear{white-space:nowrap;flex-shrink:0;margin-top:0}}@media (width<=679px){header{flex-wrap:wrap;row-gap:12px;padding-top:16px;padding-bottom:16px}.brand{flex:1}.search-bar{flex:100%;order:3;width:100%;max-width:680px;margin:0 auto}.content-row{padding-top:130px}}.input-bar-break{display:none}@media (width<=639px){.input-bar{flex-wrap:wrap}.input-bar-break{flex:100%;height:0;display:block}.btn-random{flex:1}}.filter-pill{border:1px solid var(--bar-border);background:var(--tile-bg);color:var(--text-url-path);cursor:pointer;text-align:left;box-shadow:inset 3px 0 0 rgba(var(--cat), .55);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:flex}.filter-pill:hover{background:var(--tile-bg-hover);color:var(--text-url-host);box-shadow:inset 3px 0 0 rgba(var(--cat), .8)}.filter-pill.is-active{background:color-mix(in srgb, var(--secondary) 12%, transparent);border-color:color-mix(in srgb, var(--secondary) 35%, transparent);color:var(--secondary);box-shadow:inset 3px 0 0 rgba(var(--cat), 1)}.filter-label{flex:1}.filter-count{opacity:.65;font-size:11px;font-weight:600}.filter-clear{color:var(--text-icon);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;margin-top:4px;padding:6px 12px;font-size:12px;font-weight:600;transition:color .15s}.filter-clear:hover{color:var(--tertiary)}header{z-index:100;background:var(--bar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--bar-border);align-items:center;gap:20px;padding:14px 24px;display:flex;position:fixed;top:0;left:0;right:0}.brand{align-items:center;gap:10px;display:inline-flex}.app-icon{object-fit:cover;border-radius:8px;flex-shrink:0;width:32px;height:32px;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.brand:hover .app-icon:not(.is-bouncing){transform:rotate(-45deg)}.logo{letter-spacing:5px;text-transform:uppercase;background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 50%, var(--tertiary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:18px;font-weight:800;line-height:1}.search-bar{background:var(--input-bg);border:1px solid var(--bar-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-icon);cursor:text;border-radius:10px;align-items:center;gap:8px;padding:7px 12px;transition:background .2s,border-color .2s,box-shadow .2s;display:flex}.search-bar:hover{background:var(--input-bg-hover);border-color:color-mix(in srgb, var(--secondary) 30%, transparent);box-shadow:0 2px 12px color-mix(in srgb, var(--secondary) 12%, transparent);cursor:pointer}.search-bar:focus-within{background:var(--input-bg-focus);border-color:color-mix(in srgb, var(--secondary) 40%, transparent);box-shadow:0 2px 12px color-mix(in srgb, var(--secondary) 10%, transparent);color:var(--secondary)}.search-input{color:var(--text-input);cursor:text;background:0 0;border:none;outline:none;flex:1;font-size:15px}.search-input::placeholder{color:var(--text-placeholder)}.search-clear{cursor:pointer;color:var(--text-icon);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s,transform .15s;display:flex}.search-clear:hover{color:var(--tertiary);transform:scale(1.2)}main{flex:1;min-width:0;padding:8px 0 24px}.empty{color:var(--text-empty);text-align:center;margin-top:32px;font-size:14px}.link-list{flex-direction:column;gap:8px;list-style:none;display:flex}.link-item{background:var(--tile-bg);border:1px solid var(--bar-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;border-radius:10px;flex-direction:column;transition:background .2s,border-color .2s,opacity .2s;display:flex;position:relative;overflow:hidden}.swipe-action{pointer-events:none;border-radius:inherit;align-items:center;gap:6px;padding:0 20px;font-size:13px;font-weight:600;display:flex;position:absolute;top:0;bottom:0}.swipe-action--edit{color:color-mix(in srgb, var(--secondary) 90%, white);background:color-mix(in srgb, var(--secondary) 18%, transparent);left:0}.swipe-action--delete{color:#c0392b;background:#c0392b1f;right:0}@media (hover:none) and (pointer:coarse){.btn-icon--edit,.btn-icon--delete{display:none}.link-actions{opacity:1;pointer-events:auto;transform:none}}.link-item-row{align-items:center;gap:10px;padding:12px 14px;display:flex}.link-item:hover{background:var(--tile-bg-hover)}.link-item.is-filter-match{background:var(--tile-bg-hover);border-color:rgba(var(--cat), .4)}.link-item.is-filter-dim{opacity:.45}.link-item.has-category{border-left:3px solid rgba(var(--cat), .35)}.link-item.has-category:hover{border-left-color:rgba(var(--cat), .65)}.link-item.is-editing{cursor:default}.link-item.is-new{animation:.5s cubic-bezier(.34,1.56,.64,1) link-enter}@keyframes link-enter{0%{opacity:0;transform:translateY(-10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.link-item.has-tint{background:linear-gradient(135deg, rgba(var(--t1), .06) 0%, rgba(var(--t2), .03) 50%, rgba(var(--t3), .06) 100%), var(--tile-bg)}.link-item.has-tint:hover{background:linear-gradient(135deg, rgba(var(--t1), .16) 0%, rgba(var(--t2), .09) 50%, rgba(var(--t3), .16) 100%), var(--tile-bg-hover);border-color:rgba(var(--t1), .3)}.link-favicon{object-fit:contain;border-radius:4px;flex-shrink:0;width:18px;height:18px}.link-preview{border-top:1px solid var(--bar-border);animation:.25s cubic-bezier(.34,1.56,.64,1) preview-in;overflow:hidden}@keyframes preview-in{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.link-preview-img{object-fit:cover;width:100%;height:140px;display:block}.link-preview-body{flex-direction:column;gap:4px;padding:10px 14px 12px;display:flex}.link-preview-title{color:var(--text-url-host);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.link-preview-desc{color:var(--text-url-path);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.link-preview-skeleton{background:linear-gradient(90deg, var(--bar-border) 25%, var(--input-bg-hover) 50%, var(--bar-border) 75%);background-size:200% 100%;border-radius:4px;margin-bottom:6px;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.link-preview-url{color:var(--text-icon);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.url-wrapper{flex:1;min-width:0;height:20px;position:relative;overflow:hidden}.url-short,.url-long{white-space:nowrap;text-overflow:ellipsis;align-items:center;transition:opacity .22s,transform .22s;display:flex;position:absolute;inset:0;overflow:hidden}.url-short{opacity:1;transform:translateY(0)}.url-long{opacity:0;color:var(--text-url-long);font-size:13px;font-weight:500;transform:translateY(5px)}.link-item-row:hover .url-short{opacity:0;transform:translateY(-5px)}.link-item-row:hover .url-long{opacity:1;transform:translateY(0)}.link-item.is-editing .link-item-row .url-short,.link-item.is-editing .link-item-row .url-long{opacity:unset;transform:unset}.url-display{align-items:baseline;min-width:0;display:flex;overflow:hidden}.url-host{color:var(--text-url-host);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:600}.url-path{color:var(--text-url-path);white-space:nowrap;text-overflow:ellipsis;margin-left:1px;font-size:12px;font-weight:400;overflow:hidden}.link-edit{color:var(--text-input);border:1px solid color-mix(in srgb, var(--secondary) 40%, transparent);background:var(--input-bg-focus);border-radius:6px;outline:none;flex:1;min-width:0;padding:3px 8px;font-size:14px}.link-edit:focus{border-color:color-mix(in srgb, var(--secondary) 70%, transparent)}.link-actions{opacity:0;pointer-events:none;flex-shrink:0;gap:4px;transition:opacity .18s,transform .18s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;transform:translate(6px)}.link-item:hover .link-actions,.link-item.is-expanded .link-actions{opacity:1;pointer-events:auto;transform:translate(0)}.btn-icon{width:28px;height:28px;color:var(--text-icon);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.btn-icon svg{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.btn-icon:hover{background:color-mix(in srgb, var(--secondary) 12%, transparent);color:var(--secondary)}.btn-icon:hover svg{transform:scale(1.25)rotate(-4deg)}.btn-delete:hover{color:#c0392b;background:#dc3c3c1a}.btn-delete:hover svg{transform:scale(1.2)translateY(-1px)}footer{background:var(--bar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--bar-border);z-index:100;padding:16px 24px 28px;position:fixed;bottom:0;left:0;right:0}.shortcuts-legend{color:var(--text-placeholder);justify-content:center;gap:20px;margin-top:10px;font-size:11px;display:flex}.shortcuts-legend span{align-items:center;gap:5px;display:flex}.shortcuts-legend kbd{border:1px solid var(--bar-border);background:var(--input-bg);color:var(--text-placeholder);border-radius:4px;padding:1px 5px;font-family:inherit;font-size:10px}.input-bar{gap:8px;max-width:640px;margin:0 auto;display:flex}.url-input{border:1px solid var(--bar-border);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-input);cursor:pointer;border-radius:10px;outline:none;flex:1;padding:11px 16px;font-size:15px;transition:border-color .2s,background .2s,box-shadow .2s}.url-input::placeholder{color:var(--text-placeholder)}.url-input:hover{background:var(--input-bg-hover);border-color:color-mix(in srgb, var(--secondary) 30%, transparent);box-shadow:0 2px 12px color-mix(in srgb, var(--secondary) 12%, transparent)}.url-input:focus{border-color:color-mix(in srgb, var(--secondary) 55%, transparent);background:var(--input-bg-focus)}.btn-add{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;cursor:pointer;border:none;border-radius:10px;padding:11px 20px;font-size:15px;font-weight:600;transition:opacity .15s;animation:.35s cubic-bezier(.34,1.56,.64,1) btn-appear}.btn-add:disabled{opacity:.4;cursor:not-allowed;animation:none}@keyframes btn-appear{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.btn-add:hover{animation:1.8s linear infinite btn-shift}.btn-add:active{animation:.5s linear infinite btn-shift}@keyframes btn-shift{0%{background:linear-gradient(135deg, var(--primary), var(--secondary))}33%{background:linear-gradient(135deg, var(--secondary), var(--tertiary))}66%{background:linear-gradient(135deg, var(--tertiary), var(--primary))}to{background:linear-gradient(135deg, var(--primary), var(--secondary))}}.btn-random{border:2px solid color-mix(in srgb, var(--secondary) 35%, transparent);color:color-mix(in srgb, var(--secondary) 60%, transparent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;padding:11px 18px;font-size:15px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.btn-random:hover{background:color-mix(in srgb, var(--secondary) 10%, transparent);border-color:color-mix(in srgb, var(--secondary) 55%, transparent);color:var(--secondary)}.btn-more-wrap{flex-shrink:0;position:relative}.btn-more{border:2px solid color-mix(in srgb, var(--secondary) 35%, transparent);width:44px;height:44px;color:var(--secondary);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.btn-more:hover{background:color-mix(in srgb, var(--secondary) 10%, transparent);border-color:color-mix(in srgb, var(--secondary) 55%, transparent)}.more-menu{background:var(--dialog-bg);border:1px solid var(--bar-border);z-index:150;border-radius:12px;min-width:160px;padding:6px;animation:.15s cubic-bezier(.34,1.56,.64,1) menu-in;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 8px 32px #00000026}@keyframes menu-in{0%{opacity:0;transform:scale(.92)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.more-menu-item{cursor:pointer;width:100%;color:var(--text-url-host);background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;transition:background .12s,color .12s;display:flex}.more-menu-item:disabled{opacity:.4;cursor:not-allowed}.more-menu-item--danger{color:color-mix(in srgb, #c0392b 80%, var(--text-icon))}.more-menu-item--danger:not(:disabled):hover{color:#c0392b;background:#c0392b14}.btn-delete-all{color:color-mix(in srgb, #c0392b 70%, var(--text-icon));cursor:pointer;white-space:nowrap;background:0 0;border:2px solid;border-radius:10px;padding:11px 18px;font-size:15px;font-weight:600;transition:color .15s,background .15s}.btn-delete-all:hover{color:#c0392b;background:#c0392b14}.dialog-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000004d;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.dialog{background:var(--dialog-bg);border:1px solid var(--bar-border);border-radius:16px;width:calc(100% - 48px);max-width:320px;animation:.22s cubic-bezier(.34,1.56,.64,1) dialog-in;overflow:hidden;box-shadow:0 20px 60px #00000038}@keyframes dialog-in{0%{opacity:0;transform:scale(.9)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.dialog-header{border-bottom:1px solid var(--bar-border);align-items:center;gap:12px;padding:20px 24px 16px;display:flex}.dialog-icon{color:#c0392b;background:#c0392b1a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.dialog-title{color:var(--text-url-host);font-size:15px;font-weight:700}.dialog-body{padding:16px 24px 20px}.dialog-message{color:var(--text-url-path);font-size:13px;line-height:1.55}.dialog-actions{justify-content:flex-end;gap:8px;padding:0 24px 20px;display:flex}.dialog-cancel{border:1px solid var(--bar-border);background:var(--input-bg);color:var(--text-url-path);cursor:pointer;border-radius:10px;padding:9px 18px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.dialog-cancel:hover{background:var(--input-bg-hover);color:var(--text-url-host)}.dialog-confirm{color:#fff;cursor:pointer;background:#c0392b;border:none;border-radius:10px;padding:9px 18px;font-size:14px;font-weight:600;transition:background .15s,box-shadow .15s}.dialog-confirm:hover{background:#a93226;box-shadow:0 4px 14px #c0392b59}.btn-theme{border:1px solid var(--bar-border);background:var(--input-bg);width:34px;height:34px;color:var(--text-icon);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,color .2s,transform .4s cubic-bezier(.34,1.56,.64,1);display:flex}.btn-theme:hover{background:var(--input-bg-hover);color:var(--secondary);transform:rotate(20deg)scale(1.1)}@media (width>=680px){.btn-theme{position:absolute;top:50%;right:68px;transform:translateY(-50%)}.btn-theme:hover{transform:translateY(-50%)rotate(20deg)scale(1.1)}}
