*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#f0f2f5;color:#2b2d42;min-height:100vh;line-height:1.5}
a{color:#4361ee;cursor:pointer;text-decoration:none}
/* AUTH */
.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}
.auth-card{background:#fff;border-radius:12px;padding:2rem;width:100%;max-width:400px;box-shadow:0 8px 30px rgba(0,0,0,.12)}
.logo{text-align:center;font-size:3.5rem;margin-bottom:1rem}
.auth-card h1{text-align:center}
.subtitle{text-align:center;color:#6c757d;margin-bottom:1.5rem}
.fg{margin-bottom:.8rem}
.fg label{display:block;margin-bottom:.2rem;font-weight:600;font-size:.9rem}
.fg input,.fg select{width:100%;padding:.7rem 1rem;border:2px solid #dee2e6;border-radius:12px;font-size:1rem;outline:none}
.fg input:focus,.fg select:focus{border-color:#4361ee}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:.2s;text-decoration:none}
.btn:active{transform:scale(.97)}
.btn-p{background:#4361ee;color:#fff;width:100%}
.bs{background:#06d6a0;color:#fff}
.bd{background:#ef476f;color:#fff;width:100%}
.bg{background:transparent;color:#4361ee}
.bs2{padding:.6rem 1rem;font-size:.9rem}
.bi{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #dee2e6;cursor:pointer;font-size:1.2rem;flex-shrink:0}
.auth-footer{text-align:center;margin-top:1rem;font-size:.9rem;color:#6c757d}
.err-msg{background:#fee;color:#c00;padding:.7rem;border-radius:12px;font-size:.9rem;margin-bottom:.8rem;display:none}
.brand{margin-top:1rem;color:#6c757d;font-size:.75rem;text-align:center}
/* APP */
.app{max-width:600px;margin:0 auto;min-height:100vh;background:#f0f2f5;position:relative}
.head{background:#fff;padding:1rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 12px rgba(0,0,0,.08);position:sticky;top:0;z-index:100}
.ht{font-size:1.1rem;font-weight:700}
.sw{padding:1rem;padding-bottom:80px}
/* LIST PICKER */
.lph{text-align:center;margin-bottom:1.5rem}.lph h2{font-size:1.2rem}.lph p{color:#6c757d}
.lb{display:flex;gap:.5rem;margin-bottom:1.5rem}.lb .btn{flex:1}
.cl{display:flex;flex-direction:column;gap:.5rem}
.lc{background:#fff;border-radius:12px;padding:1rem;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.lc:active{transform:scale(.98)}
.lo{color:#6c757d;font-size:.85rem;margin-top:.2rem}
/* BADGES */
.badge{display:inline-block;padding:.15rem .5rem;border-radius:12px;font-size:.7rem;font-weight:600}
.b1{background:#e0e7ff;color:#4361ee}
.b2{background:#fef3c7;color:#b45309}
/* SHARE CODE */
.scb{background:#4361ee;color:#fff;padding:.6rem;border-radius:12px;text-align:center;cursor:pointer;margin-bottom:.5rem}
.scb small{display:block;font-size:.7rem;opacity:.8}
.scb code{font-size:1.4rem;font-weight:700;letter-spacing:3px}
/* ADD BUTTON */
.ba{display:block;width:100%;padding:.8rem;margin-bottom:.5rem;background:#fff;border:2px dashed #dee2e6;border-radius:12px;font-size:1rem;font-weight:600;color:#4361ee;cursor:pointer}
/* ITEMS */
.ic{background:#fff;border-radius:12px;padding:.7rem .8rem;margin-bottom:.4rem;display:flex;align-items:center;gap:.6rem;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.ic.ck{opacity:.5;background:#f5f5f5}
.ic.ck .in{text-decoration:line-through}
.ichk{width:28px;height:28px;border-radius:50%;border:2px solid #dee2e6;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:.9rem;background:#fff}
.ic.ck .ichk{background:#06d6a0;border-color:#06d6a0;color:#fff}
.icon{font-size:1.4rem}
.ii{flex:1;min-width:0}
.in{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im{font-size:.8rem;color:#6c757d}
.idb{cursor:pointer;color:#ef476f;font-size:1.2rem;background:none;border:none;padding:.3rem}
/* EMPTY */
.empty{text-align:center;padding:3rem 1rem;color:#6c757d}
.eicon{font-size:3rem;margin-bottom:.5rem}
/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:flex-end;justify-content:center;z-index:1000}
.modal-overlay.open{display:flex}
.modal{background:#fff;border-radius:12px 12px 0 0;width:100%;max-width:600px;max-height:80vh;overflow-y:auto;padding:1.2rem}
.modal h3{margin-bottom:.8rem}
.mb{display:flex;gap:.5rem;margin-top:.8rem}
/* CATEGORY */
.cq{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}
.cp{background:#f8f9fa;border:1px solid #dee2e6;border-radius:16px;padding:.25rem .6rem;font-size:.8rem;cursor:pointer;transition:.2s}
.cp:active,.cp.ac{background:#4361ee;color:#fff;border-color:#4361ee}
.cs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:.5rem}
.cs::-webkit-scrollbar{display:none}
/* PRODUCTS */
.sr{width:100%;padding:.7rem 1rem;border:2px solid #dee2e6;border-radius:12px;font-size:1rem;outline:none;margin-bottom:.5rem}
.sr:focus{border-color:#4361ee}
.pg{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.pc{background:#fff;border-radius:12px;padding:.8rem;text-align:center;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.pc:active{transform:scale(.95)}
.pi{font-size:2rem;margin-bottom:.2rem}
.pn{font-weight:600;font-size:.85rem}
/* MEMBERS */
.ml{display:flex;flex-direction:column;gap:.4rem}
.mc{background:#fff;border-radius:12px;padding:.6rem .8rem;display:flex;align-items:center;gap:.6rem;box-shadow:0 2px 12px rgba(0,0,0,.08);margin-bottom:.3rem}
.ma{font-size:2rem}
.mi{flex:1}
.mn{font-weight:600;font-size:.9rem}
.me{font-size:.8rem;color:#6c757d}
.mrm{color:#ef476f;cursor:pointer;font-size:1.2rem;background:none;border:none;padding:.2rem}
.am{display:flex;gap:.4rem;margin-top:.5rem}
.am input{flex:1;padding:.6rem;border:2px solid #dee2e6;border-radius:12px;font-size:.9rem;outline:none}
/* SETTINGS */
.card{background:#fff;border-radius:12px;padding:1rem;margin-bottom:.8rem;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.card h3{margin-bottom:.5rem;padding-bottom:.3rem;border-bottom:1px solid #dee2e6}
.ag{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.ao{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;cursor:pointer;border:2px solid #dee2e6;background:#f8f9fa}
.ao.active{border-color:#4361ee;background:#e0e7ff}
/* BOTTOM NAV */
.bnav{display:flex;background:#fff;border-top:1px solid #dee2e6;position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:600px;z-index:99}
.bnav-item{flex:1;text-align:center;padding:.5rem .2rem;cursor:pointer;color:#6c757d;font-size:.7rem}
.bnav-item.active{color:#4361ee}
.bnav-item span{display:block}
/* SPINNER */
.spin{display:flex;justify-content:center;padding:2rem}
.spin::after{content:'';width:30px;height:30px;border:3px solid #dee2e6;border-top-color:#4361ee;border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
/* TOAST */
.toast{position:fixed;bottom:4rem;left:50%;transform:translateX(-50%);background:#2b2d42;color:#fff;padding:.6rem 1.2rem;border-radius:12px;font-size:.85rem;z-index:2000;opacity:0;transition:.3s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1}
/* FOOTER */
.footer{text-align:center;padding:1rem;color:#6c757d;font-size:.75rem;background:#fff;border-top:1px solid #dee2e6;margin-top:1rem}
