/* Extracted styles from dashboard.php */
:root { --bg:#0f1115; --bg-alt:#171a21; --fg:#e5e7eb; --fg-dim:#9ca3af; --accent:#22c55e; --accent-hover:#34d399; --danger:#ef4444; --radius:10px; --border:#272b33; --focus:0 0 0 2px rgba(34,197,94,.35); color-scheme: dark; }
[data-theme=light]{ --bg:#f5f7fa; --bg-alt:#ffffff; --fg:#1f2937; --fg-dim:#6b7280; --accent:#16a34a; --accent-hover:#22c55e; --danger:#dc2626; --border:#dbe1e8; --radius:10px; --focus:0 0 0 2px rgba(34,197,94,.35); color-scheme: light; }
*{box-sizing:border-box}
body,html{margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;background:linear-gradient(145deg,var(--bg),var(--bg-alt));min-height:100vh;color:var(--fg);} 
header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:rgba(0,0,0,.25);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border);} 
h1{font-size:1.05rem;margin:0;font-weight:600;letter-spacing:.3px;} 
button{font:inherit;border:none;cursor:pointer;background:var(--accent);color:#fff;padding:.65rem 1rem;border-radius:8px;display:inline-flex;align-items:center;gap:.4rem;font-weight:500;box-shadow:0 4px 12px -2px rgba(0,0,0,.4);} 
button:hover{background:var(--accent-hover);} button.secondary{background:var(--bg-alt);color:var(--fg-dim);border:1px solid var(--border);} button.secondary:hover{color:var(--fg);} button.danger{background:var(--danger);} 
input{background:var(--bg-alt);border:1px solid var(--border);color:var(--fg);padding:.65rem .75rem;border-radius:8px;font:inherit;min-width:0;} input:focus{outline:none;box-shadow:var(--focus);} 
.layout{max-width:1240px;margin:0 auto;padding:1.5rem;display:grid;gap:1.25rem;grid-template-columns:260px 1fr;} 
@media (max-width:900px){ .layout{grid-template-columns:1fr;padding:0;max-width:100%;margin:0;} .panel{border-radius:0;border-left-width:0;border-right-width:0;} }
.panel{background:rgba(0,0,0,.28);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:1rem;position:relative;overflow:visible;} 
[data-theme=light] .panel{background:rgba(255,255,255,.75);} 
.panel h2{margin:0;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--fg-dim);} 
.muted{color:var(--fg-dim);font-size:.8rem;} .row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;} 
.lists{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem;} 
.lists li{list-style:none;}
.list-card{background:var(--bg-alt);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;transition:transform .08s ease, background-color .2s ease, border-color .2s ease;position:relative;}
.list-card:hover{background:rgba(0,0,0,.18);} 
[data-theme=light] .list-card:hover{background:rgba(0,0,0,.03);} 
.lists li.dragging{opacity:.6;}
.lists .drop-indicator{display:none;}
.lists .drop-indicator.active{display:none;}
.lists .drop-placeholder{height:14px;border:2px dashed var(--accent);border-radius:8px;margin:.2rem 0;background:rgba(34,197,94,.12);} 
.drag-handle{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);border:1px solid var(--border);background:var(--bg-alt);cursor:grab;padding:0; user-select:none;}
.drag-handle:hover{color:var(--fg);border-color:var(--accent);} 
.drag-handle:active{cursor:grabbing;}
.drag-handle .dots{font-size:14px;line-height:1;pointer-events:none;}
.list-title{font-size:1.05rem;font-weight:700;letter-spacing:.2px;}
.list-progress{display:flex;align-items:center;gap:.75rem;}
.progress{flex:1;height:8px;background:transparent;border:1px solid var(--border);border-radius:999px;overflow:hidden;}
.progress-bar{height:100%;background:var(--accent);} 
.progress-count{font-size:.8rem;color:var(--fg-dim);min-width:48px;text-align:right;}
.share-line{font-size:.8rem;color:var(--fg-dim);display:flex;align-items:center;gap:.4rem; pointer-events:none;}
.share-line button{background:transparent;border:none;color:inherit;padding:0;text-align:left;cursor:pointer; pointer-events:auto;}
.share-line button:hover{color:var(--fg);} 
.items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;} 
.items li{display:grid;grid-template-columns:24px 1fr 32px;align-items:center;gap:.6rem;padding:.6rem .8rem;transition:.12s;position:relative;} 
.items li.swiping{transition:none;}
.items li .swipe-bg{position:absolute;inset:0;border-radius:8px;pointer-events:none;}
/* Rectangular delete box that expands from right edge */
.items li .swipe-bg .delete-box{position:absolute;top:0;right:0;height:100%;background:var(--danger);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:0;border-radius:0 8px 8px 0;width:0;overflow:hidden;pointer-events:none;box-shadow:0 4px 12px -6px rgba(0,0,0,.45);transition:width .16s ease, padding .16s ease;}
.items li .swipe-bg .delete-box.revealed{pointer-events:auto;padding:0 1rem;}
.items li.deleting{opacity:.35;}
/* Undo snackbar */
#undoSnackbar{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);background:var(--bg-alt);border:1px solid var(--border);padding:.75rem 1rem;border-radius:10px;display:flex;align-items:center;gap:1rem;font-size:.75rem;z-index:600;box-shadow:0 8px 28px -6px rgba(0,0,0,.55);} 
#undoSnackbar button{box-shadow:none;padding:.45rem .8rem;font-size:.7rem;border-radius:6px;}
.items-group{background:var(--bg-alt);border:1px solid var(--border);border-radius:8px;overflow:visible;}
.items-group .items li{background:transparent;border-bottom:none;}
.items li:hover{background:rgba(0,0,0,.06);} 
.fade-item-enter{opacity:0;transform:translateY(4px);} .fade-item-enter-active{opacity:1;transform:translateY(0);transition:.25s ease;} 
.fade-item-exit{opacity:1;} .fade-item-exit-active{opacity:0;transform:translateY(-4px);transition:.25s ease;} 
.check{width:18px;height:18px;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:var(--accent);cursor:pointer;} 
.done .check{background:var(--accent);color:#fff;} .done .name{text-decoration:line-through;opacity:.55;} 
.item-menu-btn{background:var(--bg-alt);border:1px solid var(--border);color:var(--fg-dim);width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;padding:0;}
.item-menu-btn:hover{color:var(--fg);border-color:var(--accent);} 
.item-menu{position:absolute;top:100%;right:4px;background:var(--bg-alt);border:1px solid var(--border);border-radius:8px;min-width:140px;z-index:300;display:none;flex-direction:column;padding:4px;box-shadow:0 8px 24px -6px rgba(0,0,0,.5);} 
.item-menu button{background:transparent;color:var(--fg-dim);border:none;justify-content:flex-start;width:100%;padding:6px 8px;font-size:.75rem;box-shadow:none;} 
.item-menu button:hover{color:var(--fg);background:var(--accent);color:#fff;border-radius:6px;} 
.item-menu.open-up{top:auto;bottom:100%;box-shadow:0 -8px 24px -6px rgba(0,0,0,.5);} 
.add-bar{display:flex;gap:.6rem;} .grow{flex:1;} 
.add-bar{position:relative;}
#itemsPanel .add-bar{margin-bottom:.5rem;}
.suggest-box{position:absolute;top:100%;left:0;right:56px;background:var(--bg-alt);border:1px solid var(--border);border-radius:8px;margin-top:4px;box-shadow:0 8px 24px -6px rgba(0,0,0,.5);z-index:30;max-height:260px;overflow:auto;display:none;}
.suggest-box ul{list-style:none;margin:0;padding:4px;display:flex;flex-direction:column;}
.suggest-box li{padding:10px 14px;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.95rem;line-height:1.25;}
.suggest-box li:hover,.suggest-box li.active{background:var(--accent);color:#fff;}
.suggest-add{transition:transform .35s ease, background-color .2s ease, color .2s ease;font-size:.85rem;padding:4px 10px;border-radius:8px;}
.suggest-add.spin{transform:rotate(360deg);}
.suggest-add.ok{background:#22c55e !important;color:#fff;}
@keyframes pop{0%{transform:scale(.9);}60%{transform:scale(1.06);}100%{transform:scale(1);}}
.suggest-add.ok{animation:pop .25s ease;}
.suggest-empty{padding:6px 8px;font-size:.7rem;color:var(--fg-dim);} 
.empty{padding:.9rem;text-align:center;font-size:.8rem;color:var(--fg-dim);} 
.top-actions{display:flex;gap:.5rem;align-items:center;} 
.spacer{flex:1;} 
.auth-wrapper{max-width:420px;margin:4rem auto;} 
.center{text-align:center;} 
.fade-in{animation:fade .4s ease;} @keyframes fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);} } 
.theme-toggle{background:var(--bg-alt);color:var(--fg-dim);border:1px solid var(--border);} .theme-toggle:hover{color:var(--fg);} 
.logo-grad{background:linear-gradient(90deg,var(--accent),var(--accent-hover));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;} 

/* Bottom navigation */
.bottom-nav{backdrop-filter:blur(8px);} 
.bottom-nav .bn-item{color:var(--fg-dim);} 
.bottom-nav .bn-item.active{color:var(--fg);} 
