:root{--ils-green: #004b23;--ils-green-2: #0a6a34;--ils-gold: #ffc20e;--bg: #f7f7f5;--surface: #fff;--ink: #1b2620;--muted: #667069;--line: #e4e6e1;--danger: #b3261e;--radius: 14px;--shadow: 0 1px 2px rgba(0, 40, 20, .06), 0 4px 14px rgba(0, 40, 20, .06)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Montserrat,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}h1,h2,h3{font-family:Poppins,Montserrat,sans-serif;margin:0;line-height:1.25}h3{font-size:1.02rem;font-weight:600}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--ils-green-2)}:focus-visible{outline:3px solid var(--ils-gold);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.86rem}.error{color:var(--danger);margin:.5rem 0;font-weight:500}.empty{text-align:center;color:var(--muted);padding:3rem 1rem}.topbar{background:var(--ils-green);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 2px 8px #00000026}.topbar-in{max-width:1180px;margin:0 auto;padding:.55rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.brand{background:none;border:0;color:#fff;font:600 1.15rem Poppins,sans-serif;display:flex;align-items:center;gap:.6rem;padding:.3rem 0;min-height:44px}.logo-mark{display:inline-grid;place-items:center;background:var(--ils-gold);color:var(--ils-green);font:700 1.1rem Poppins,sans-serif;border-radius:10px;width:56px;height:56px}.logo-mark.sm{width:34px;height:34px;font-size:.85rem;border-radius:8px}nav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}.tab{background:none;border:0;color:#fffc;padding:.6rem .85rem;min-height:44px;border-radius:10px;font-weight:500;display:inline-flex;align-items:center;gap:.4rem}.tab:hover{background:#ffffff1a;color:#fff}.tab.on{background:#ffffff29;color:#fff}.tab.admin{border-left:1px solid rgba(255,255,255,.2);border-radius:0 10px 10px 0}.count{background:var(--ils-gold);color:var(--ils-green);border-radius:99px;font-size:.75rem;font-weight:700;min-width:20px;height:20px;display:inline-grid;place-items:center;padding:0 6px}.who{display:flex;align-items:center;gap:.75rem}.link{background:none;border:0;color:var(--ils-gold);text-decoration:underline;padding:.5rem 0;min-height:44px}.page{max-width:1180px;margin:0 auto;padding:1.25rem 1rem 4rem}.page-title{font-size:1.5rem;margin-bottom:1rem}.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.page-head .page-title{margin:0}.hero{background:linear-gradient(135deg,var(--ils-green),var(--ils-green-2));color:#fff;border-radius:var(--radius);padding:1.6rem 1.5rem;margin-bottom:1.2rem;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;background:var(--ils-gold);opacity:.18;border-radius:50%}.hero h1{font-size:1.7rem;margin-bottom:.4rem}.hero p{margin:0;max-width:620px;opacity:.92}.toolbar{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.1rem}.search{width:100%;padding:.75rem 1rem;min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:.5rem 1rem;min-height:44px;font-weight:500}.chip.on{background:var(--ils-green);border-color:var(--ils-green);color:#fff}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:0;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0028141f}.card.soldout .card-img{filter:grayscale(1);opacity:.6}.card-img{width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#eef0ec;display:block}.card-body{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.3rem;flex:1}.card-top{display:flex;gap:.35rem;flex-wrap:wrap;min-height:24px}.card-foot{margin-top:auto;padding-top:.5rem;display:flex;justify-content:space-between;align-items:baseline}.price{font:700 1.2rem Poppins,sans-serif;color:var(--ils-green)}.price.big{font-size:1.8rem}.badge{background:#e8f1ea;color:var(--ils-green);border-radius:6px;font-size:.74rem;font-weight:600;padding:2px 8px}.badge.gold{background:#fff3c4;color:#7a5b00}.stock{font-size:.84rem;font-weight:600;color:var(--ils-green-2)}.stock.low{color:#a15c00}.stock.none{color:var(--danger)}.img-placeholder{display:grid;place-items:center;background:#eef0ec;color:#9aa39c;font-size:.85rem}.btn{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:.7rem 1.2rem;min-height:48px;font-weight:600}.btn:hover:not(:disabled){border-color:#c5cac2}.btn.primary{background:var(--ils-green);border-color:var(--ils-green);color:#fff}.btn.primary:hover:not(:disabled){background:var(--ils-green-2)}.btn.small{min-height:44px;padding:.45rem .9rem;font-size:.9rem}.btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn{background:none;border:0;font-size:1.6rem;line-height:1;width:44px;height:44px;border-radius:10px;color:var(--muted)}.icon-btn:hover{background:#eef0ec}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a190f8c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50;overflow-y:auto}.modal{background:var(--surface);border-radius:18px;width:100%;max-width:480px;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal.wide{max-width:900px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:.7rem .7rem .7rem 1.3rem;border-bottom:1px solid var(--line)}.modal-head h2{font-size:1.15rem}.modal-body{padding:1.2rem 1.3rem 1.4rem;overflow-y:auto}.detail{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.hero-img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;background:#eef0ec}.thumbs{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.thumbs button{padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:none;width:64px;height:64px}.thumbs button.on{border-color:var(--ils-gold)}.thumb{width:100%;height:100%;object-fit:cover;display:block}.price-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.desc{margin:.8rem 0}.specs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem;margin:.8rem 0}.specs div{border-top:1px solid var(--line);padding-top:.4rem}.specs dt{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.specs dd{margin:0;font-weight:500}.extra{white-space:pre-wrap;font:inherit;background:#f2f4f0;padding:.7rem .9rem;border-radius:10px;margin:.6rem 0;font-size:.9rem}.note{color:var(--ils-green);font-weight:500;font-size:.9rem}.success{background:#eaf5ec;border:1px solid #bcdcc3;color:#124d24;border-radius:12px;padding:.9rem 1rem}.success p{margin:.3rem 0 .8rem}.confirm{background:#fff8de;border:1px solid #f1dd85;border-radius:12px;padding:.9rem 1rem}.confirm p{margin:0 0 .8rem}.row{display:flex;gap:.6rem;flex-wrap:wrap}.row.end{justify-content:flex-end}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.row-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.row-card.dim{opacity:.7}.row-card.wrap{align-items:flex-start;flex-wrap:wrap}.row-card .grow{flex:1;min-width:200px}.row-card p{margin:.15rem 0 0}.row-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mini-img{width:64px;height:48px;object-fit:cover;border-radius:8px;flex-shrink:0}.pill{font-size:.78rem;font-weight:600;border-radius:99px;padding:3px 10px;background:#eef0ec;color:var(--muted);white-space:nowrap}.pill.Reserved{background:#fff3c4;color:#7a5b00}.pill.PickedUp{background:#dff0e3;color:#124d24}.serial{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:.4rem .7rem;width:170px}.form{display:flex;flex-direction:column;gap:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}.form label,.label{display:flex;flex-direction:column;gap:.3rem;font-size:.86rem;font-weight:600;color:var(--muted)}.form input,.form select,.form textarea{font-size:16px;padding:.65rem .8rem;min-height:46px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-weight:400}.photo-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}.photo-tile{position:relative;width:84px;height:84px;border-radius:10px;overflow:hidden;background:#eef0ec}.photo-tile .icon-btn{position:absolute;top:0;right:0;width:44px;height:44px;background:#00000080;color:#fff;border-radius:0 0 0 10px;font-size:1.3rem}.form .photo-add{width:84px;height:84px;border:2px dashed #b9c0b6;border-radius:10px;align-items:center;justify-content:center;cursor:pointer;color:var(--ils-green);font-weight:600}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.gate{background:linear-gradient(160deg,var(--ils-green),#02371a)}.gate-card{background:#fff;border-radius:20px;padding:2.2rem 2rem;max-width:420px;text-align:center;box-shadow:0 20px 60px #00000059}.gate-card .logo-mark{margin-bottom:1rem}.gate-card h1{font-size:1.6rem;margin-bottom:.6rem}.gate-card p{color:var(--muted);margin:0 0 1.4rem}.spinner{width:20px;height:20px;border:3px solid #d5dad2;border-top-color:var(--ils-green);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}.spinner.big{width:40px;height:40px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 720px){.detail,.form-grid{grid-template-columns:1fr}.hero h1{font-size:1.35rem}.who{margin-left:auto}.modal-backdrop{padding:0;align-items:flex-end}.modal,.modal.wide{max-width:none;border-radius:18px 18px 0 0;max-height:94vh}.row-card{align-items:flex-start;flex-wrap:wrap}}.pill.Expired{background:#f6e0de;color:var(--danger)}.hold{color:#7a5b00}.logo-img{width:64px;height:64px;border-radius:14px;display:block;margin:0 auto 1rem}.logo-img.sm{width:34px;height:34px;border-radius:8px;margin:0}.buyback{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff9e6;border:1px solid #ecd78a;border-left:4px solid #ffc20e;border-radius:12px;padding:.9rem 1rem;margin:0 0 1rem}.buyback p{margin:.2rem 0 0}.addon{display:flex;align-items:center;gap:.5rem;margin:.6rem 0;cursor:pointer}
