:root{--bg: #FAF6EF;--bg-raised: #FFFDF9;--ink: #2B2420;--muted: #786B5C;--maroon: #7A1F2B;--maroon-dark: #5E1620;--gold: #B8873B;--border: #E4DCC8;--font-display: "Fraunces", serif;--font-body: "Inter", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:500;margin:0;letter-spacing:-.01em}button,input,select{font-family:inherit}a{color:inherit}.container{max-width:1080px;margin:0 auto;padding:0 20px}.muted{color:var(--muted)}.empty-state{padding:60px 20px;text-align:center;color:var(--muted)}.topbar{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--border)}.topbar-inner{max-width:1080px;margin:0 auto;padding:16px 20px;display:flex;align-items:center;gap:12px}.back-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--ink);padding:4px 6px 4px 0;line-height:1}.brand{display:flex;align-items:center;gap:10px;flex:1;cursor:pointer}.brand-logo{width:34px;height:34px;border-radius:6px;object-fit:contain;background:var(--bg-raised);border:1px solid var(--border);flex:none}.brand-text{font-family:var(--font-display);font-size:20px;letter-spacing:.01em}.brand-text small{display:block;font-family:var(--font-body);font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.03em;margin-top:2px}.cart-btn{background:none;border:1px solid var(--border);border-radius:3px;padding:8px 14px;font-size:14px;color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap}.cart-btn:hover{border-color:var(--maroon)}.cart-count{background:var(--maroon);color:#fff;border-radius:50%;width:18px;height:18px;font-size:11px;display:inline-flex;align-items:center;justify-content:center}.page-head{padding:20px 0 6px}.page-head h1{font-size:24px}.page-head .count{color:var(--muted);font-size:13px;margin-top:4px}.filter-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0}.filter-btn{border:1px solid var(--border);background:var(--bg-raised);border-radius:999px;padding:8px 16px;font-size:13px;cursor:pointer;color:var(--ink)}.filter-btn.applied{border-color:var(--maroon);color:var(--maroon)}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:20px 0 60px}.cat-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer}.cat-card:hover{border-color:var(--maroon)}.cat-photo{aspect-ratio:3 / 4;background:linear-gradient(135deg,#f0e9da,#e7dcc4);display:flex;align-items:center;justify-content:center;overflow:hidden}.cat-info{padding:12px 14px 14px}.cat-name{font-size:14px;font-weight:500}.cat-count{font-size:12px;color:var(--muted);margin-top:2px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);margin:6px 0 40px}.card{background:var(--bg-raised);display:flex;flex-direction:column;cursor:pointer}.card-photo{aspect-ratio:3 / 4;background:linear-gradient(135deg,#f0e9da,#e7dcc4);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.card-photo img{width:100%;height:100%;object-fit:cover}.card-add-btn{display:block;width:100%;background:var(--maroon);color:#fff;border:none;padding:10px 12px;font-size:13px;font-weight:500;cursor:pointer}.card-add-btn.added{background:var(--maroon-dark)}.card-info{padding:10px 12px 12px}.card-name{font-size:13.5px;font-weight:500;padding:10px 12px 12px}.card-weight{font-size:12px;color:var(--muted);margin-top:2px}.section-heading{padding:8px 0 14px;display:flex;align-items:baseline;justify-content:space-between}.section-heading h2{font-size:18px}.more-rail{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;margin-bottom:40px}.more-card{flex:none;width:140px;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer}.more-card .cat-photo{aspect-ratio:3 / 4}.more-card .cat-info{padding:10px 12px}.more-card .cat-name{font-size:12.5px}.contact-block{border-top:1px solid var(--border);padding:24px 0 48px}.contact-block h2{font-size:16px;margin-bottom:12px}.contact-row{font-size:13.5px;margin-bottom:6px}.contact-row span{color:var(--muted);margin-right:8px}.detail-photo{aspect-ratio:3 / 4;max-width:420px;margin:12px auto 0;background:linear-gradient(135deg,#f0e9da,#e7dcc4);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:zoom-in;overflow:hidden;position:relative}.detail-info{max-width:420px;margin:20px auto}.detail-name{font-size:21px;margin-bottom:6px}.detail-weight{font-size:15px;color:var(--muted);margin-bottom:20px}.detail-hint{font-size:12px;color:var(--muted);margin-top:10px;text-align:center}.photo-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:#fffdf9d9;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ink);cursor:pointer;z-index:5}.photo-nav-btn:hover{background:#fffdf9fa;border-color:var(--maroon)}.photo-nav-btn:disabled{opacity:0;pointer-events:none}.photo-nav-btn.prev{left:10px}.photo-nav-btn.next{right:10px}.detail-nav{max-width:480px;margin:10px auto 0;text-align:center}.nav-position{font-size:12px;color:var(--muted)}.check-row{max-width:420px;margin:0 auto 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px 14px;padding:20px;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px}.check-item{display:flex;flex-direction:column;align-items:center;gap:8px}.check-item input[type=checkbox]{width:26px;height:26px;accent-color:var(--maroon);cursor:pointer}.check-item .wt{font-size:12.5px;color:var(--ink);font-weight:500}.check-item .wt.checked{color:var(--maroon)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14100cf0;z-index:120;display:flex;align-items:center;justify-content:center}.lightbox-close{position:absolute;top:20px;right:20px;background:none;border:none;color:#fff;font-size:28px;cursor:pointer}.lightbox-img{width:min(80vw,420px);aspect-ratio:1;background:#23201b;border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b24208c;display:flex;align-items:flex-end;justify-content:center;z-index:100}@media (min-width: 640px){.modal-overlay{align-items:center}}.modal-card{background:var(--bg-raised);width:100%;max-width:420px;border-radius:10px 10px 0 0;padding:28px 24px 24px;border-top:3px solid var(--maroon)}@media (min-width: 640px){.modal-card{border-radius:10px}}.modal-card h2{font-size:20px;margin-bottom:6px}.modal-card p{color:var(--muted);font-size:13.5px;margin:0 0 18px;line-height:1.5}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.field input,.field select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:5px;font-size:15px;background:var(--bg);color:var(--ink)}.field input:focus,.field select:focus{outline:none;border-color:var(--maroon)}.field-row{display:flex;gap:12px}.field-row .field{flex:1}.btn-primary{width:100%;padding:13px;background:var(--maroon);color:#fff;border:none;border-radius:5px;font-size:15px;font-weight:500;cursor:pointer;margin-top:4px}.btn-primary:hover{background:var(--maroon-dark)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{width:100%;padding:11px;background:none;color:var(--muted);border:1px solid var(--border);border-radius:5px;font-size:13.5px;cursor:pointer;margin-top:8px}.field-error{color:var(--maroon);font-size:12px;margin-top:6px}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b242066;z-index:90}.drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:380px;background:var(--bg-raised);z-index:91;display:flex;flex-direction:column;box-shadow:-8px 0 24px #00000014}.drawer-header{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.drawer-header h3{font-size:18px}.drawer-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted)}.drawer-total{padding:12px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;background:#fbf7ee}.drawer-total .label{font-size:13px;color:var(--muted)}.drawer-total .value{font-family:var(--font-display);font-size:20px}.drawer-items{flex:1;overflow-y:auto;padding:10px 20px}.drawer-item{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.drawer-item-photo{width:48px;height:48px;background:#f0e9da;border-radius:4px;flex:none;display:flex;align-items:center;justify-content:center;overflow:hidden}.drawer-item-photo img{width:100%;height:100%;object-fit:cover}.drawer-item-name{font-size:13.5px;font-weight:500}.drawer-item-weight{font-size:12px;color:var(--muted)}.drawer-item-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px}.drawer-footer{padding:16px 20px 20px;border-top:1px solid var(--border)}.drawer-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:14px}.admin-shell{min-height:100%}.admin-topbar{border-bottom:1px solid var(--border);padding:14px 24px;display:flex;justify-content:space-between;align-items:center}.admin-body{max-width:960px;margin:0 auto;padding:24px}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:16px}.admin-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--border)}.admin-table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tr:hover td{background:#fbf7ee}.btn-small{padding:6px 12px;font-size:12.5px;border:1px solid var(--border);border-radius:4px;background:var(--bg-raised);cursor:pointer;display:inline-block}.btn-small:hover{border-color:var(--maroon);color:var(--maroon)}.btn-danger{color:#a33;border-color:#e9c6c6}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:360px;padding:32px 28px;border:1px solid var(--border);border-radius:10px;background:var(--bg-raised)}.tabs{display:flex;gap:4px;margin:16px 0;border-bottom:1px solid var(--border)}.tab{padding:8px 4px;margin-right:20px;font-size:13.5px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;-webkit-user-select:none;user-select:none}.tab.active{color:var(--maroon);border-bottom-color:var(--maroon)}
