:root{--bg:#fafafa;--surface:#fff;--surface-border:#e5e5e8;--surface-hover:#f4f4f5;--text:#18181b;--text-muted:#71717a;--accent:#18181b;--accent-hover:#000;--error:#d92d20;--radius:10px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Pretendard", sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--text);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}.header-logo{color:inherit;text-decoration:none}.cart-link{color:var(--text);padding:6px 4px;font-weight:600;text-decoration:none;position:relative}.cart-badge{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:18px;padding:2px 6px;font-size:11px;font-weight:700;line-height:1.4;position:absolute;top:-6px;right:-14px}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius);width:100%;max-width:380px;padding:36px 32px;box-shadow:0 1px 2px #0000000a}.auth-title{text-align:center;color:var(--text);margin:0 0 24px;font-size:20px;font-weight:700}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-input{background:var(--surface);border:1px solid var(--surface-border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:11px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #18181b14}.auth-button{background:var(--accent);color:#fff;border:none;border-radius:8px;margin-top:8px;padding:11px 14px;font-size:14px;font-weight:600;transition:background .15s}.auth-button:hover{background:var(--accent-hover)}.auth-button:disabled{background:var(--surface-border);color:var(--text-muted);cursor:not-allowed}.auth-error{color:var(--error);margin:4px 0 0;font-size:13px}.auth-footer{text-align:center;color:var(--text-muted);margin-top:20px;font-size:13px}.auth-footer a{color:var(--text);font-weight:600}.page-header{border-bottom:1px solid var(--surface-border);background:var(--surface);justify-content:space-between;align-items:center;padding:18px 32px;display:flex}.page-header h1{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:800}.user-area{color:var(--text-muted);align-items:center;gap:12px;font-size:14px;display:flex}.btn-outline{border:1px solid var(--surface-border);color:var(--text);background:0 0;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.btn-outline:hover{background:var(--surface-hover);border-color:var(--text)}.search-bar{gap:8px;padding:20px 32px 0;display:flex}.search-input{background:var(--surface);border:1px solid var(--surface-border);max-width:280px;color:var(--text);border-radius:8px;outline:none;flex:1;padding:10px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #18181b0f}.search-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .15s}.search-btn:hover{background:var(--accent-hover)}.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;padding:24px 32px;display:grid}.product-card{border:1px solid var(--surface-border);background:var(--surface);border-radius:12px;transition:border-color .15s,transform .15s,box-shadow .15s;overflow:hidden}.product-card:hover{border-color:var(--text);transform:translateY(-2px);box-shadow:0 8px 20px #0000000f}.product-card img{object-fit:cover;background:var(--surface-hover);width:100%;height:180px;display:block}.product-card-body{padding:16px}.product-card-name{margin:0 0 6px;font-size:15px;font-weight:700}.product-card-price{margin:0 0 6px;font-size:15px;font-weight:600}.product-card-stock{color:var(--text-muted);margin:0;font-size:12px}.pagination{justify-content:center;align-items:center;gap:16px;padding:16px 24px 40px;display:flex}.pagination button{background:var(--surface);border:1px solid var(--surface-border);color:var(--text);border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s}.pagination button:hover:not(:disabled){background:var(--surface-hover)}.pagination button:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.5}.pagination span{color:var(--text-muted);font-size:13px}.product-detail{max-width:420px;padding:32px}.product-detail img{border:1px solid var(--surface-border);border-radius:12px;width:100%;margin-bottom:20px}.product-detail h2{margin-bottom:8px;font-size:22px}.product-detail-price{margin-bottom:4px;font-size:20px;font-weight:700}.product-detail-stock{color:var(--text-muted);margin-bottom:20px}.quantity-selector{align-items:center;gap:12px;margin-bottom:20px;display:flex}.quantity-selector button{width:32px;height:32px;padding:0}.quantity-selector span{text-align:center;min-width:24px;font-size:16px;font-weight:600}.product-detail-actions{gap:8px;display:flex}.product-detail-rating{color:var(--text-muted);margin-bottom:12px;font-size:14px}.review-list{margin-top:32px}.review-list-loading,.review-list-empty{color:var(--text-muted);padding:16px 0;font-size:14px}.review-card{border-bottom:1px solid var(--surface-border);padding:16px 0}.review-card-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.review-stars{color:#fbbf24;letter-spacing:1px;font-size:14px}.review-author{color:var(--text-muted);font-size:13px}.review-content{margin:0 0 10px;font-size:14px;line-height:1.5}.review-images{gap:8px;margin-bottom:10px;display:flex}.review-images img{object-fit:cover;border:1px solid var(--surface-border);border-radius:8px;width:72px;height:72px}.review-card-footer{justify-content:space-between;align-items:center;display:flex}.review-like-btn{border:1px solid var(--surface-border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:13px}.review-like-btn.liked{color:#e5484d;border-color:#e5484d}.review-like-btn:disabled{cursor:not-allowed;opacity:.5}.review-date{color:var(--text-muted);font-size:12px}.review-pagination{justify-content:center;align-items:center;gap:12px;padding-top:16px;display:flex}.review-pagination button{border:1px solid var(--surface-border);background:0 0;border-radius:6px;padding:6px 14px;font-size:13px}.review-pagination button:disabled{opacity:.5;cursor:not-allowed}.review-pagination span{color:var(--text-muted);font-size:13px}.cart-page{max-width:720px;margin:0 auto;padding:32px}.cart-page h2{margin:0 0 24px;font-size:22px}.cart-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.cart-item{border:1px solid var(--surface-border);background:var(--surface);border-radius:12px;align-items:center;gap:16px;padding:16px;display:flex}.cart-item.unavailable{opacity:.6;border-color:var(--error,#e5484d)}.cart-item-image{object-fit:cover;background:var(--surface-hover);border-radius:8px;flex-shrink:0;width:72px;height:72px}.cart-item-info{flex:1;min-width:0}.cart-item-info a{color:var(--text);font-size:15px;font-weight:700;text-decoration:none}.cart-item-info a:hover{text-decoration:underline}.cart-item-info p{color:var(--text-muted);margin:4px 0 0;font-size:14px}.cart-item-warning{color:var(--error,#e5484d)!important;font-size:13px!important}.cart-item-quantity{flex-shrink:0;align-items:center;gap:8px;display:flex}.cart-item-quantity button{border:1px solid var(--surface-border);width:28px;height:28px;color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:0;font-size:14px}.cart-item-quantity button:hover{background:var(--surface-hover)}.cart-item-quantity span{text-align:center;min-width:24px;font-size:14px;font-weight:600}.cart-item-remove{border:1px solid var(--surface-border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:6px 12px;font-size:13px}.cart-item-remove:hover{background:var(--surface-hover);color:var(--text)}.cart-summary{border-top:1px solid var(--surface-border);justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:20px;display:flex}.cart-summary p{margin:0;font-size:18px;font-weight:700}.cart-summary button{cursor:pointer;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.cart-summary button:first-of-type{border:1px solid var(--surface-border);color:var(--text);background:0 0}.cart-summary button:first-of-type:hover{background:var(--surface-hover)}.cart-summary button:last-of-type{background:var(--accent);color:#fff;border:none}.cart-summary button:last-of-type:hover:not(:disabled){background:var(--accent-hover)}.cart-summary button:last-of-type:disabled{background:var(--surface-hover);color:var(--text-muted);cursor:not-allowed}.checkout-page{max-width:480px;margin:0 auto;padding:32px}.checkout-page h2{margin:0 0 24px;font-size:22px}.checkout-list{flex-direction:column;gap:12px;margin:0 0 24px;padding:0;list-style:none;display:flex}.checkout-item{border:1px solid var(--surface-border);background:var(--surface);border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.checkout-item img{object-fit:cover;background:var(--surface-hover);border-radius:8px;flex-shrink:0;width:56px;height:56px}.checkout-item p{margin:0;font-size:14px}.checkout-item p:first-child{margin-bottom:4px;font-weight:700}.checkout-item p:last-child{color:var(--text-muted);font-size:13px}.checkout-summary{border-top:1px solid var(--surface-border);border-bottom:1px solid var(--surface-border);margin-bottom:20px;padding:16px 0}.checkout-summary p{text-align:right;margin:0;font-size:18px;font-weight:700}.checkout-error{color:var(--error,#e5484d);margin-bottom:12px;font-size:14px}.checkout-page>button{width:100%;margin-top:10px}.order-result-page{text-align:center;max-width:420px;margin:0 auto;padding:60px 32px}.order-result-page h2{margin:0 0 12px;font-size:22px}.order-result-page p{color:var(--text-muted);margin:0 0 24px;font-size:14px}.order-result-page .auth-button{width:auto;padding:11px 24px;text-decoration:none;display:inline-block}.order-list-page{max-width:640px;margin:0 auto;padding:32px}.order-list-page h2{margin:0 0 24px;font-size:22px}.order-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.order-card{border:1px solid var(--surface-border);background:var(--surface);border-radius:12px;padding:16px}.order-card-header{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.order-status{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.order-status-paid{color:#16a34a;background:#22c55e1f}.order-status-pending{color:#ca8a04;background:#eab3081f}.order-status-cancelled{background:var(--surface-hover);color:var(--text-muted)}.order-card-items{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.order-card-item{justify-content:space-between;align-items:center;font-size:14px;display:flex}.order-card-item a{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.order-card-item a:hover{text-decoration:underline}.order-card-total{text-align:right;border-top:1px solid var(--surface-border);margin:0;padding-top:12px;font-weight:700}.review-form-page{max-width:480px;margin:0 auto;padding:32px}.review-form-page h2{margin:0 0 20px;font-size:20px}.rating-selector{gap:4px;margin-bottom:16px;display:flex}.rating-selector .star{color:var(--surface-border);cursor:pointer;background:0 0;border:none;padding:0;font-size:28px;line-height:1}.rating-selector .star.filled{color:#fbbf24}.review-textarea{border:1px solid var(--surface-border);resize:vertical;box-sizing:border-box;border-radius:8px;width:100%;min-height:120px;margin-bottom:12px;padding:12px;font-family:inherit;font-size:14px}.review-form-page input[type=file]{margin-bottom:16px;font-size:13px;display:block}.review-form-error{color:var(--error,#e5484d);margin-bottom:12px;font-size:14px}.review-form-page .auth-button{width:100%}
