*,:before,:after{box-sizing:border-box}body{margin:0}.home{max-width:960px;margin:0 auto;padding:2rem 1rem}.home-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.home-header h1{margin:0;font-size:1.75rem}.dashboard-form{background:#f5f5f5;border-radius:8px;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:1rem;display:flex}.dashboard-form input{border:1px solid #ccc;border-radius:6px;flex:200px;padding:.5rem .75rem;font-size:.95rem}.form-actions{gap:.5rem;width:100%;display:flex}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.dashboard-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:1rem 1rem 2.5rem;transition:box-shadow .15s;position:relative;box-shadow:0 1px 3px #00000012}.dashboard-card:hover{box-shadow:0 4px 12px #0000001f}.dashboard-card a{color:inherit;text-decoration:none}.dashboard-card h2{margin:0 0 .35rem;font-size:1.1rem}.dashboard-card p{color:#666;margin:0;font-size:.85rem}.delete-btn{cursor:pointer;color:#999;background:0 0;border:1px solid #e0e0e0;border-radius:5px;padding:.25rem .6rem;font-size:.75rem;position:absolute;bottom:.6rem;right:.6rem}.delete-btn:hover{color:#c00;background:#fff0f0;border-color:red}.loading,.empty{color:#888;text-align:center;padding:3rem}.dashboard-view{max-width:960px;margin:0 auto;padding:2rem 1rem}.view-header{justify-content:space-between;align-items:flex-start;margin-bottom:2rem;display:flex}.dashboard-switcher{color:#111;cursor:pointer;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 0 center no-repeat;border:none;border-bottom:2px solid #0000;margin:0;padding:0 1.25rem 0 0;font-size:1.5rem;font-weight:500}.dashboard-switcher:hover{color:#2563eb;border-bottom-color:#2563eb}.dashboard-switcher:focus{border-bottom-color:#2563eb;outline:none}.view-header h1{margin:0;font-size:1.75rem}.dash-desc{color:#666;margin:.25rem 0 0;font-size:.9rem}.view-header button.active{color:#fff;background:#2563eb;border-color:#2563eb}.category-section{margin-bottom:2.5rem}.category-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.4rem;display:flex}.category-header h2{color:#333;margin:0;font-size:1.1rem}.cat-actions{gap:.5rem;display:flex}.links-grid{flex-direction:column;gap:.5rem;display:flex}.link-item{background:#fff;border:1px solid #e8e8e8;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem .8rem;transition:box-shadow .1s;display:flex}.link-item:hover{box-shadow:0 2px 6px #00000014}.drag-handle{cursor:grab;color:#bbb;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:1.1rem}.link-content{color:inherit;flex:1;align-items:center;gap:.6rem;min-width:0;text-decoration:none;display:flex}.link-icon{object-fit:contain;flex-shrink:0;width:18px;height:18px}.link-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.link-desc{color:#888;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.link-actions{flex-shrink:0;gap:.35rem;display:flex}.link-actions button{padding:.2rem .5rem;font-size:.78rem}.add-cat-form{gap:.5rem;margin-top:1rem;display:flex}.add-cat-form input{border:1px dashed #ccc;border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.9rem}.empty-cat{color:#aaa;padding:.25rem 0;font-size:.85rem}.modal-overlay{z-index:100;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;gap:.75rem;width:100%;max-width:420px;padding:1.5rem;display:flex;box-shadow:0 8px 30px #0003}.modal h3{margin:0;font-size:1.1rem}.modal input{border:1px solid #ccc;border-radius:6px;padding:.5rem .75rem;font-size:.95rem}.loading{text-align:center;color:#888;padding:4rem}button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:.4rem .9rem;font-size:.9rem}button[type=submit]{color:#fff;background:#2563eb;border-color:#2563eb}button[type=submit]:hover{background:#1d4ed8}*{box-sizing:border-box;margin:0;padding:0}body{color:#222;background:#f8f9fa;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}
