*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f5f5f5;max-width:480px;margin:0 auto;padding-bottom: 60px;}
.header{background:#1a1a1a;padding:14px 16px 12px}
.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.logo{color:white;font-size:20px;font-weight:600;cursor:pointer;user-select:none}
.logo span{color:#39d353}
.scan-btn{background:#39d353;color:#000;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.stat{background:rgba(255,255,255,0.1);border-radius:8px;padding:8px;text-align:center}
.stat strong{display:block;color:white;font-size:18px;font-weight:600}
.stat span{color:rgba(255,255,255,0.6);font-size:10px}
.search-bar{background:white;padding:10px 12px;border-bottom:1px solid #eee}
.search-bar input{width:100%;background:#f0f0f0;border:none;border-radius:10px;padding:10px 12px;font-size:14px;outline:none}
.filters{display:flex;gap:6px;padding:10px 12px;background:white;border-bottom:1px solid #eee;overflow-x:auto;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.chip{border:1px solid #ddd;border-radius:20px;padding:5px 13px;font-size:12px;cursor:pointer;white-space:nowrap;background:white;color:#666}
.chip.active{background:#1a1a1a;color:white;border-color:#1a1a1a}
.list{padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.card{background:white;border-radius:12px;padding:12px;display:flex;align-items:center;gap:10px;border:1px solid #eee}
.card-emoji{font-size:26px;width:38px;text-align:center;flex-shrink:0}
.card-info{flex:1;min-width:0}
.card-name{font-size:13px;font-weight:500;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-sub{font-size:11px;color:#888;margin-top:2px}
.badge{font-size:10px;background:#fff0e0;color:#b06000;border-radius:10px;padding:1px 6px;margin-left:4px}
.badge.lim{background:#ffe0f0;color:#8b0050}
.actions{display:flex;gap:6px;flex-shrink:0}
.btn-action{width:34px;height:34px;border-radius:8px;border:1px solid #ddd;background:#f5f5f5;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center}
.btn-action.owned{background:#1a1a1a;border-color:#1a1a1a}
.btn-action.tasted{background:#39d353;border-color:#2ab844}
.btn-action.edit{background:#ff9800;color:white;border-color:#e68a00;display:none}
body.is-admin .btn-action.edit{display:flex}
.empty{text-align:center;padding:40px 16px;color:#999;font-size:14px}
.scanner-page{display:none;position:fixed;inset:0;background:#000;z-index:100;flex-direction:column;align-items:center;justify-content:space-between;padding:50px 20px 40px}
.scanner-page.show{display:flex}
.scanner-title{color:white;font-size:15px;text-align:center}
.scanner-box{position:relative;width:280px;height:280px}
#reader{width:100%;height:100%;border-radius:12px;overflow:hidden}
#reader video{object-fit:cover !important}
.scanner-result{color:#39d353;font-size:14px;text-align:center;min-height:20px;padding:0 10px}
.btn-close{background:rgba(255,255,255,0.15);color:white;border:none;border-radius:10px;padding:12px 30px;font-size:15px;cursor:pointer}
.admin-panel{display:none;background:white;margin:10px;padding:15px;border-radius:12px;border:1px solid #ddd}
.admin-panel.show{display:block}
.admin-panel h3{font-size:16px;margin-bottom:12px;color:#1a1a1a}
.admin-panel input, .admin-panel select{width:100%;padding:10px;margin-bottom:10px;border:1px solid #ddd;border-radius:8px;outline:none;font-size:14px}
.admin-panel button{width:100%;background:#1a1a1a;color:white;border:none;border-radius:8px;padding:12px;font-weight:600;cursor:pointer;margin-top:5px}
.admin-panel .btn-cancel{background:#777;margin-top:5px}