@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;500;600;700;800&display=swap');
:root{--bg:#f3efe7;--panel:rgba(255,255,255,.9);--panel2:#ebe5da;--text:#20211f;--muted:#756f65;--line:#d8d0c2;--accent:#e35d38;--accent2:#f0a35b;--danger:#c43c3c;--shadow:0 18px 45px rgba(71,54,36,.12);--r:12px}
*{box-sizing:border-box}
body{margin:0;font:14px 'Nunito',system-ui,sans-serif;color:var(--text);background:var(--bg);background-size:cover;background-position:center;background-attachment:fixed;min-height:100vh}
body.dark{--bg:#0d1114;--panel:rgba(20,27,31,.94);--panel2:#182228;--text:#edf3f2;--muted:#94a5a7;--line:#2b3a40;--accent:#ff7a59;--accent2:#f6c177;--shadow:0 20px 55px rgba(0,0,0,.34);background-image:radial-gradient(circle at 88% 8%,rgba(255,122,89,.1),transparent 26rem),linear-gradient(135deg,#0d1114 0%,#111b20 54%,#0b1013 100%)}
body.theme-ember{--accent:#ff7043;--accent2:#ffc857}
body.theme-forest{--bg:#0d1714;--panel:rgba(19,34,29,.94);--panel2:#193028;--text:#eaf5ed;--muted:#99b1a2;--line:#2b4a3d;--accent:#5bd69b;--accent2:#b8e986;--shadow:0 20px 55px rgba(0,0,0,.35);background-image:radial-gradient(circle at 88% 8%,rgba(91,214,155,.12),transparent 26rem),linear-gradient(135deg,#0d1714,#10231d 55%,#0b1210)}
body.theme-paper{--bg:#f3efe7;--panel:rgba(255,255,255,.92);--panel2:#ebe5da;--text:#20211f;--muted:#756f65;--line:#d8d0c2;--accent:#e35d38;--accent2:#b36b2c;--shadow:0 18px 45px rgba(71,54,36,.12);background-image:linear-gradient(135deg,#f3efe7,#eee6d8)}
button,input,textarea,select{font:inherit}
button{border:0;cursor:pointer}
.hidden{display:none!important}

/* ---- auth screen ---- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}
.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);width:min(360px,100%);padding:24px}
.auth-brand{display:flex;align-items:center;gap:10px;font:600 22px 'Fredoka',sans-serif;letter-spacing:0;margin-bottom:4px}
.auth-tagline{color:var(--muted);font-size:12px;margin:0 0 16px 44px}
.auth-tabs{display:flex;gap:6px;margin-bottom:14px;background:var(--panel2);border-radius:11px;padding:4px}
.auth-tab{flex:1;text-align:center;padding:8px;border-radius:8px;background:transparent;color:var(--muted);font-weight:700}
.auth-tab.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}
.auth-grid{display:grid;gap:9px}
.auth-error{color:var(--danger);font-size:12px;min-height:16px}

.app{min-height:100vh;display:grid;grid-template-columns:230px 1fr}
.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;font:600 19px 'Fredoka',sans-serif;letter-spacing:0}
.logo{width:36px;height:36px;display:block;filter:drop-shadow(0 5px 9px rgba(0,0,0,.18))}
.side-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 4px}
.lists{display:flex;flex-direction:column;gap:5px;overflow:auto}
.list-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 11px;border-radius:11px;background:transparent;color:var(--text);text-align:left}
.list-btn:hover,.list-btn.active{background:var(--panel2)}
.list-btn.active{box-shadow:inset 3px 0 var(--accent)}
.list-count{font-size:11px;color:var(--muted)}
.shop-links{display:grid;gap:3px}
.shop-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:9px;color:var(--muted);font-size:12px;text-decoration:none;transition:background .18s ease,color .18s ease,transform .18s ease}
.shop-link span:last-child{font-size:13px;color:var(--accent);opacity:.75}
.shop-link:hover{background:var(--panel2);color:var(--text);transform:translateX(2px)}
.sidebar-bottom{margin-top:auto;display:grid;gap:7px}
.whoami{font-size:12px;color:var(--muted);padding:0 4px}
.main{min-width:0;padding:18px}
.topbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.title-wrap{min-width:0;flex:1}
.title{font:600 27px 'Fredoka',sans-serif;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.desc{color:var(--muted);margin-top:2px;font-size:12px}
.actions{display:flex;gap:7px;flex-wrap:wrap}
.search-wrap{position:relative;width:150px}
.search-wrap input{padding-right:30px}
.clear-search{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:24px;height:24px;padding:0;border-radius:50%;background:transparent;color:var(--muted);font-size:19px;line-height:1}
.clear-search:hover{background:var(--line);color:var(--text)}
.btn{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:8px 11px;border-radius:8px;font-weight:600;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn:hover{background:var(--panel2);box-shadow:0 5px 16px rgba(0,0,0,.1)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.danger{color:var(--danger)}
.icon-btn{width:35px;height:35px;padding:0;display:grid;place-items:center}
.module{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:15px;margin-bottom:13px}
.module-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.module-title{font-weight:800}
.module-sub{font-size:12px;color:var(--muted)}
.add-grid{display:grid;grid-template-columns:1fr 130px 110px 140px auto;gap:7px}
input,textarea,select{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:9px 10px;outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--accent)}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.item{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);min-width:0}
.bundle{border:1px solid var(--line);border-radius:15px;background:var(--panel);overflow:hidden;grid-column:1/-1}
.bundle-head{display:flex;align-items:center;gap:10px;padding:11px 12px;background:var(--panel2)}
.bundle-title{font-weight:800;flex:1}
.bundle-count{font-size:11px;color:var(--muted)}
.bundle-actions{display:flex;gap:6px}
.bundle-items{padding:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:9px}

.thumb{height:230px;background:var(--panel2);position:relative;display:grid;place-items:center;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.fallback{font-size:48px;place-items:center;width:100%;height:100%}
.thumb-shade{position:absolute;inset:25% 0 0;background:linear-gradient(180deg,transparent 0%,rgba(18,18,16,.82) 100%)}
.priority{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.65);color:#fff;border-radius:8px;padding:4px 7px;font-size:10px}
.item-overlay{position:absolute;inset:auto 0 0;padding:42px 12px 12px;color:#fff;z-index:1}
.item-name{font:600 17px 'Fredoka',sans-serif;line-height:1.15;min-height:0}
.meta{font-size:11px;color:rgba(255,255,255,.72);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.note{font-size:12px;color:rgba(255,255,255,.82);margin-top:6px;min-height:15px}
.item-actions{display:flex;gap:6px;margin-top:10px}
.item-actions .btn{flex:1;padding:7px}
.item-actions .btn{background:rgba(255,255,255,.92);border-color:transparent;color:#20211f}
.empty{text-align:center;padding:28px;color:var(--muted)}
.ai-module{background:linear-gradient(135deg,var(--panel),rgba(255,122,89,.06)),var(--panel)}
.ai-kicker{color:var(--accent2);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.ai-spark{color:var(--accent);font-size:14px;margin-right:4px}
.suggestions{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:8px}
.suggestion{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);min-height:118px;display:flex;flex-direction:column;gap:6px}
.suggestion-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.suggestion b{display:block;font:600 16px 'Fredoka',sans-serif}
.suggestion span{font-size:12px;color:var(--muted);line-height:1.35}
.suggestion small{color:var(--text);opacity:.72;font-size:11px;line-height:1.35;margin-top:auto}
.confidence{color:var(--accent2)!important;font-size:10px!important;font-weight:800;white-space:nowrap}
.idea-list{display:grid;gap:5px;margin-top:auto}
.idea-list a{display:flex;justify-content:space-between;gap:8px;color:var(--text);font-size:11px;text-decoration:none;border-top:1px solid var(--line);padding-top:6px}
.idea-list a:hover{color:var(--accent)}
.settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}
.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:16px;z-index:20}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:min(520px,100%);padding:16px;box-shadow:0 25px 70px rgba(0,0,0,.25)}
.modal h3{margin:0 0 12px}.modal-grid{display:grid;gap:9px}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:13px}
.toast{position:fixed;right:16px;bottom:16px;background:var(--text);color:var(--panel);padding:10px 13px;border-radius:10px;display:none;z-index:30}
.share-banner{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 13px;margin-bottom:13px;font-size:13px;color:var(--muted)}
@media(max-width:800px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.lists,.shop-links{display:flex;flex-direction:row;overflow:auto}.list-btn,.shop-link{min-width:150px}.sidebar-bottom{margin-top:0;grid-template-columns:1fr 1fr}.add-grid{grid-template-columns:1fr 1fr}.add-grid input:first-child{grid-column:1/-1}}
@media(max-width:500px){.main{padding:11px}.add-grid{grid-template-columns:1fr}.add-grid input:first-child{grid-column:auto}.items{grid-template-columns:1fr 1fr}.thumb{height:190px}.item-overlay{padding:34px 9px 9px}.item-name{font-size:14px}.item-actions{flex-wrap:wrap}.item-actions .btn{padding:6px 4px;font-size:11px}.topbar{align-items:flex-start;flex-direction:column}.actions{width:100%}.search-wrap{flex:1;min-width:0}.search-wrap input{width:100%!important}}
