@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600;700&family=Outfit:wght@300;400;500;600&display=swap";:root{--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Outfit", system-ui, sans-serif;--bg: #f5f0ea;--bg-warm: #efe9e1;--surface: #fffdf9;--surface-hover: #faf7f2;--surface-active: #f5f0ea;--text: #1c1917;--text-secondary: #57534e;--text-muted: #a8a29e;--text-inverse: #fffdf9;--accent: #c2410c;--accent-hover: #9a3412;--accent-light: #fff7ed;--accent-subtle: #fed7aa;--border: #e7e0d6;--border-strong: #d6cdc2;--danger: #dc2626;--danger-light: #fef2f2;--shadow-xs: 0 1px 2px rgba(28, 25, 23, .04);--shadow-sm: 0 1px 3px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .04);--shadow-md: 0 4px 12px rgba(28, 25, 23, .07), 0 2px 4px rgba(28, 25, 23, .04);--shadow-lg: 0 8px 24px rgba(28, 25, 23, .1), 0 4px 8px rgba(28, 25, 23, .04);--shadow-overlay: 0 16px 48px rgba(28, 25, 23, .16);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-full: 9999px;--sidebar-width: 260px;--header-height: 64px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-family:var(--font-body);font-size:16px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app-layout{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:40;overflow-y:auto;transition:transform .35s var(--ease-out)}.sidebar-header{padding:24px 20px 16px;border-bottom:1px solid var(--border)}.sidebar-logo{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text);display:flex;align-items:center;gap:10px}.sidebar-logo-icon{width:32px;height:32px;background:var(--accent);border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--text-inverse);font-size:.85rem;font-weight:700;box-shadow:var(--shadow-sm)}.sidebar-section{padding:16px 12px}.sidebar-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:0 8px;margin-bottom:8px}.sidebar-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:400;color:var(--text-secondary);transition:all .15s ease;text-align:left}.sidebar-item:hover{background:var(--surface-hover);color:var(--text)}.sidebar-item.active{background:var(--accent-light);color:var(--accent);font-weight:500}.sidebar-item-icon{width:18px;height:18px;flex-shrink:0;opacity:.6}.sidebar-item.active .sidebar-item-icon{opacity:1}.sidebar-item-count{margin-left:auto;font-size:.75rem;color:var(--text-muted);background:var(--surface-active);padding:2px 8px;border-radius:var(--radius-full)}.sidebar-item .delete-btn{margin-left:auto;opacity:0;padding:2px;border-radius:4px;color:var(--text-muted);transition:all .15s ease}.sidebar-item:hover .delete-btn{opacity:1}.sidebar-item .delete-btn:hover{color:var(--danger);background:var(--danger-light)}.sidebar-add-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-muted);transition:all .15s ease}.sidebar-add-btn:hover{color:var(--accent);background:var(--accent-light)}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh}.main-header{position:sticky;top:0;z-index:30;height:var(--header-height);background:#f5f0ead9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px}.main-header-left{display:flex;align-items:center;gap:16px}.hamburger-btn{display:none;width:40px;height:40px;border-radius:var(--radius-sm);place-items:center;color:var(--text-secondary);transition:all .15s ease}.hamburger-btn:hover{background:var(--surface);color:var(--text)}.main-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.add-link-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;box-shadow:var(--shadow-sm);transition:all .2s var(--ease-out)}.add-link-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.add-link-btn:active{transform:translateY(0)}.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:24px 32px}.link-grid-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center}.link-grid-empty-icon{width:64px;height:64px;background:var(--surface);border-radius:var(--radius-lg);display:grid;place-items:center;margin-bottom:20px;box-shadow:var(--shadow-sm);color:var(--text-muted)}.link-grid-empty h3{font-family:var(--font-display);font-size:1.15rem;font-weight:600;margin-bottom:8px}.link-grid-empty p{color:var(--text-muted);font-size:.9rem;max-width:320px}.link-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px;transition:all .2s var(--ease-out);cursor:grab;position:relative}.link-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.link-card.dragging{opacity:.5;cursor:grabbing}.link-card-top{display:flex;align-items:flex-start;gap:12px}.link-card-favicon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--surface-active);border:1px solid var(--border);flex-shrink:0;display:grid;place-items:center;overflow:hidden}.link-card-favicon img{width:20px;height:20px;object-fit:contain}.link-card-info{flex:1;min-width:0}.link-card-title{font-family:var(--font-display);font-size:.95rem;font-weight:600;line-height:1.3;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-card-url{font-size:.78rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-card-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s ease;flex-shrink:0}.link-card:hover .link-card-actions{opacity:1}.link-card-action{width:30px;height:30px;display:grid;place-items:center;border-radius:6px;color:var(--text-muted);transition:all .15s ease}.link-card-action:hover{background:var(--surface-active);color:var(--text)}.link-card-action.danger:hover{background:var(--danger-light);color:var(--danger)}.link-card-description{font-size:.84rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-card-tags{display:flex;flex-wrap:wrap;gap:6px}.link-card-open{display:block;padding:0;background:none;text-align:left}.tag-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-full);font-size:.72rem;font-weight:500;line-height:1.4;border:1px solid transparent}.tag-badge-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.tag-badge-remove{width:14px;height:14px;display:grid;place-items:center;border-radius:50%;font-size:.65rem;opacity:.6;transition:opacity .15s ease;margin-left:2px}.tag-badge-remove:hover{opacity:1}.dialog-overlay{position:fixed;inset:0;background:#1c191766;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100;padding:24px;animation:fadeIn .2s var(--ease-out)}.dialog{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:slideUp .3s var(--ease-spring)}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.dialog-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.dialog-close{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--text-muted);transition:all .15s ease}.dialog-close:hover{background:var(--surface-active);color:var(--text)}.dialog-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.8rem;font-weight:500;color:var(--text-secondary)}.form-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:.9rem;outline:none;transition:all .15s ease}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c2410c1a}.form-input::placeholder{color:var(--text-muted)}textarea.form-input{resize:vertical;min-height:72px}.form-select{width:100%;padding:10px 36px 10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:.9rem;outline:none;cursor:pointer;transition:all .15s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a8a29e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c2410c1a}.form-tags{display:flex;flex-wrap:wrap;gap:6px}.form-tag-toggle{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--radius-full);font-size:.78rem;font-weight:500;border:1px solid var(--border);background:var(--surface);transition:all .15s ease}.form-tag-toggle:hover{border-color:var(--border-strong)}.form-tag-toggle.selected{border-color:transparent}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:8px}.btn-primary{padding:10px 24px;background:var(--accent);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;box-shadow:var(--shadow-xs);transition:all .15s ease}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:10px 20px;background:var(--surface-active);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;transition:all .15s ease}.btn-secondary:hover{background:var(--border)}.tag-manager-list{display:flex;flex-direction:column;gap:8px}.tag-manager-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.tag-manager-item-label{flex:1;font-size:.875rem;font-weight:500}.tag-manager-new{display:flex;gap:8px;align-items:flex-end}.tag-manager-new .form-field{flex:1}.color-input-wrap{position:relative}.color-input{width:40px;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.link-card{animation:cardAppear .3s var(--ease-out) backwards}.link-card:nth-child(1){animation-delay:0ms}.link-card:nth-child(2){animation-delay:40ms}.link-card:nth-child(3){animation-delay:80ms}.link-card:nth-child(4){animation-delay:.12s}.link-card:nth-child(5){animation-delay:.16s}.link-card:nth-child(6){animation-delay:.2s}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-overlay)}.main-content{margin-left:0}.hamburger-btn{display:grid}.main-header{padding:0 16px}.link-grid{grid-template-columns:1fr;padding:16px;gap:12px}.link-card-actions{opacity:1}}@media(min-width:769px)and (max-width:1024px){.link-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));padding:20px 24px}}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#1c19174d;z-index:35;animation:fadeIn .2s ease}@media(max-width:768px){.sidebar-backdrop.visible{display:block}}.drag-overlay .link-card{box-shadow:var(--shadow-lg);cursor:grabbing;transform:scale(1.02);border-color:var(--accent-subtle)}.rating-selector{display:flex;gap:4px}.rating-btn{width:30px;height:30px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);font-family:var(--font-body);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.rating-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg, rgba(207, 114, 92, .06))}.rating-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.link-card-rating{display:flex;align-items:baseline;gap:1px;padding-top:2px}.rating-value{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--accent)}.rating-max{font-size:.75rem;color:var(--text-muted)}
