:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#e8ecf4;background:#0b1020;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#18233e 0,#0b1020 42%);min-height:100vh}.wrap{max-width:1100px;margin:auto;padding:56px 24px}.narrow{max-width:720px}header{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:30px}h1{font-size:42px;margin:3px 0}.eyebrow{letter-spacing:.15em;font-size:12px;color:#8fa8ff;font-weight:800}.muted,.domain{color:#99a4b8}.primary,.button,button{border:0;border-radius:11px;padding:11px 16px;font-weight:700;cursor:pointer;text-decoration:none}.primary{background:#6f8cff;color:white}.ghost{background:#202a40;color:#dce4f5}.toolbar{background:#121a2d;border:1px solid #26324a;padding:14px;border-radius:16px;margin-bottom:24px}.toolbar form{display:flex;gap:10px}.toolbar input{flex:1}input,textarea,select{width:100%;background:#0d1425;color:#edf1f8;border:1px solid #303c55;border-radius:10px;padding:12px;font:inherit}select{width:auto}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.card,.panel,.empty{background:#121a2d;border:1px solid #26324a;border-radius:17px;padding:20px}.card{transition:.15s}.card:hover{transform:translateY(-2px);border-color:#526992}.cardtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.tag{font-size:12px;background:#202b47;color:#aebfff;padding:5px 9px;border-radius:999px}.actions{display:flex;gap:9px;align-items:center}.actions a,.icon{color:#9eabc1;text-decoration:none;background:none;padding:2px;font-size:20px}.actions form{margin:0}.linktitle{font-size:20px;font-weight:800;color:#f2f5fb;text-decoration:none}.domain{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty{text-align:center;padding:60px}.flash{padding:12px 15px;border-radius:10px;margin:0 0 18px}.flash.success{background:#143729}.flash.error{background:#472025}dialog{width:min(520px,calc(100% - 32px));border:1px solid #33405a;border-radius:18px;background:#121a2d;color:#eef2fa;padding:24px}dialog::backdrop{background:#050814bb}.dialoghead,.dialogactions{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialogactions{justify-content:flex-end;margin-top:22px}label{display:block;margin-top:16px;font-weight:700}label input,label textarea{margin-top:7px;font-weight:400}.back{display:inline-block;color:#aab8d0;text-decoration:none;margin-bottom:18px}.editform .primary{margin-top:20px}@media(max-width:650px){header{align-items:flex-start;flex-direction:column}.toolbar form{flex-direction:column}select{width:100%}h1{font-size:34px}}
.preview{width:100%;height:190px;object-fit:cover;display:block;border-radius:12px 12px 0 0;background:#20242d}.preview.placeholder{display:flex;align-items:center;justify-content:center;font-size:1.05rem;color:#8e98aa;background:linear-gradient(135deg,#1e2430,#151922);padding:16px;text-align:center}.card{overflow:hidden}.cardtop,.card>.linktitle,.card>.domain,.card>p{margin-left:16px;margin-right:16px}.cardtop{margin-top:14px}.card>p:last-child{margin-bottom:16px}

.category-picker{border:0;padding:0;margin:18px 0 0}.category-picker legend{font-weight:700;margin-bottom:9px}.category-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.category-option{margin:0;cursor:pointer}.category-option input{position:absolute;opacity:0;pointer-events:none}.category-option span{display:flex;align-items:center;justify-content:center;min-height:54px;padding:11px 14px;border:1px solid #303c55;border-radius:12px;background:#0d1425;color:#dce4f5;font-weight:700;text-align:center;transition:.15s}.category-option:hover span{border-color:#526992;background:#17213a}.category-option input:checked+span{border-color:#8fa8ff;background:#26365f;color:#fff;box-shadow:0 0 0 2px #6f8cff55}.category-option input:focus-visible+span{outline:2px solid #8fa8ff;outline-offset:2px}@media(max-width:480px){.category-blocks{grid-template-columns:1fr}}

/* v6: each category is a visual collection containing its link cards */
.category-group{background:#0f1729;border:1px solid #2b3852;border-radius:24px;padding:22px;margin:0 0 26px;box-shadow:0 14px 36px #05081433}
.category-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 2px 18px}
.category-group-head h2{margin:0;font-size:25px}
.category-count{font-size:12px;font-weight:800;color:#aebfff;background:#202b47;border:1px solid #30405f;padding:6px 10px;border-radius:999px;white-space:nowrap}
.category-group .grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.category-group .card{background:#151f34;border-color:#2c3953;padding:0}
@media(max-width:650px){.category-group{padding:15px;border-radius:19px}.category-group-head{margin-bottom:14px}.category-group-head h2{font-size:22px}.category-group .grid{grid-template-columns:1fr}}

/* v7: compact mobile layout — two saved items per row where space allows */
@media(max-width:650px){
  .wrap{padding:28px 12px}
  header{margin-bottom:20px;gap:14px}
  h1{font-size:30px}
  .category-group{padding:11px;border-radius:16px;margin-bottom:16px}
  .category-group-head{margin:0 2px 10px;gap:8px}
  .category-group-head h2{font-size:19px}
  .category-count{font-size:10px;padding:4px 7px}
  .category-group .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .category-group .card{border-radius:12px;min-width:0}
  .preview{height:112px;border-radius:11px 11px 0 0}
  .preview.placeholder{font-size:.82rem;padding:8px}
  .cardtop{margin:8px 8px 6px}
  .card>.linktitle,.card>.domain,.card>p{margin-left:8px;margin-right:8px}
  .linktitle{font-size:14px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .domain{font-size:10px;margin-top:4px}
  .card>p{font-size:11px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .tag{font-size:9px;padding:3px 5px;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .actions{gap:5px}.actions a,.icon{font-size:16px}
  .card>p:last-child{margin-bottom:9px}
}
@media(max-width:360px){
  .category-group .grid{gap:6px}
  .preview{height:96px}
  .linktitle{font-size:13px}
}

/* v8: category filters as direct buttons */
.toolbar .search-form{display:block}.search-row{display:flex;gap:10px}.search-row input{flex:1}.filter-blocks{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.filter-chip{background:#202a40;color:#dce4f5;border:1px solid #303c55;padding:8px 12px;border-radius:10px}.filter-chip.active{background:#6f8cff;color:#fff;border-color:#6f8cff}@media(max-width:650px){.search-row{display:grid;grid-template-columns:1fr auto}.search-row .ghost{grid-column:1/-1;text-align:center}.filter-blocks{gap:7px}.filter-chip{padding:8px 10px;font-size:13px}}

/* v9: no category dropdowns anywhere */
select[name="category"]{display:none!important}
.filter-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,max-content));gap:8px;align-items:center}
@media(max-width:650px){.filter-blocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.filter-chip{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:390px){.filter-blocks{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v10: removable category chips */
.filter-item{position:relative;display:flex;min-width:0}.filter-item .filter-chip{padding-right:31px;width:100%}.category-delete{position:absolute;right:5px;top:50%;transform:translateY(-50%);padding:1px 6px;border-radius:7px;background:transparent;color:#aeb8cb;font-size:17px;line-height:1}.category-delete:hover{background:#472025;color:#fff}.danger{background:#b53b47;color:#fff}.confirm-dialog strong{color:#fff}

/* v12: reliable category delete controls; no dialog/JS dependency */
.filter-chip{display:flex;align-items:center;justify-content:center;text-decoration:none}
.filter-item{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:5px;align-items:stretch}
.filter-item .filter-chip{padding-right:10px}
.filter-item form{margin:0;display:flex}
.filter-item .category-delete{position:static;transform:none;width:34px;height:100%;min-height:36px;padding:0;border:1px solid #53323b;background:#2a1820;color:#e6b5bc;border-radius:10px;font-size:20px;display:flex;align-items:center;justify-content:center}
.filter-item .category-delete:hover{background:#6a2631;color:#fff}

.manage-category-list{display:grid;gap:10px;margin:16px 0}.manage-category-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line,#303744);border-radius:12px;background:rgba(255,255,255,.03)}.manage-category-row span{font-weight:700;overflow-wrap:anywhere}.danger-button{border:1px solid #7f1d1d;background:#7f1d1d;color:#fff;border-radius:10px;padding:8px 12px;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}@media(max-width:520px){.manage-category-row{padding:10px 12px}.danger-button{padding:7px 10px}}

/* v14: category delete control */
.category-title-row{display:flex;align-items:center;gap:.5rem;min-width:0}
.category-title-row h2{margin:0}
.category-title-row form{margin:0;display:inline-flex}
.category-delete{width:28px;height:28px;min-width:28px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:transparent;color:inherit;font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:.72}
.category-delete:hover,.category-delete:focus-visible{opacity:1;border-color:currentColor}
@media(max-width:600px){.category-delete{width:26px;height:26px;min-width:26px;font-size:18px}}

/* v15 login */
.header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.logout-form{display:inline}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,420px);background:var(--panel,#151922);border:1px solid var(--border,#2b3240);border-radius:18px;padding:24px}.login-card h1{margin-top:0}.login-card form{display:grid;gap:16px}.login-button{width:100%}
